This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/19698] [3.3/3.4/4.0 regression] Infinite loop in update_life_info
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 30 Jan 2005 23:07:40 -0000
- Subject: [Bug middle-end/19698] [3.3/3.4/4.0 regression] Infinite loop in update_life_info
- References: <20050129191719.19698.schwab@suse.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-30 23:07 -------
(In reply to comment #8)
> (In reply to comment #7)
> > Triggered by this change:
> I think that only added the pure attribute on __builtin_cos.
> You might want to try this testcase which shows the problem without a builtin:
Obvoiusly I mean the following (which is comment #5 changing __builtin_cos to a function with the
attribute pure added):
loat f(float) __attribute__((__pure__));
void FFT(int NumSamples, float *RealOut, float ar1)
{
int i5, n, j, i, BlockEnd, BlockSize;
float pretmp2, cm1;
i = 0;
do {
RealOut[i++] = ar1 ? ar1 : 0.0;
} while (NumSamples <= i);
BlockEnd = 1;
BlockSize = 2;
do {
cm1 = f (-1.0e+0);
j = 0;
i5 = 0;
goto L10;
while (1) {
do {
RealOut[j++] = pretmp2;
} while (BlockEnd > n++);
do {
j = i5 += BlockSize;
if (NumSamples <= i5)
{
BlockEnd = BlockSize;
BlockSize <<= 1;
goto L23432;
}
L10:;
} while (BlockEnd <= 0);
pretmp2 = cm1 * ar1;
n = 0;
}
L23432:;
} while (NumSamples >= BlockSize);
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19698