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

2014-03-28 Thread Jason Merrill
On 03/28/2014 06:31 AM, Jakub Jelinek wrote: Ok for trunk? Yes, thanks. Jason

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

2014-03-28 Thread Rainer Orth
Jakub Jelinek 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 --

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

2014-03-28 Thread Jakub Jelinek
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 _Z

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

2014-03-28 Thread Rainer Orth
Andreas Schwab writes: > Jason Merrill writes: > >> diff --git a/gcc/testsuite/g++.dg/abi/thunk6.C >> b/gcc/testsuite/g++.dg/abi/thunk6.C >> new file mode 100644 >> index 000..e3d07f2 >> --- /dev/null >> +++ b/gcc/testsuite/g++.dg/abi/thunk6.C >> @@ -0,0 +1,18 @@ >> +// PR c++/60566 >> +// W

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

2014-03-27 Thread Jason Merrill
On 03/27/2014 01:42 AM, Jan Hubicka wrote: I belive the problem here is the _vptr.MultiTermDocs vtable is initialized from VTT that is not understood by ipa-prop jump functions. Makes sense. It would be good to update those functions to understand that the initialization is always setting the

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

2014-03-27 Thread Andreas Schwab
Jason Merrill writes: > diff --git a/gcc/testsuite/g++.dg/abi/thunk6.C > b/gcc/testsuite/g++.dg/abi/thunk6.C > new file mode 100644 > index 000..e3d07f2 > --- /dev/null > +++ b/gcc/testsuite/g++.dg/abi/thunk6.C > @@ -0,0 +1,18 @@ > +// PR c++/60566 > +// We need to emit the construction vtab

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

2014-03-26 Thread Jan Hubicka
> My earlier patch for 58678 caused this problem: even if we aren't > going to refer to the dtor thunks from the vtable, we need to emit > them in case other translation units use them. > > I'm adding xfails to two testcases: devirt-21.C and devirt-23.C. > The fails aren't a new bug; we are no lon

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

2014-03-26 Thread Jason Merrill
On 03/26/2014 12:49 PM, Jason Merrill wrote: But it seems odd to me that it isn't happening on path through a non-virtual call to ~MultiTermDocs, so I'm filing a bug about that. 60674. Jason

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

2014-03-26 Thread Jason Merrill
My earlier patch for 58678 caused this problem: even if we aren't going to refer to the dtor thunks from the vtable, we need to emit them in case other translation units use them. I'm adding xfails to two testcases: devirt-21.C and devirt-23.C. The fails aren't a new bug; we are no longer see