Temporary header file '/tmp/x5q_9L3dfV/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/eegdev-pluginapi.h" #include "/usr/include/eegdev.h" // add classes core_interface* tmp_add_class_0; devmodule* tmp_add_class_1; egd_chinfo* tmp_add_class_2; egdi_optname* tmp_add_class_3; egdi_plugin_info* tmp_add_class_4; grpconf* tmp_add_class_5; gval* tmp_add_class_6; selected_channels* tmp_add_class_7; systemcap* tmp_add_class_8; The GCC parameters: gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/x5q_9L3dfV/dump1.h" In file included from /tmp/x5q_9L3dfV/dump1.h:12: /usr/include/eegdev-pluginapi.h:40:59: error: conflicting declaration ‘const void* restrict’ 40 | typedef void (*cast_function)(void* restrict, const void* restrict, | ~~~~~~~~~~~~^~~~~~~~ /usr/include/eegdev-pluginapi.h:40:37: note: previous declaration as ‘void* restrict’ 40 | typedef void (*cast_function)(void* restrict, const void* restrict, | ~~~~~~^~~~~~~~