https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109936
--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Adam Wozniak from comment #8) > i don't think of the preprocessor as part of the compiler. > it's a different step, a different executable, that happens BEFORE the > compiler. No it isn't. Preprocessing is done by the compiler, using libcpp. There is no different executable. GCC has worked that way for many, many years. > hence the name, PREprocessor. > i cannot argue with "the standard", however. Tokenization happens before preprocessing anyway. It has to, so that the preprocessor can tell that X(a) is four tokens.