From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3805 invoked by alias); 9 Sep 2002 21:36:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 3777 invoked by uid 71); 9 Sep 2002 21:36:00 -0000 Resent-Date: 9 Sep 2002 21:36:00 -0000 Resent-Message-ID: <20020909213600.3773.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, Richard Zidlicky Received: (qmail 3325 invoked from network); 9 Sep 2002 21:34:28 -0000 Received: from unknown (HELO faui02.informatik.uni-erlangen.de) (131.188.30.102) by sources.redhat.com with SMTP; 9 Sep 2002 21:34:28 -0000 Received: from rz.de (root@faui02g.informatik.uni-erlangen.de [131.188.30.156]) by faui02.informatik.uni-erlangen.de (8.12.6/8.12.6) with ESMTP id g89LYDix015998 for ; Mon, 9 Sep 2002 23:34:25 +0200 (MEST) Received: (from rz@localhost) by rz.de (8.8.8/8.8.8) id XAA05344; Mon, 9 Sep 2002 23:10:25 +0200 Message-Id: <200209092110.XAA05344@rz.de> Date: Mon, 09 Sep 2002 14:36:00 -0000 From: Richard Zidlicky To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: 3.113 Subject: c/7872: ICE on legal code, regression from 3.0 and 2.9* X-SW-Source: 2002-09/txt/msg00160.txt.bz2 List-Id: >Number: 7872 >Category: c >Synopsis: ICE on legal code, regression from 3.0 and 2.9* >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Mon Sep 09 14:36:00 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Richard Zidlicky >Release: 3.2 >Organization: >Environment: native and crosscompiled target: m68k-unknown-linux-gnu configured with: ../gcc-3.2/configure --enable-languages=c --disable-checking --with-newlib --without-headers --target=m68k-linux >Description: /data/rz/build-m68k-3.2-release/gcc/cc1 -O0 -m68020-60 x3.i QMExecuteLoop x3.i: In function `QMExecuteLoop': x3.i:15: internal error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See for instructions. rz@rz:/home/rz/test > /data/rz/build-m68k-3.2-release/gcc/cc1 -O1 -m68020-60 x3.i QMExecuteLoop >How-To-Repeat: extern void (**table)(void); typedef unsigned short uw16; typedef unsigned int gshort; void ExceptionProcessing(void); short extraFlag; register uw16 *pc asm("%a4"); register gshort code asm("%d6"); register int nInst asm("%d7"); void QMExecuteLoop(uw16 *oldPC) { table[code=(*(uw16*)(pc++))](); } >Fix: The cause of the problem is that gen_lowpart() returns a (REG ...) instead of a (SUBREG ...) in some obscure cases. This patch fixes the problem: --- gcc-3.2-cvs/gcc/simplify-rtx.c.rz Wed Mar 6 17:43:21 2002 +++ gcc-3.2-cvs/gcc/simplify-rtx.c Sat Aug 24 23:06:34 2002 @@ -2618,6 +2618,7 @@ suppress this simplification. If the hard register is the stack, frame, or argument pointer, leave this as a SUBREG. */ +#if 0 if (REG_P (op) && (! REG_FUNCTION_VALUE_P (op) || ! rtx_equal_function_value_matters) @@ -2662,6 +2663,7 @@ return x; } } +#endif /* If we have a SUBREG of a register that we are replacing and we are replacing it with a MEM, make a new MEM and try replacing the >Release-Note: >Audit-Trail: >Unformatted: