https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90326
--- Comment #2 from Alex Smith <asmith at feralinteractive dot com> --- It still repros for me on 9.0.1-0.16.fc31. Slightly reduced test case: $ cat test.h #define TEST 1 $ cat test.cpp #include <stdio.h> static_assert(__FLT_MAX__ > 0); int main() { return 0; } $ g++ -o test test.cpp -include test.h $ g++ -x c++-header -c test.h -o test.h.gch $ g++ -o test test.cpp -include test.h test.cpp:2:27: error: static assertion failed 2 | static_assert(__FLT_MAX__ > 0); Note __FLT_MAX__ is failing as well as FLT_MAX. However, if I remove "#include <stdio.h>", it compiles successfully.