This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/10782: undefined reference to `virtual thunk ...
- From: dens at stl dot sarov dot ru
- To: gcc-gnats at gcc dot gnu dot org
- Date: 14 May 2003 14:39:48 -0000
- Subject: c++/10782: undefined reference to `virtual thunk ...
- Reply-to: dens at stl dot sarov dot ru
>Number: 10782
>Category: c++
>Synopsis: undefined reference to `virtual thunk ...
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed May 14 14:46:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: dens@stl.sarov.ru
>Release: unknown-1.0
>Organization:
>Environment:
cat /proc/version
Linux version 2.4.18-14smp (bhcompile@stripples.devel.redhat.com) (gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)) #1 SMP Wed Sep 4 12:34:47 EDT 2002
cat /etc/issue
Red Hat Linux release 8.0 (Psyche)
Kernel \r on an \m
rpm -qa | grep gcc
gcc-gnat-3.2-7
gcc-objc-3.2-7
gcc-3.2-7
libgcc-3.2-7
gcc-g77-3.2-7
gcc-java-3.2-7
gcc-c++-3.2-7
>Description:
G++ doesn't generate virtual thunk for c21 destructor from attached sample:
nm gtest.o | grep c21D
000006e4 T _ZN3c183c193c21D0Ev
0000066a T _ZN3c183c193c21D1Ev
000005ec T _ZN3c183c193c21D2Ev
U _ZTv0_n16_N3c183c193c21D0Ev
U _ZTv0_n16_N3c183c193c21D1Ev
[dens@sr007lnx work]$ g++ gtest.cpp
gtest.cpp:69: warning: direct base `c0::c1' inaccessible in `c8' due to
ambiguity
/home/dens/tmp/ccbwnzlp.o(.gnu.linkonce.d._ZTC3c264_N3c183c193c21E+0x30): undefined reference to `virtual thunk [v:0,-16] to c18::c19::c21::~c21 [in-charge]()'
/home/dens/tmp/ccbwnzlp.o(.gnu.linkonce.d._ZTC3c264_N3c183c193c21E+0x34): undefined reference to `virtual thunk [v:0,-16] to c18::c19::c21::~c21 [in-charge deleting]()'
collect2: ld returned 1 exit status
NB in case when c26 constructor is "inline" thunk is not needed. It isn't good also.
>How-To-Repeat:
g++ gtest.cpp
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="gtest.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gtest.cpp"
Y2xhc3MgYzAgCnsKICBwdWJsaWM6CiAgYzAoKTsKCiAgY2xhc3MgYzEgCiAgewogICAgcHVibGlj
OgogICAgYzEoKTsKCiAgICBzaWduZWQgY2hhciBtMDsKICAgIHN0YXRpYyBsb25nIGRvdWJsZSB2
b2xhdGlsZSB2MDsKCiAgfSAvKiBjbGFzcyBjMSAqLzsKCn0gLyogY2xhc3MgYzAgKi87CgpjMDo6
YzAoKSB7fQpjMDo6YzE6OmMxKCkge30KCm5hbWVzcGFjZSBzdGQgewoKICBjbGFzcyBjMyA6IAog
ICAgcHJpdmF0ZSB2aXJ0dWFsIDo6YzA6OmMxCiAgewogICAgcHVibGljOgogICAgYzMoKTsKCiAg
ICBjbGFzcyBjNiAKICAgIHsKICAgICAgcHVibGljOgogICAgICBjNigpOwoKICAgICAgY2xhc3Mg
YzcgOiBwdWJsaWMgdmlydHVhbCA6OmMwOjpjMQogICAgICB7CiAgICAgICAgcHVibGljOgogICAg
ICAgIGM3KCk7CgogICAgICAgIHZpcnR1YWwgfmM3KCk7CgogICAgICAgIHN0YXRpYyBkb3VibGUg
Y29uc3Qgdm9sYXRpbGUgdjE7CgogICAgICB9IC8qIGNsYXNzIGM3ICovOwoKICAgIH0gLyogY2xh
c3MgYzYgKi87CgogICAgdmlydHVhbCB+YzMoKTsKCiAgfSAvKiBjbGFzcyBjMyAqLzsKCiAgYzM6
OmMzKCkge30KCiAgYzM6On5jMygpIHt9CgogIGMzOjpjNjo6YzYoKSB7fQoKICBjMzo6YzY6OmM3
OjpjNygpIHt9CgogIGMzOjpjNjo6Yzc6On5jNygpIHt9CgogIGRvdWJsZSBjb25zdCB2b2xhdGls
ZSBjMzo6YzY6OmM3Ojp2MSA9IDAuMDsKCn0gLyogbmFtZXNwYWNlIHN0ZCAqLwoKY2xhc3MgYzgg
OiAKICBwcm90ZWN0ZWQgdmlydHVhbCA6OmMwLAogIHB1YmxpYyB2aXJ0dWFsIDo6c3RkOjpjMzo6
YzY6OmM3LAogIHByb3RlY3RlZCA6OmMwOjpjMQp7CiAgcHVibGljOgogIGM4KCk7CgogIHN0cnVj
dCBjOSA6IAogICAgcHJvdGVjdGVkIDo6c3RkOjpjMzo6YzY6OmM3CiAgewogICAgYzkoKTsKCgog
ICAgdmlydHVhbCB+YzkoKTsKCiAgfSAvKiBzdHJ1Y3QgYzkgKi87CgoKfSAvKiBjbGFzcyBjOCAq
LzsKCmM4OjpjOCgpIHt9CgoKYzg6OmM5OjpjOSgpIHt9CgpjODo6Yzk6On5jOSgpIHt9CgoKCnN0
cnVjdCBjMTggOiAKICBwdWJsaWMgdmlydHVhbCA6OnN0ZDo6YzMKewogIGMxOCgpOwoKCiAgY2xh
c3MgYzE5IAogIHsKICAgIHB1YmxpYzoKICAgIGMxOSgpOwoKICAgIHN0cnVjdCBjMjEgOiAKICAg
ICAgcHVibGljIHZpcnR1YWwgOjpzdGQ6OmMzOjpjNjo6YzcsCiAgICAgIHB1YmxpYyA6OmM4CiAg
ICB7CiAgICAgIGMyMSgpOwoKCiAgICAgIHZpcnR1YWwgfmMyMSgpOwoKICAgIH0gLyogc3RydWN0
IGMyMSAqLzsKCiAgICB+YzE5KCk7CgogIH0gLyogY2xhc3MgYzE5ICovOwoKICB2aXJ0dWFsIH5j
MTgoKTsKCn0gLyogc3RydWN0IGMxOCAqLzsKCmMxODo6YzE4KCkge30KCmMxODo6fmMxOCgpIHt9
CgpjMTg6OmMxOTo6YzE5KCkge30KCmMxODo6YzE5Ojp+YzE5KCkge30KCmMxODo6YzE5OjpjMjE6
OmMyMSgpIHt9CgpjMTg6OmMxOTo6YzIxOjp+YzIxKCkge30KCnN0cnVjdCBjMjYgOiBwdWJsaWMg
dmlydHVhbCA6OmMxODo6YzE5OjpjMjEKewogICAgICBjMjYoKTsKfTsgCmMyNjo6YzI2KCkge30K
CgoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCiAgTWFpbiBQcm9ncmFtCioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKaW50Cm1h
aW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgewpyZXR1cm4gMDsKfQo=