[Bug c++/70590] [6 Regression] r234810 causes error: location references block not in block tree

trippels at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Apr 8 12:12:00 GMT 2016


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

--- Comment #6 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
(In reply to Patrick Palka from comment #5)
> (In reply to Markus Trippelsdorf from comment #4)
> > (In reply to Patrick Palka from comment #3)
> > > (In reply to Jakub Jelinek from comment #2)
> > > > location references block not in block tree generally means insufficient
> > > > unsharing, where some function that got through gimple-low.c where
> > > > TREE_SET_BLOCK has been used on some of the trees is sharing trees with a
> > > > different function.
> > > 
> > > That makes sense.  So in cxx_eval_call_expression we should unconditionally
> > > unshare the result of the call because the two caches (fundef_copies_table
> > > and constexpr_call_table) may cause us to share the same trees in different
> > > functions.  Alternatively we can just call unshare_expr once in the
> > > top-level cxx_eval_outermost_constant_expression, I think.  Markus, does
> > > this patch fix the build for you?
> > 
> > No. It now ICEs: in maybe_constant_value_1, at cp/constexpr.c:4328
> 
> What about just this instead?

This one fixes the issue. Firefox now builds fine. Thanks.


More information about the Gcc-bugs mailing list