Temporary header file '/tmp/b_SpMmPv5_/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/stdlib.h" #include "/usr/include/stdio.h" #include "/usr/include/lowdown.h" // add classes _G_fpos64_t* tmp_add_class_0; _G_fpos_t* tmp_add_class_1; _IO_cookie_io_functions_t* tmp_add_class_2; lowdown_buf* tmp_add_class_3; lowdown_meta* tmp_add_class_4; lowdown_node* tmp_add_class_5; lowdown_opts* tmp_add_class_6; lowdown_opts_odt* tmp_add_class_7; rndr_autolink* tmp_add_class_8; rndr_blockcode* tmp_add_class_9; rndr_blockhtml* tmp_add_class_10; rndr_codespan* tmp_add_class_11; rndr_definition* tmp_add_class_12; rndr_entity* tmp_add_class_13; rndr_header* tmp_add_class_14; rndr_image* tmp_add_class_15; rndr_link* tmp_add_class_16; rndr_list* tmp_add_class_17; rndr_listitem* tmp_add_class_18; rndr_math* tmp_add_class_19; rndr_meta* tmp_add_class_20; rndr_normal_text* tmp_add_class_21; rndr_paragraph* tmp_add_class_22; rndr_raw_html* tmp_add_class_23; rndr_table* tmp_add_class_24; rndr_table_cell* tmp_add_class_25; rndr_table_header* tmp_add_class_26; The GCC parameters: gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/b_SpMmPv5_/dump1.h" In file included from /tmp/b_SpMmPv5_/dump1.h:14: /usr/include/lowdown.h:105:11: error: expected constructor, destructor, or type conversion before ‘(’ token 105 | TAILQ_HEAD(lowdown_nodeq, lowdown_node); | ^ /usr/include/lowdown.h:137:33: error: expected ‘;’ at end of member declaration 137 | TAILQ_ENTRY(lowdown_meta) entries; | ^ | ; /usr/include/lowdown.h:137:35: error: ‘entries’ does not name a type 137 | TAILQ_ENTRY(lowdown_meta) entries; | ^~~~~~~ /usr/include/lowdown.h:140:11: error: expected constructor, destructor, or type conversion before ‘(’ token 140 | TAILQ_HEAD(lowdown_metaq, lowdown_meta); | ^ /usr/include/lowdown.h:275:30: error: field ‘children’ has incomplete type ‘lowdown_nodeq’ 275 | struct lowdown_nodeq children; | ^~~~~~~~ /usr/include/lowdown.h:275:16: note: forward declaration of ‘struct lowdown_nodeq’ 275 | struct lowdown_nodeq children; | ^~~~~~~~~~~~~ /usr/include/lowdown.h:276:33: error: expected ‘;’ at end of member declaration 276 | TAILQ_ENTRY(lowdown_node) entries; | ^ | ; /usr/include/lowdown.h:276:35: error: ‘entries’ does not name a type 276 | TAILQ_ENTRY(lowdown_node) entries; | ^~~~~~~ /tmp/b_SpMmPv5_/dump1.h:20:3: error: ‘lowdown_buf’ does not name a type 20 | lowdown_buf* tmp_add_class_3; | ^~~~~~~~~~~