https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29455

Preston L Bannister <preston at bannister dot us> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |preston at bannister dot us

--- Comment #9 from Preston L Bannister <preston at bannister dot us> ---
(In reply to Hallvard B Furuseth from comment #7)
> > The warning in C++ is arguably bogus because the value of the
> > character '%' is known at compile-time, consequently the warning
> > is unwarranted (unless it really is negative).
> 
> unwarranted unless it _could_ be negative on some host.

Are there any hosts of this sort left? And for which GCC compiles?

The job of the compiler is to generate code for a specific machine. For a
character literal the compiler knows the exact value. If the value were
negative, a warning is justified. 

Generating a warning on code that is correct for the target is not useful. 

Likely the code will never be compiled on a platform where the warning is
correct.

Given almost no possibility the warning will ever be correctly identify a
problem, this is at least a very poor choice, and infinitely close to a bug. :)

Reply via email to