https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100671
--- Comment #1 from Jan Smets <jan.smets at nokia dot com> --- Another one we've had problems with is quite similar. The example below is a void function trying to return a value. #if 1 /* NULL defined in a system header file => warning in "one shot" compilation. => no warning in "two shot" compilation. */ #include <stddef.h> #else /* always warns */ #define NULL (0L) #endif void test(void) { return NULL; }