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

login
register
mail settings
Submitter Jakub Jelinek
Date March 28, 2014, 10:31 a.m.
Message ID <20140328103122.GI1817@tucnak.redhat.com>
Download mbox | patch
Permalink /patch/334647/
State New
Headers show

Comments

Jakub Jelinek - March 28, 2014, 10:31 a.m.
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.



	Jakub
Rainer Orth - March 28, 2014, 2:06 p.m.
Jakub Jelinek <jakub@redhat.com> writes:

> 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?

Looks right to me, but I'd like to defer to Jason as the subject-matter
expert.

Thanks.
        Rainer
Jason Merrill - March 28, 2014, 4:57 p.m.
On 03/28/2014 06:31 AM, Jakub Jelinek wrote:
> Ok for trunk?

Yes, thanks.

Jason

Patch

--- 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 } } }