This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug ada/47056] [4.6 Regression] 10 Ada ACATS tests fail to link with undefined reference on ia64-linux
- From: "ebotcazou at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 2 Jan 2011 19:14:34 +0000
- Subject: [Bug ada/47056] [4.6 Regression] 10 Ada ACATS tests fail to link with undefined reference on ia64-linux
- Auto-submitted: auto-generated
- References: <bug-47056-4@http.gcc.gnu.org/bugzilla/>
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?