[Bug c/59963] New: Wrong column number for warning -Woverflow
chengniansun at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Jan 27 22:59:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59963
Bug ID: 59963
Summary: Wrong column number for warning -Woverflow
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
Gcc emits constant overflow warnings with incorrect column numbers. The column
always starts from the beginning of the statement or expression in which
overflow occurs.
$: cat imprecise-column-no-overflow.c
extern int f(short a, short b);
int g() {
return f(0xFFFFFFFFL, 0xFFFFFFFFL) && f(0xFFFFFFFFL, 0xFFFFFFFFL) ;
}
$: gcc-trunk -c -Woverflow imprecise-column-no-overflow.c
imprecise-column-no-overflow.c: In function ‘g’:
imprecise-column-no-overflow.c:3:3: warning: overflow in implicit constant
conversion [-Woverflow]
return f(0xFFFFFFFFL, 0xFFFFFFFFL) && f(0xFFFFFFFFL, 0xFFFFFFFFL) ;
^
imprecise-column-no-overflow.c:3:3: warning: overflow in implicit constant
conversion [-Woverflow]
imprecise-column-no-overflow.c:3:3: warning: overflow in implicit constant
conversion [-Woverflow]
imprecise-column-no-overflow.c:3:3: warning: overflow in implicit constant
conversion [-Woverflow]
$: gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/home/chengniansun/tools/gcc-trunk-binaries/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-trunk/configure --enable-languages=c,c++
--disable-multilib --prefix=/home/chengniansun/tools/gcc-trunk-binaries :
(reconfigured) ../gcc-trunk/configure --enable-languages=c,c++
--disable-multilib --prefix=/home/chengniansun/tools/gcc-trunk-binaries
Thread model: posix
gcc version 4.9.0 20140127 (experimental) (GCC)
$: clang-trunk -c -Woverflow imprecise-column-no-overflow.c
imprecise-column-no-overflow.c:3:12: warning: implicit conversion from 'long'
to 'short' changes value from 4294967295 to -1 [-Wconstant-conversion]
return f(0xFFFFFFFFL, 0xFFFFFFFFL) && f(0xFFFFFFFFL, 0xFFFFFFFFL) ;
~ ^~~~~~~~~~~
imprecise-column-no-overflow.c:3:25: warning: implicit conversion from 'long'
to 'short' changes value from 4294967295 to -1 [-Wconstant-conversion]
return f(0xFFFFFFFFL, 0xFFFFFFFFL) && f(0xFFFFFFFFL, 0xFFFFFFFFL) ;
~ ^~~~~~~~~~~
imprecise-column-no-overflow.c:3:43: warning: implicit conversion from 'long'
to 'short' changes value from 4294967295 to -1 [-Wconstant-conversion]
return f(0xFFFFFFFFL, 0xFFFFFFFFL) && f(0xFFFFFFFFL, 0xFFFFFFFFL) ;
~ ^~~~~~~~~~~
imprecise-column-no-overflow.c:3:56: warning: implicit conversion from 'long'
to 'short' changes value from 4294967295 to -1 [-Wconstant-conversion]
return f(0xFFFFFFFFL, 0xFFFFFFFFL) && f(0xFFFFFFFFL, 0xFFFFFFFFL) ;
~ ^~~~~~~~~~~
4 warnings generated.
More information about the Gcc-bugs
mailing list