On Mon, 5 May 2014, Jan Hubicka wrote: > Hi, > this patch fixes unfortunate thinko in get_class_context that invalidates > transitions from non-POD type to a polymorphic type that may happen by virtue > of placement new and apparently breaks openJDK and Qt. I really tried to keep > placement new in mind when implementing ipa-devirt, so hope there are no > similar negaitve surprises. > > The patch disables about 200 out of 30000 devirtualizations happening in > Firefox. > > I have commited it to 4.9 and will commit to mainline once testing finishes. > > Honza > > PR ipa/60965 > * g++.dg/ipa/devirt-31.C: New testcase. > * g++.dg/ipa/devirt-11.C: Adjust testcase. > * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
Unfortunately (re-)introduced PR58094 (devirt-11.C failing on most targets). brgds, H-P