[Bug c++/47729] Failure to receive warning message when comparing signed and unsigned integers

samuelmarks at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Feb 14 11:26:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47729

Samuel Marks <samuelmarks at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |major

--- Comment #2 from Samuel Marks <samuelmarks at gmail dot com> 2011-02-14 11:19:29 UTC ---
(In reply to comment #1)
> > Unfortunately I don't receive warning message when comparing signed and
> > unsigned integers within a function.
> > 
> > When comparing with >, >=, < or <=, it gives me a warning message.
> > 
> > Only when comparing with != inside a function does the warning message not
> > appear.
> 
> This is rather confused.  You don't get the warning on line 19 because the
> function template is instantiated with n/size equal to the constant 4u, so
> there is no real need to warn here.
> 
> The relevant comment in the source code of the compiler is:
> 
>       /* Do not warn if the comparison is an equality operation, the
>          unsigned quantity is an integral constant, and it would fit
>          in the result if the result were signed.  */

Good point, I was thinking the same; however thought that condition would also
hold true for >, <, >=, <=...



More information about the Gcc-bugs mailing list