https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87193
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- I'm not in a rush to fix this, because sane code should only be using those values in preprocessor conditions. They have type long only because the standard doesn't guarantee that type int can represent 6 decimal digits, not because anybody should care about the type.