https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60304
--- Comment #9 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- (In reply to Paolo Carlini from comment #5) > Well, of course the user can always explicitly include, eg, <cstdbool>, thus > it seems that the real underlying issue is that the system-headers machinery > should not be fooled by things like this in a system header... or should it? > The define is rather interesting... > > #define false false > > I'm adding in CC Dodji too... In the case of NULL we do: source_location loc = expansion_point_location_if_in_system_header (input_location); however, we do not do it in the case of 'false' (because we do not think it should be a macro, but it actually is). Perhaps we should do it, is there a downside to it?