--- 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