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++/10994] New: [3.4 regression] [new parser regression] template methods not instantiated


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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

           Summary: [3.4 regression] [new parser regression] template
                    methods not instantiated
           Product: gcc
           Version: 3.4
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: mueller@kde.org
                CC: gcc-bugs@gcc.gnu.org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu

Hi, 
 
The new C++ parser commit around christmas 2002 introduced a regression 
breaking Qt 3.2.x compilation. The problem is that gcc forgets to instantiate 
template methods which are never called, but only referenced in a function 
pointer and called from a cleanup routine.  
 
The first gcc mainline version showing this regression was 20021229, this is  
the output when trying to compile the testcase with this compiler: 
 
$  /opt/gcc/bin/g++ -Wall -v -o qt qt.cc 
Reading specs from /opt/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.4/specs 
Configured with:  
Thread model: posix 
gcc version 3.4 20021229 (experimental) 
 /opt/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.4/cc1plus -quiet -v -D__GNUC__=3 
-D__G 
NUC_MINOR__=4 -D__GNUC_PATCHLEVEL__=0 -D_GNU_SOURCE qt.cc -D__GNUG__=3 -quiet 
-d 
umpbase qt.cc -auxbase qt -Wall -version -o /tmp/ccrhPvTJ.s 
GNU C++ version 3.4 20021229 (experimental) (i686-pc-linux-gnu) 
        compiled by GNU C version 3.4 20021229 (experimental). 
ignoring nonexistent directory "/opt/gcc/i686-pc-linux-gnu/include" 
#include "..." search starts here: 
#include <...> search starts here: 
 /opt/gcc/include/c++/3.4 
 /opt/gcc/include/c++/3.4/i686-pc-linux-gnu 
 /opt/gcc/include/c++/3.4/backward 
 /usr/local/include 
 /opt/gcc/include 
 /opt/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.4/include 
 /usr/include 
End of search list. 
 as -V -Qy -o /tmp/cc5jVFTx.o /tmp/ccrhPvTJ.s 
GNU assembler version 2.13.90.0.18 (i486-suse-linux) using BFD version 
2.13.90.0 
.18 20030121 (SuSE Linux) 
 /opt/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.4/collect2 --eh-frame-hdr -m elf_i386  
-dynamic-linker /lib/ld-linux.so.2 -o qt /usr/lib/crt1.o /usr/lib/crti.o 
/opt/gc 
c/lib/gcc-lib/i686-pc-linux-gnu/3.4/crtbegin.o 
-L/opt/gcc/lib/gcc-lib/i686-pc-li 
nux-gnu/3.4 -L/opt/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.4/../../.. 
/tmp/cc5jVFTx. 
o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc 
/opt/gcc/lib/gcc-lib/i686-pc-linu 
x-gnu/3.4/crtend.o /usr/lib/crtn.o 
/tmp/cc5jVFTx.o(.gnu.linkonce.t._ZN1SIiE1mEv+0xa): In function `S<int>::m()': 
: undefined reference to `S<int>::missing()' 
collect2: ld returned 1 exit status 
 
the regression occurs in all mainline versions till 20030526 (newer not yet 
tested).



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


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