Temporary header file '/tmp/2iUCnKICVT/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/stdint.h" #include "/usr/include/wyhash/o1hash.h" #include "/usr/include/wyhash/wyhash.h" #include "/usr/include/wyhash/wyhash32.h" The GCC parameters: gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/2iUCnKICVT/dump1.h" In file included from /tmp/2iUCnKICVT/dump1.h:13: /usr/include/wyhash/o1hash.h: In function ‘unsigned int _o1r4(const uint8_t*)’: /usr/include/wyhash/o1hash.h:16:73: error: ‘memcpy’ was not declared in this scope 16 | static inline unsigned _o1r4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return v;} | ^~~~~~ /usr/include/wyhash/o1hash.h:1:1: note: ‘memcpy’ is defined in header ‘’; did you forget to ‘#include ’? +++ |+#include 1 | /* /usr/include/wyhash/o1hash.h: At global scope: /usr/include/wyhash/o1hash.h:24:48: error: ‘size_t’ has not been declared 24 | static inline uint64_t o1hash(const void *key, size_t len) { | ^~~~~~ In file included from /tmp/2iUCnKICVT/dump1.h:15: /usr/include/wyhash/wyhash32.h:24:24: error: redefinition of ‘uint64_t wyrand(uint64_t*)’ 24 | static inline uint64_t wyrand(uint64_t *seed){ | ^~~~~~ In file included from /tmp/2iUCnKICVT/dump1.h:14: /usr/include/wyhash/wyhash.h:121:24: note: ‘uint64_t wyrand(uint64_t*)’ previously defined here 121 | static inline uint64_t wyrand(uint64_t *seed){ *seed+=_wyp[0]; return _wymix(*seed,*seed^_wyp[1]);} | ^~~~~~