public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* c/7872: ICE on legal code, regression from 3.0 and 2.9*
@ 2002-09-09 14:36 Richard Zidlicky
0 siblings, 0 replies; 3+ messages in thread
From: Richard Zidlicky @ 2002-09-09 14:36 UTC (permalink / raw)
To: gcc-gnats
>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 <URL:http://www.gnu.org/software/gcc/bugs.html> 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:
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: c/7872: ICE on legal code, regression from 3.0 and 2.9*
@ 2002-12-16 12:46 Wolfgang Bangerth
0 siblings, 0 replies; 3+ messages in thread
From: Wolfgang Bangerth @ 2002-12-16 12:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c/7872; it has been noted by GNATS.
From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: Richard Zidlicky <rz@linux-m68k.org>
Cc: bangerth@dealii.org, <gcc-bugs@gcc.gnu.org>, <gcc-gnats@gcc.gnu.org>
Subject: Re: c/7872: ICE on legal code, regression from 3.0 and 2.9*
Date: Mon, 16 Dec 2002 14:41:09 -0600 (CST)
On Sat, 14 Dec 2002, Richard Zidlicky wrote:
> On Wed, Nov 27, 2002 at 03:45:46PM -0000, bangerth@dealii.org wrote:
> > Synopsis: ICE on legal code, regression from 3.0 and 2.9*
> >
> > State-Changed-From-To: open->feedback
> > State-Changed-By: bangerth
> > State-Changed-When: Wed Nov 27 07:45:44 2002
> > State-Changed-Why:
> > Richard, same here: I don't have an m68k so cannot check your problem.
> you can, the bugreport should have enough information to configure the
> cross-compiler and all the necessary input to test the problem on any
> architecture.
I've never done it, and would not know whether the results I get are right
or wrong. So I prefer to leave things like that to people who are more
familiar with that than me, and rather concentrate on further searching
the database for reports.
> > What happened to the patch you appended? I does not seem
> > to have been applied...
>
> Unfortunately untill now I have seen absolutely no response to this
> bugreport, thanks for looking at it.
>
> Quite possible my solution is not the correct or best one, I noticed
> the problem would also go away if m68k had CLASS_CANNOT_CHANGE_MODE
> defined. However the gcc docs describe this as something that should
> affect floating point only so I am not sure about this.
Try to find the maintainers of the code and ask them for their opinion,
possibly in private mail. Maybe that helps, I see too many bugs slipping
through the cracks. Otherwise you may also send the patch to the list, and
put a "Unreviewed patch" in the subject to indicate that this is a
long-pending matter.
Regards
Wolfgang
-------------------------------------------------------------------------
Wolfgang Bangerth email: bangerth@ticam.utexas.edu
www: http://www.ticam.utexas.edu/~bangerth
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: c/7872: ICE on legal code, regression from 3.0 and 2.9*
@ 2002-12-14 12:56 Richard Zidlicky
0 siblings, 0 replies; 3+ messages in thread
From: Richard Zidlicky @ 2002-12-14 12:56 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c/7872; it has been noted by GNATS.
From: Richard Zidlicky <rz@linux-m68k.org>
To: bangerth@dealii.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: c/7872: ICE on legal code, regression from 3.0 and 2.9*
Date: Sat, 14 Dec 2002 20:38:21 +0100
On Wed, Nov 27, 2002 at 03:45:46PM -0000, bangerth@dealii.org wrote:
> Synopsis: ICE on legal code, regression from 3.0 and 2.9*
>
> State-Changed-From-To: open->feedback
> State-Changed-By: bangerth
> State-Changed-When: Wed Nov 27 07:45:44 2002
> State-Changed-Why:
> Richard, same here: I don't have an m68k so cannot check your problem.
you can, the bugreport should have enough information to configure the
cross-compiler and all the necessary input to test the problem on any
architecture.
> What happened to the patch you appended? I does not seem
> to have been applied...
Unfortunately untill now I have seen absolutely no response to this
bugreport, thanks for looking at it.
Quite possible my solution is not the correct or best one, I noticed
the problem would also go away if m68k had CLASS_CANNOT_CHANGE_MODE
defined. However the gcc docs describe this as something that should
affect floating point only so I am not sure about this.
Richard
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2002-12-16 20:46 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-09 14:36 c/7872: ICE on legal code, regression from 3.0 and 2.9* Richard Zidlicky
2002-12-14 12:56 Richard Zidlicky
2002-12-16 12:46 Wolfgang Bangerth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).