From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5109 invoked by alias); 14 Jul 2009 21:58:35 -0000 Received: (qmail 5086 invoked by uid 48); 14 Jul 2009 21:58:24 -0000 Date: Tue, 14 Jul 2009 21:58:00 -0000 Message-ID: <20090714215824.5085.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug bootstrap/40753] [4.5 Regression] ICE in refs_may_alias_p_1 for libffi/src/powerpc/ffi.c In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-07/txt/msg01168.txt.bz2 ------- Comment #2 from rguenth at gcc dot gnu dot org 2009-07-14 21:58 ------- Huh, we end up with a FUNCTION_DECL here, from (gdb) call debug_rtx (mem) (mem/c/i:SI (const:SI (plus:SI (symbol_ref:SI ("ffi_closure_LINUX64") [flags 0x41] ) (const_int 12 [0xc]))) [0 ffi_closure_LINUX64+12 S4 A8]) that doesn't make much sense but is easy to fix. Index: alias.c =================================================================== --- alias.c (revision 149643) +++ alias.c (working copy) @@ -279,6 +279,11 @@ ao_ref_from_mem (ao_ref *ref, const_rtx && TREE_CODE (TREE_OPERAND (base, 0)) != SSA_NAME) return false; + /* The tree oracle doesn't like to have these. */ + if (TREE_CODE (base) == FUNCTION_DECL + || TREE_CODE (base) == LABEL_DECL) + return false; + /* If this is a reference based on a partitioned decl replace the base with an INDIRECT_REF of the pointer representative we created during stack slot partitioning. */ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40753