C++ PATCH for c++/60566 (dtor devirtualization and missing thunks)

Jakub Jelinek jakub@redhat.com
Fri Mar 28 10:48:00 GMT 2014


On Fri, Mar 28, 2014 at 10:06:45AM +0100, Rainer Orth wrote:
> > 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
> 
> It would help to state which target this is...
> 
> Same for the 32-bit multilib on Solaris/SPARC and x86
> (i386-pc-solaris2.11, sparc-sun-solaris2.11).

Seems it fails on all ilp32 targets I've tried and succeeds on all lp64
targets (including ia64), so I think we should do following.
Ok for trunk?

2014-03-28  Jakub Jelinek  <jakub@redhat.com>

	PR c++/58678
	* g++.dg/abi/thunk6.C: Scan assembler for _ZTv0_n32_N1CD1Ev
	only for lp64 targets and scan for _ZTv0_n16_N1CD1Ev for ilp32
	targets.

--- gcc/testsuite/g++.dg/abi/thunk6.C.jj	2014-03-26 20:31:53.000000000 +0100
+++ gcc/testsuite/g++.dg/abi/thunk6.C	2014-03-28 11:20:45.051852976 +0100
@@ -15,4 +15,5 @@ C::~C() {}
 
 int main() {}
 
-// { dg-final { scan-assembler "_ZTv0_n32_N1CD1Ev" } }
+// { dg-final { scan-assembler "_ZTv0_n32_N1CD1Ev" { target lp64 } } }
+// { dg-final { scan-assembler "_ZTv0_n16_N1CD1Ev" { target ilp32 } } }


	Jakub



More information about the Gcc-patches mailing list