Bug#153965: gcc-3.1: incorrect line numbers in warning messages when using inline functions
Package: gcc-3.1
Version: 1:3.1.1-0pre3
Severity: normal
static inline int
foo(int x)
{
if (!x)
return 0;
}
int main(void)
{
foo(1);
return 1;
}
Building this with gcc-3.1 -c -o foo.o foo.c -Wall gives this output:
foo.c: In function `foo':
foo.c:13: warning: control reaches end of non-void function
Compare the same with gcc 2.95:
foo.c: In function `foo':
foo.c:6: warning: control reaches end of non-void function
gcc 3.1 also produces correct line numbers if either "static" or
"inline" is removed from foo. Removing the body of function foo()
causes a secondary warning to be generated in the right place, but the
original warning still has the wrong line number.
-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux cyclone 2.4.13 #7 Wed Mar 20 23:51:20 GMT 2002 i686
Locale: LANG=C, LC_CTYPE=
Versions of packages gcc-3.1 depends on:
ii binutils 2.12.90.0.14-1 The GNU assembler, linker and bina
ii cpp-3.1 1:3.1.1-0pre3 The GNU C preprocessor.
ii gcc-3.1-base 1:3.1.1-0pre3 The GNU Compiler Collection (base
ii libc6 2.2.5-12 GNU C Library: Shared libraries an
ii libgcc1 1:3.1.1-0pre3 GCC support library.
-- no debconf information
--
.''`. ** Debian GNU/Linux ** | Andrew Suffield
: :' : http://www.debian.org/ | Dept. of Computing,
`. `' | Imperial College,
`- -><- | London, UK
--
To UNSUBSCRIBE, email to debian-gcc-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: