Jason Merrill <ja...@redhat.com> writes: > diff --git a/gcc/testsuite/g++.dg/abi/thunk6.C > b/gcc/testsuite/g++.dg/abi/thunk6.C > new file mode 100644 > index 0000000..e3d07f2 > --- /dev/null > +++ b/gcc/testsuite/g++.dg/abi/thunk6.C > @@ -0,0 +1,18 @@ > +// PR c++/60566 > +// We need to emit the construction vtable thunk for ~C even if we aren't > +// going to use it. > + > +struct A > +{ > + virtual void f() = 0; > + virtual ~A() {} > +}; > + > +struct B: virtual A { int i; }; > +struct C: virtual A { int i; ~C(); }; > + > +C::~C() {} > + > +int main() {} > + > +// { dg-final { scan-assembler "_ZTv0_n32_N1CD1Ev" } }
FAIL: g++.dg/abi/thunk6.C -std=c++11 scan-assembler _ZTv0_n32_N1CD1Ev $ grep _ZTv0_ thunk6.s .globl _ZTv0_n16_N1CD1Ev .type _ZTv0_n16_N1CD1Ev, @function _ZTv0_n16_N1CD1Ev: .size _ZTv0_n16_N1CD1Ev, .-_ZTv0_n16_N1CD1Ev .globl _ZTv0_n16_N1CD0Ev .type _ZTv0_n16_N1CD0Ev, @function _ZTv0_n16_N1CD0Ev: .size _ZTv0_n16_N1CD0Ev, .-_ZTv0_n16_N1CD0Ev Andreas. -- Andreas Schwab, SUSE Labs, sch...@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different."