From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26511 invoked by alias); 2 Apr 2010 12:09:29 -0000 Received: (qmail 25205 invoked by uid 48); 2 Apr 2010 12:09:08 -0000 Date: Fri, 02 Apr 2010 12:09:00 -0000 Message-ID: <20100402120908.25204.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/42509] [4.5 Regression] bootstrap failure in stage3 (integer overflow in preprocessor expression) 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: 2010-04/txt/msg00198.txt.bz2 ------- Comment #20 from rguenth at gcc dot gnu dot org 2010-04-02 12:09 ------- The obvious bug is that nonoverlapping_memrefs_p thinks that a NULL MEM_OFFSET is equal to MEM_OFFSET == const0_rtx. It is not, it's "unknown offset". The following should fix that. Index: gcc/alias.c =================================================================== --- gcc/alias.c (revision 157942) +++ gcc/alias.c (working copy) @@ -2268,6 +2268,10 @@ nonoverlapping_memrefs_p (const_rtx x, c : MEM_SIZE (rtly) ? INTVAL (MEM_SIZE (rtly)) : -1); + /* If the offset is unknown we cannot determine anything. */ + if (!moffsetx || !moffsety) + return 0; + /* If we have an offset for either memref, it can update the values computed above. */ if (moffsetx) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42509