Temporary header file '/tmp/BAEAgVBtR3/dump1.h' with the following content will be compiled to create GCC translation unit dump: // add defines #define __STDC_VERSION__ 201710L #define _GXX_NULLPTR_T #define CLUTTER_ENABLE_COMPOSITOR_API 1 #define _REGEX_NELTS(n) #define _Atomic #define PACKED #define getaddrinfo_a(a,b,c,d) // add includes #include "/usr/include/prayer/misc.h" #include "/usr/include/prayer/template_structs.h" // add classes template_call* tmp_add_class_0; template_foreach* tmp_add_class_1; template_ifdef* tmp_add_class_2; template_ifeq* tmp_add_class_3; template_item* tmp_add_class_4; template_lines* tmp_add_class_5; template_loop* tmp_add_class_6; template_map* tmp_add_class_7; template_map_index* tmp_add_class_8; The GCC parameters: gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/BAEAgVBtR3/dump1.h" In file included from /tmp/BAEAgVBtR3/dump1.h:13: /usr/include/prayer/template_structs.h:29:21: error: ‘template’ must follow a nested-name-specifier before ‘*’ token 29 | struct template *template; | ^ /usr/include/prayer/template_structs.h:29:22: error: expected unqualified-id before ‘template’ 29 | struct template *template; | ^~~~~~~~ /usr/include/prayer/template_structs.h:32:17: error: ‘template’ must follow a nested-name-specifier before ‘{’ token 32 | struct template { | ^ /usr/include/prayer/template_structs.h:32:17: error: expected unqualified-id before ‘{’ token