On Tue, Nov 26, 2013 at 10:13:35AM +0100, Richard Biener wrote: > On Mon, Nov 25, 2013 at 12:02 PM, Marek Polacek <pola...@redhat.com> wrote: > > On Mon, Nov 25, 2013 at 11:47:29AM +0100, Jakub Jelinek wrote: > >> That looks much better, I wonder if it would reproduce even if the result > >> is saved somewhere (either E *e; field in S with swapping of the two class > >> definitions, or global var or static data member static E *e; of S), > >> otherwise the new just allocates and throws away. Ok with that change, or > >> if it makes the problem no longer reproduceable, ok as is. > > > > It is reproduceable with all three variants. I'll commit this one shortly. > > > >> Note, once the LTO issues with internal functions are fixed, we need > >> to grep for all those dg-skip-if and remove them. > > > > Yeah, definitely. I'm keeping it in mind. > > I'll pre-approve removing the assert for ->leaf that currently makes > internal fns ICE with LTO for now. If it makes them "work" (please > double-check also code generation results).
Unfortunately, only removing the assert for ->leaf does not work, without it I get: ./a.out [Leaving LTRANS /tmp/ccvr1cAT.args] [Leaving LTRANS /tmp/ccfdPwKs.ltrans.out] [Leaving LTRANS /tmp/cctcbfzL.args] [Leaving LTRANS /tmp/ccfdPwKs.ltrans0.o] /tmp/ccfdPwKs.ltrans0.ltrans.o: In function `main': ccfdPwKs.ltrans0.o:(.text+0x1d): undefined reference to `.Lubsan_data0.2659' (Though it may be a bug in ubsan.) Marek