This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug optimization/14378] New: generates "will never be executed" warnings for code that will be executed


gcc -v -save-temps -O -Wunreachable-code -c foo.c

gives:
==========
Reading specs from /usr/local/bin/../lib/gcc-lib/i386-redhat-linux/3.3.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux
Thread model: posix
gcc version 3.3.2 20031022 (Red Hat Linux 3.3.2-1)
 /usr/local/bin/../lib/gcc-lib/i386-redhat-linux/3.3.2/cc1 -E -quiet -v -iprefix
/usr/local/bin/../lib/gcc-lib/i386-redhat-linux/3.3.2/ -D__GNUC__=3
-D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=2 foo.c -Wunreachable-code -O foo.i
ignoring nonexistent directory "/usr/local/i386-redhat-linux/include"
ignoring nonexistent directory "/usr/i386-redhat-linux/include"
ignoring duplicate directory "/usr/lib/gcc-lib/i386-redhat-linux/3.3.2/include"
ignoring duplicate directory "/usr/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/gcc-lib/i386-redhat-linux/3.3.2/include
 /usr/local/include
End of search list.
 /usr/local/bin/../lib/gcc-lib/i386-redhat-linux/3.3.2/cc1 -fpreprocessed foo.i
-quiet -dumpbase foo.c -auxbase foo -O -Wunreachable-code -version -o foo.s
GNU C version 3.3.2 20031022 (Red Hat Linux 3.3.2-1) (i386-redhat-linux)
        compiled by GNU C version 3.3.2 20031022 (Red Hat Linux 3.3.2-1).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
foo.c: In function `main':
foo.c:32: warning: will never be executed
foo.c:28: warning: will never be executed
foo.c:24: warning: will never be executed
foo.c:20: warning: will never be executed
foo.c:16: warning: will never be executed
foo.c:16: warning: will never be executed
foo.c:16: warning: will never be executed
foo.c:16: warning: will never be executed
foo.c:16: warning: will never be executed
 as -V -Qy -o foo.o foo.s
GNU assembler version 2.14.90.0.6 (i386-redhat-linux) using BFD version
2.14.90.0.6 20030820
==========

which contains several "warning: will never be executed" lines

foo.c contains:
==========
extern int printf(const char *format, ...);

void f(void);
void g(void);
int h(int);

int main(void) {
  int i;
  for(i=0;i<10;i++) {
    switch(h(i)) {
    case 0:
      f();
      g(); 
      break;
    case 1:
      f();
      g(); 
      break;
    case 2:
      f();
      g(); 
      break;
    case 3:
      f();
      g(); 
      break;
    case 4:
      f();
      g(); 
      break;
    case 5:
      f();
      g(); 
      break;
    }
  }
  return 0;
}

void f(void) {
  printf("f\n");
}

void g(void) {
  printf("g\n");
}

int h(int i) {
  printf("h(%d)\n",i);
  return i%6;
}
==========

this error also happens on gcc 3.2.3

-- 
           Summary: generates "will never be executed" warnings for code
                    that will be executed
           Product: gcc
           Version: 3.3.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: will at dot dot phys dot unm dot edu
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i386-redhat-linux
  GCC host triplet: i386-redhat-linux
GCC target triplet: i386-redhat-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14378


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]