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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

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

--- Comment #5 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-01-02 
19:14:22 UTC ---
The problem is that CCP turns:

  pr47056___alignment.46_308 = pr47056___alignment;
  D.2264_309 = MEM[(struct  *)pr47056___alignment.46_308].D.227;

into

  D.2264_309 = MEM[(struct  *)pr47056___alignment].D.227;

(pr47056___alignment being a function) and while walk_stmt_load_store_addr_ops
recognizes the former as an address-of pattern (the & is implicit for
functions), it doesn't for the latter (unlike for TARGET_MEM_REF) so
build_cgraph_edges is fooled and missed the reference to pr47056___alignment.

Richard, I presume that the latter form must be deemed invalid GIMPLE?

Reply via email to