7594 – [3.3 regression] [m68k] ICE on legal code associated with simplify-rtx (original) (raw)
| following testcase triggers ICE: #### compile with -O0 to trigger ICE #### extern void (**table)(void); typedef unsigned short uw16; typedef unsigned short uw16; typedef unsigned int gshort; register uw16 *pc asm("%a4"); register gshort code asm("%d6"); void QMExecuteLoop(uw16 *oldPC) { table[code=(*(uw16*)(pc++))](); } ######################################## Problem is caused by gen_lowpart() returning a REG instead of an SUBREG expression in certain cases. This is caused by some code in simplify_subreg around lines 2644 in simplify-rtx.c Release: 3.2 20020806 (prerelease) and 3.1.1 Environment: native and crosscompiled configured with: ../gcc-3.2-cvs/configure --enable-languages=c --disable-checking --with-newlib --without-headers --target=m68k-linux : (reconfigured) ../gcc-3.2-cvs/configure --enable-languages=c --disable-checking --with-newlib --without-headers --target=m68k-linux Fix: Workaround for m68k-linux is to disable the code responsible for this simplification: --- gcc-3.2-cvs/gcc/simplify-rtx.c.rz Wed Mar 6 23:43:21 2002 +++ gcc-3.2-cvs/gcc/simplify-rtx.c Wed Aug 14 13:09:30 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 Comment 3 Giovanni Bajo 2003-05-10 07:24:36 UTC State-Changed-From-To: open->analyzed State-Changed-Why: Confirmed to be still present in the 3.3 branch From: Richard Zidlicky <rz@linux-m68k.org> To: Dara Hazeghi <dhazeghi@yahoo.com> Cc: gcc-gnats@gcc.gnu.org, law@redhat.com Subject: Re: middle-end/7594: [m68k] ICE on legal code associated with simplify-rtx Date: Sun, 11 May 2003 22:37:46 +0200 On Fri, May 09, 2003 at 04:34:25PM -0700, Dara Hazeghi wrote: > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit- > trail&database=gcc&pr=7594 Hi, > I can confirm that this bug is still present on 3.2 and 3.3 branch but > does not occur on mainline (20030508) gcc cross compiler. Jeff Law, > you're listed as m68k maintainer. Would there be any interest in fixing > this in the 3.3 branch after 3.3.0? Thanks, thanks for looking at it. The bug is pretty severe, not only did it break glibc but even medium sized packages won´t compile without a fix. I would certainly be very interested to know if my patch is correct. Richard Comment 5 Dara Hazeghi 2003-06-04 01:01:12 UTC Richard, sorry to see there's been no progress on this. The patch you referenced is just to disable the transformation, correct? Thanks, Dara | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |