[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: