[PATCH][C++] Fix ICE with VTV
Richard Biener
rguenther@suse.de
Wed Feb 20 14:35:00 GMT 2019
On Tue, 19 Feb 2019, Caroline Tice wrote:
> On Tue, Feb 19, 2019 at 1:57 AM Richard Biener <rguenther@suse.de> wrote:
>
> >
> > Looks like vtv_generate_init_routine calls symtab->process_new_functions
> > () which has seriously bad effects on GCCs internal memory state.
> >
> > VTV has zero testsuite coverage it seems and besides its initial
> > commit didn't receive any love.
> >
>
> I am puzzled by these statements, as neither of them is true. VTV does
> have a testsuite in the libvtv directory. Naturally you can only run them
> when vtv is enabled and only from the libvtv build tree, as they will all
> fail if VTV is not enabled. I have fixed various bugs in VTV since the
> initial commit, and I have also approved several patches, especially for
> people migrating it to other architectures, suggesting that interest in it
> is not zero.
>
>
>
> >
> > Can we rip it out please?
> >
> > Is the patch OK? (Pointless) bootstrap and regtest running on
> > x86_64-unknown-linux-gnu.
> >
> > Has anybody "recently" tried to enable the feature and tested the
> > result?
> >
>
> I have not tried building it recently, but will do so. I will review your
> patch to see if it makes sense. I would prefer that VTV not be 'ripped
> out' of GCC, and will do whatever I can, within reason, to try to fix its
> issues.
Meanwhile the patch passed bootstrap and testing with
--enable-vtable-verify.
Richard.
>
> >
> > Thanks,
> > Richard.
> >
> > 2019-02-19 Richard Biener <rguenther@suse.de>
> >
> > PR middle-end/89392
> > cp/
> > * vtable-class-hierarchy.c (vtv_generate_init_routine): Do not
> > make symtab process new functions here.
> >
> > Index: gcc/cp/vtable-class-hierarchy.c
> > ===================================================================
> > --- gcc/cp/vtable-class-hierarchy.c (revision 269009)
> > +++ gcc/cp/vtable-class-hierarchy.c (working copy)
> > @@ -1191,8 +1191,6 @@ vtv_generate_init_routine (void)
> > gimplify_function_tree (vtv_fndecl);
> > cgraph_node::add_new_function (vtv_fndecl, false);
> >
> > - symtab->process_new_functions ();
> > -
> > if (flag_vtable_verify == VTV_PREINIT_PRIORITY && !TARGET_PECOFF)
> > assemble_vtv_preinit_initializer (vtv_fndecl);
> >
> >
>
--
Richard Biener <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)
More information about the Gcc-patches
mailing list