This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix find_reloads_address bug
- From: Ulrich Weigand <weigand at immd1 dot informatik dot uni-erlangen dot de>
- To: aj at suse dot de (Andreas Jaeger)
- Cc: weigand at immd1 dot informatik dot uni-erlangen dot de (Ulrich Weigand), gcc-patches at gcc dot gnu dot org
- Date: Thu, 23 Jan 2003 21:06:15 +0100 (MET)
- Subject: Re: [PATCH] Fix find_reloads_address bug
Andreas Jaeger wrote:
> On Thursday 23 January 2003 00:17, Ulrich Weigand wrote:
> > Hello,
> >
> > this fixes a long-standing bug in reload (find_reloads_address)
> > that appears to be very hard to trigger; however, I now have a
> > test case that hits the bug both in the 3.3 branch and the head.
>
> Can you share that testcase? We should add it to the testsuite,
Well, you know how it is with reload testcases :-(
I cannot make the original testcase public, and trying to
simplify the case makes the bug disappear.
However, I've managed to create an artifical case that triggers
the specific situation of the bug, using asm clobbers to create
extreme register pressure.
This case ICEs on s390 and s390x with gcc 3.2, 3.3, and 3.4:
void func (char *p);
void test (void)
{
char *p = alloca (4096);
long idx;
asm ("" : "=r" (idx) : : "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12");
func (p + idx + 1);
}
I guess I could add this as s390-only compile test to the test suite.
Bye,
Ulrich
--
Dr. Ulrich Weigand
weigand@informatik.uni-erlangen.de