[Bug c++/12698] New: Multiple definition of covariant thunk in the single unit
grigory at stl dot sarov dot ru
gcc-bugzilla@gcc.gnu.org
Tue Oct 21 05:21:00 GMT 2003
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12698
Summary: Multiple definition of covariant thunk in the single
unit
Product: gcc
Version: 3.4
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: grigory at stl dot sarov dot ru
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-redhat-linux
GCC host triplet: i686-redhat-linux
GCC target triplet: i686-redhat-linux
Compiling the test-case listed below, g++ 3.4 gives multiple definition of a
covariant thunk. Two symbols with the same name are emitted in the asm source
so assembler fails in the end. Probably the second thunk definition appeared
due to incorrect offset encoding.
Failure appear both on i686-redhat-linux and ia64-suse-linux.
$ cat thunk.cpp
struct c1 {};
struct c0 {
int i;
virtual c1& f10() {};
};
struct c2 : virtual c1, c0 { };
struct c6 : virtual c2, c0 {
virtual c2& f10() {};
};
struct c14 : virtual c2 { };
struct c19 : virtual ::c6 {
virtual class ::c14& f10() {};
};
c19 obj;
$ g++ -c thunk.cpp
thunk.cpp:10: warning: direct base `c0' inaccessible in `c6' due to ambiguity
/home/grigory/tmp/cc8J96E3.s: Assembler messages:
/home/grigory/tmp/cc8J96E3.s:357: Error: symbol `_ZTch0_v0_n12_N3c193f10Ev' is
already defined
/home/grigory/tmp/cc8J96E3.s:405: Error: symbol `_ZTcv0_n20_v0_n12_N3c193f10Ev'
is already defined
More information about the Gcc-bugs
mailing list