Temporary header file '/tmp/rYezI_Ct6V/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/share/cargo/registry/chrono-tz-0.6.1/tz/private.h" #include "/usr/share/cargo/registry/chrono-tz-0.6.1/tz/tzfile.h" // add classes tzhead* tmp_add_class_0; The GCC parameters: gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/rYezI_Ct6V/dump1.h" In file included from /tmp/rYezI_Ct6V/dump1.h:12: /usr/share/cargo/registry/chrono-tz-0.6.1/tz/private.h:604:60: error: conflicting declaration ‘const time_t* restrict’ 604 | struct tm *localtime_rz(timezone_t restrict, time_t const *restrict, | ~~~~~~~~~~~~~~^~~~~~~~ /usr/share/cargo/registry/chrono-tz-0.6.1/tz/private.h:604:36: note: previous declaration as ‘state* restrict’ 604 | struct tm *localtime_rz(timezone_t restrict, time_t const *restrict, | ~~~~~~~~~~~^~~~~~~~ /usr/share/cargo/registry/chrono-tz-0.6.1/tz/private.h:605:36: error: conflicting declaration ‘tm* restrict’ 605 | struct tm *restrict); | ~~~~~~~~~~~^~~~~~~~ /usr/share/cargo/registry/chrono-tz-0.6.1/tz/private.h:604:36: note: previous declaration as ‘state* restrict’ 604 | struct tm *localtime_rz(timezone_t restrict, time_t const *restrict, | ~~~~~~~~~~~^~~~~~~~ /usr/share/cargo/registry/chrono-tz-0.6.1/tz/private.h:606:49: error: conflicting declaration ‘tm* restrict’ 606 | time_t mktime_z(timezone_t restrict, struct tm *restrict); | ~~~~~~~~~~~^~~~~~~~ /usr/share/cargo/registry/chrono-tz-0.6.1/tz/private.h:606:28: note: previous declaration as ‘state* restrict’ 606 | time_t mktime_z(timezone_t restrict, struct tm *restrict); | ~~~~~~~~~~~^~~~~~~~