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 c++/21228] New: -Wunreachable-code produces spurious warnings for constructor


I have a small C++ code segment that produces an invalid warning about 
unreachable code.  It might be similar to #19354 but that bug is reported fixed 
in 4.0.0, and indeed the example there works in my build.

homerun[/home/etalvola]<184> g++ -v -save-temps -m64 -mcpu=v9 -O0 -Wunreachable-
code gstest.cpp
Using built-in specs.
Target: sparc-sun-solaris2.8
Configured with: ../configure --prefix=/usr/local/geneva/packages/gcc
Thread model: posix
gcc version 4.0.0
 /usr/local-sol/geneva/packages/gcc/bin/../libexec/gcc/sparc-sun-
solaris2.8/4.0.0/cc1plus -E -quiet -v -iprefix /usr/local-
sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-solaris2.8/4.0.0/ -
D__arch64__ -D__sparcv9 gstest.cpp -mptr64 -mstack-bias -mno-v8plus -m64 -
mcpu=v9 -Wunreachable-code -O0 -fpch-preprocess -o gstest.ii
ignoring nonexistent directory "/usr/local-
sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-
solaris2.8/4.0.0/../../../../sparc-sun-solaris2.8/include"
ignoring duplicate directory "/usr/local/geneva/packages/gcc/lib/gcc/sparc-sun-
solaris2.8/4.0.0/../../../../include/c++/4.0.0"
ignoring duplicate directory "/usr/local/geneva/packages/gcc/lib/gcc/sparc-sun-
solaris2.8/4.0.0/../../../../include/c++/4.0.0/sparc-sun-solaris2.8"
ignoring duplicate directory "/usr/local/geneva/packages/gcc/lib/gcc/sparc-sun-
solaris2.8/4.0.0/../../../../include/c++/4.0.0/backward"
ignoring duplicate directory "/usr/local/geneva/packages/gcc/lib/gcc/sparc-sun-
solaris2.8/4.0.0/include"
ignoring nonexistent directory "/usr/local/geneva/packages/gcc/lib/gcc/sparc-
sun-solaris2.8/4.0.0/../../../../sparc-sun-solaris2.8/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local-sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-
solaris2.8/4.0.0/../../../../include/c++/4.0.0
 /usr/local-sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-
solaris2.8/4.0.0/../../../../include/c++/4.0.0/sparc-sun-solaris2.8
 /usr/local-sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-
solaris2.8/4.0.0/../../../../include/c++/4.0.0/backward
 /usr/local-sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-
solaris2.8/4.0.0/include
 /usr/local/include
 /usr/local/geneva/packages/gcc/include
 /usr/include
End of search list.
 /usr/local-sol/geneva/packages/gcc/bin/../libexec/gcc/sparc-sun-
solaris2.8/4.0.0/cc1plus -fpreprocessed gstest.ii -mptr64 -mstack-bias -mno-
v8plus -quiet -dumpbase gstest.cpp -m64 -mcpu=v9 -auxbase gstest -O0 -
Wunreachable-code -version -o gstest.s
GNU C++ version 4.0.0 (sparc-sun-solaris2.8)
        compiled by GNU C version 3.3.3.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
gstest.cpp: In constructor 'testStringBase::testStringBase()':
gstest.cpp:15: warning: will never be executed
 /usr/ccs/bin/as -V -Qy -s -xarch=v9 -o gstest.o gstest.s
/usr/ccs/bin/as: Sun WorkShop 6 99/08/18
 /usr/local-sol/geneva/packages/gcc/bin/../libexec/gcc/sparc-sun-
solaris2.8/4.0.0/collect2 -V -Y P,/usr/lib/sparcv9 -Qy /usr/local-
sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-
solaris2.8/4.0.0/sparcv9/crt1.o /usr/local-
sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-
solaris2.8/4.0.0/sparcv9/crti.o /usr/ccs/lib/sparcv9/values-Xa.o /usr/local-
sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-
solaris2.8/4.0.0/sparcv9/crtbegin.o -L/usr/local-
sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-solaris2.8/4.0.0/sparcv9 -
L/usr/local-sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-solaris2.8/4.0.0 -
L/usr/local-sol/geneva/packages/gcc/bin/../lib/gcc -
L/usr/local/geneva/packages/gcc/lib/gcc/sparc-sun-solaris2.8/4.0.0/sparcv9 -
L/usr/local/geneva/packages/gcc/lib/gcc/sparc-sun-solaris2.8/4.0.0 -
L/usr/ccs/bin/sparcv9 -L/usr/ccs/bin -L/usr/ccs/lib/sparcv9 -L/usr/ccs/lib -
L/usr/local-sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-
solaris2.8/4.0.0/../../../sparcv9 -L/usr/local-
sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-solaris2.8/4.0.0/../../.. -
L/usr/local/geneva/packages/gcc/lib/gcc/sparc-sun-
solaris2.8/4.0.0/../../../sparcv9 -
L/usr/local/geneva/packages/gcc/lib/gcc/sparc-sun-solaris2.8/4.0.0/../../.. -
L/lib/sparcv9 -L/usr/lib/sparcv9 gstest.o -lstdc++ -lm -lgcc_s -lgcc -lc -
lgcc_s -lgcc -lc /usr/local-sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-
solaris2.8/4.0.0/sparcv9/crtend.o /usr/local-
sol/geneva/packages/gcc/bin/../lib/gcc/sparc-sun-solaris2.8/4.0.0/sparcv9/crtn.o
ld: Software Generation Utilities - Solaris Link Editors: 5.8-1.273


homerun[/home/etalvola]<185> cat gstest.cpp
// #include <stdio.h>

class testStringBase
{
public:
  char *stringPtr;
};

class testString : public testStringBase
{
public:
  testString();
};

testString::testString()
{
  stringPtr = (char *) 9;
}
 
int main(int argc, char **argv) {
  testString s;
  //  printf("s.stringPtr is %ld\n", (unsigned long) s.stringPtr);
}


If the lines are uncommented - the pointer is set to '9' so clearly the code is 
being executed.

-- 
           Summary: -Wunreachable-code produces spurious warnings for
                    constructor
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: talvola at yahoo dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: sparc-sun-solaris2.8
  GCC host triplet: sparc-sun-solaris2.8
GCC target triplet: sparc-sun-solaris2.8


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


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