https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67266
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- From https://gcc.gnu.org/onlinedocs/gcc-5.2.0/cpp/Preprocessor-Output.html#Preprocessor-Output : The output from the C preprocessor looks much like the input, except that all preprocessing directive lines have been replaced with blank lines and all comments with spaces. Long runs of blank lines are discarded. -P does not change that. You might want to look into using -tranditional-cpp also because if you are using preprocessor for other than C, # might be treated not like what you want it to be treated