------- Comment #2 from pinskia at gmail dot com  2008-09-24 17:44 -------
Subject: Re:   New: GCC applies signed strict-overflow rules to unsigned short
type

When doing addition unsigned short is promoted to an signed int. So  
this is not a bug. That is unsigned short + 1 is a signed int since 1  
is a signed int.

Sent from my iPhone

On Sep 24, 2008, at 10:29 AM, "alexandre dot nunes at gmail dot com"
<[EMAIL PROTECTED] 
 > wrote:

> I'll submit a testcase that apparently demonstrates that gcc is  
> trying to apply
> signed strict overflow rules to an unsigned short type, at least on  
> 32 bit
> machines when short is 16 bit.
>
> Here is the output:
> arm-elf-gcc -O2 -W -Wall -Wstrict-overflow=5 -c testcase.c
> testcase.c: In function ‘incr_counter’:
> testcase.c:13: warning: assuming signed overflow does not occur when  
> assuming
> that (X + c) < X is always false
>
> this is from gcc 4.3.1; my native build also has the same semantics,  
> and I've
> tested with 4.2.4 also.
>
> The thing is that the type is unsigned (even if it is smaller than  
> the target
> machine register), so that it can overflow and it can be detected  
> (costly
> perhaps, but can).
>
>
> -- 
>           Summary: GCC applies signed strict-overflow rules to  
> unsigned
>                    short type
>           Product: gcc
>           Version: 4.2.4
>            Status: UNCONFIRMED
>          Severity: normal
>          Priority: P3
>         Component: c
>        AssignedTo: unassigned at gcc dot gnu dot org
>        ReportedBy: alexandre dot nunes at gmail dot com
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37642
>


-- 


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

Reply via email to