[Bug c/60083] New: Duplicate conversion warnings from negative integer to unsigned type (gcc-4.3 emits only one warning)
chengniansun at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Feb 5 17:58:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60083
Bug ID: 60083
Summary: Duplicate conversion warnings from negative integer to
unsigned type (gcc-4.3 emits only one warning)
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: chengniansun at gmail dot com
I have the following code, and gcc-trunk emits duplicate warnings on the
implicit conversion from negative long long to unsigned short.
Moreover, if I turn on -O1, gcc emits only one warning, but the message changes
to "large integer implicitly truncated to unsigned type".
Lastly, gcc-4.3 only emits one warning for this conversion.
$: cat s.c
int *const a = 0;
unsigned fn1() {
unsigned short s = ~0x4578ADBCAA1DE677LL ^ a == 0;
return s;
}
$: gcc-trunk -c -Wconversion s.c
s.c: In function ‘fn1’:
s.c:3:22: warning: negative integer implicitly converted to unsigned type
[-Wsign-conversion]
unsigned short s = ~0x4578ADBCAA1DE677LL ^ a == 0;
^
s.c:3:22: warning: negative integer implicitly converted to unsigned type
[-Wsign-conversion]
$: gcc-trunk -c -O1 -Wconversion s.c
s.c: In function ‘fn1’:
s.c:3:22: warning: large integer implicitly truncated to unsigned type
[-Woverflow]
unsigned short s = ~0x4578ADBCAA1DE677LL ^ a == 0;
^
$: gcc-4.3 -c -O1 -Wconversion s.c
s.c: In function ‘fn1’:
s.c:3: warning: large integer implicitly truncated to unsigned type
$:
More information about the Gcc-bugs
mailing list