https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68427
--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> --- Similarly, _STD_C_H_ is not a valid header guard in StdC.h, and _ASSERT0_H_ is not valid in Assert.h, and _GAUSS_H_ is not valid in gauss.h Same goes for # define __ASSERT_FUNCTION ((__const char *) 0) I don't know what the point of this is: #ifdef __linux__ // Linux :-) .... #include <malloc.h> #elif defined __FreeBSD__ // FreeBSD & SGI :-) .... #include <unistd.h> // typedef uint :-) .... #endif But the <malloc.h> header is deprecated and you should include <stdlib.h> The code has a number of problems, but GCC is not the cause.