This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
c++/9010: Err in dump class hierarchy file gen for template class destructor
- From: lei at ca dot ibm dot com
- To: gcc-gnats at gcc dot gnu dot org
- Cc: michaelw at ca dot ibm dot com
- Date: 19 Dec 2002 17:35:41 -0000
- Subject: c++/9010: Err in dump class hierarchy file gen for template class destructor
- Reply-to: lei at ca dot ibm dot com
>Number: 9010
>Category: c++
>Synopsis: Err in dump class hierarchy file gen for template class destructor
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Dec 19 09:36:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: Lei Huang
>Release: 3.2
>Organization:
>Environment:
Linux Version 2.4.19 SuSE SLES 8 (ppc) - Kernel 2.4.19-ul1-ppc64-SMP (36).
GNU assembler version 2.12.90.0.15 (powerpc-suse-linux) using BFD version 2.12.90.0.15 20020717 (SuSE)
>Description:
Error in dump class hiearchy file generated for template class's
virutal destructor. This only occurs for template classes.
Options given when GCC was configured/built:
Configured with: /build/gcc/gcc-3.2/configure -prefix=/.../torolab.ibm.com/fs/pr
oj/p0/vabld/run/gcc/linux_ppc/3.2.0 -enable-threads=posix -enable-languages=c,c+
+ -disable-shared
Thread model: posix
Sourc code for a.cpp:
------------------------------------------------
template <class T> struct A {
virtual ~A () {}
};
A<int> a;
------------------------------------------------
Actual class hierarchy file (a.cpp.class):
------------------------------------------------
Vtable for A<int>
A<int>::_ZTV1AIiE: 4 entries
0 0
4 &_ZTI1AIiE
8 A<T>::A() [with T = int]
12 A<T>::A() [with T = int]
Class A<int>
size=4 align=4
A<int> (0x40092600) 0 nearly-empty
vptr=((&A<int>::_ZTV1AIiE) + 8)
------------------------------------------------
Expected Behaviour:
- expected the "Vtable for A<int>" entries contains class A's destructor,
not constructor
a.ii generated with -save-temps option
------------------------------------------------
# 1 "a.cpp"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "a.cpp"
template <class T> struct A {
virtual ~A () {}
};
A<int> a;
------------------------------------------------
>How-To-Repeat:
1. g++ -fdump-class-hierarchy -c a.cpp
2. cat a.cpp.class
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: