https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98021
--- Comment #15 from eggert at cs dot ucla.edu ---
(In reply to Andreas Schwab from comment #14)
> I don't follow. It works exactly the same way.
Let me try to explain further. In my comment #11, the first directive:
#warning "You are too close to the curb"
generates this diagnostic:
In file included from foo.c:1:
bar.h:1:2: warning: #warning "You are too close to the curb" [-Wcpp]
1 | #warning "You are too close to the curb"
| ^~~~~~~
which contains "You are too close to the curb" twice. In contrast, the second
directive
#warning "Tomorrow is the deadline for paying taxes"
generates only this diagnostic:
In file included from foo.c:1:
baz.h:100:2: warning: #warning "Tomorrow is the deadline for paying taxes"
[-Wcpp]
and this contains "Tomorrow is the deadline for paying taxes" only once, which
is the win I'm suggesting. GCC treats the two #warning directives differently,
and does so because of the intervening #line directive.