> From: Michael Richardson <mcr@xxxxxxxxxxxx> > Sent: Friday, 1 April, 2022 07:40 > > Michael Wojcik <Michael.Wojcik@xxxxxxxxxxxxxx> wrote: > > Actually, in the context of #if expressions, unrecognized tokens > expand to 0 anyway: > > > After all replacements due to macro expansion and the defined unary > > operator have been performed, all remaining identifiers are replaced > > with the pp-number 0... > > > (ISO 9899:1999 6.10.1 #3) > > Yes, but that generates a warning, and then error via -Werror with some > set > of compile options that at least one CI run uses. Oh, well. An implementation is allowed to generate any diagnostics it wishes, and is allowed to fail to translate even a conforming program. Ultimately we're at the mercy of the implementation, and GCC is not a particularly good C implementation. (Of course, in its default mode, it doesn't implement C; it implements a language similar to, but not, C.)