[Bug middle-end/61268] [4.10 regression] ICE in vt_expand_var_loc_chain, at var-tracking.c:8262

rsandifo at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jun 18 08:19:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61268

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rsandifo at gcc dot gnu.org

--- Comment #5 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Created attachment 32962
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=32962&action=edit
Proposed patch

This was caused by some invalid rtl sharing between DECL_INCOMING_RTL
and the insn stream.  I think the right fix is (a) to copy stack_parm
and entry_parm before using them in the rtl stream and (b) as compensation,
to allow validize_mem to modify its argument in-place.  As well as fixing
the bug, this seems to reduce the total amount of rtl copying required.

Of course, the problem with (b) is that this could in turn expose other
invalid sharing bugs, so it's a bit frying-pan-to-fire.  I've tried to
look through all calls to validize_mem to see which might be affected.

The patch passed bootstrap on x86_64-linux-gnu but could you test it for
sparc too?



More information about the Gcc-bugs mailing list