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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu.org

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
In fact we have the same without LTO ...

  _31 = &aloopD.38206_74->numD.37604;
...
  # DEBUG ptrD.42029 => &aloopD.38206

but checking doesn't catch it.

Which is because get_expr_operands () has an early out on
ADDR_EXPRs which are is_gimple_min_invariant.

In the specific LTO case it doesn't work because decl_address_invariant_p
doesn't return true as DECL_CONTEXT is different from current_function_decl.

We input a non-prevailing function body it seems, which isn't really supported
as we've already munged trees enough to confuse all sorts of predicates.  Why
do we need stmts at all here?  Isn't it enough to input the CFG?

Honza?

Reply via email to