[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