http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60965

--- Comment #12 from Jan Hubicka <hubicka at ucw dot cz> ---
> (In reply to Jan Hubicka from comment #4)
> > Mine, probably 4.9 regression, too.
> 
> It is, and Jonathan Wakely's earlier reduction exposes it on 4.9 too.
> 
> (In reply to Jan Hubicka from comment #6)
> > Can you, please, double check that it fixes the Java issues?
> 
> With 4.9.0, for me, IcedTea reliably hangs during the build process. I hadn't
> investigated the problem at all, but with 4.9.0 plus your patch, it builds
> successfully.
> 
> What I had looked into was a segmentation fault in Qt
> (https://bugreports.qt-project.org/browse/QTBUG-38733) and Chromium, both 
> using
> WebKit, also because of this. Chromium is still building, but for Qt, I can
> confirm it is also fixed by your patch.

Thank you,
I think the patch (as it is, modulo the reversed comment) is safe -
per Jason's comments we may make it stronger, but it won't win much: we are
only
interested in tracking types with vtable pointer, nothing else at the moment.

Assuming that any type can change at any time would really disable pretty much
all of the type based devirtualization - not just the case we are seeing, as
the
compiler would have to prove that there is no vtable store in between
definition
and apperance of the polymorphic call. We have logic for that, but it is not
particularly strong: alias analysis will always say yes on any external
function call,
for instance.

We make pretty strong assumptions here for years, so I hope there will be no
additional surprises.  I am still travelling, but will go ahead with it on
monday if there are no other problems found.

Honza

Reply via email to