https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98021
--- Comment #7 from eggert at cs dot ucla.edu --- (In reply to Andreas Schwab from comment #5 and #6) > There can be comments.... > Also, the source may come from a different place than the directive. For the unusual case where the #warning line invokes preprocessor macros defined elsewhere, it would be OK to output the warning both before and after preprocessing (to help with debugging the warning machinery, presumably). (Comments might cause something similar, I suppose, though that's less important.) However, for the case that I mentioned where the #warning line just contains a string, the duplicate messages are confusing and redundant, and the duplication should be avoided in this more-typical case.