This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Simple code produces ICE in gcc-3.2.1
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: Steve Kargl <sgk at troutmask dot apl dot washington dot edu>
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 23 Oct 2002 22:15:22 -0700
- Subject: Re: Simple code produces ICE in gcc-3.2.1
This also happens on a i686-pc-linux-gnu gcc 3.3,
but does not happen on a i686-pc-linux-gnu gcc 3.1.1
so it is a regression report it to the bug system, please.
3.3's version:
gcc version 3.3 20021023 (experimental)
Thanks,
Andrew Pinski
On Wednesday, Oct 23, 2002, at 22:01 US/Pacific, Steve Kargl wrote:
The code fragment below causes an ICE if
k = 1. No ICE occurs if k = 0 or the
optimization level is -O0 or -O1.
troutmask:kargl[205] gcc -O2 -c c.c
c.c: In function `ice':
c.c:11: unrecognizable insn:
(insn 179 170 188 (set (reg:SI 85)
(ashift:SI (reg/v:SI 62)
(const_int 1 [0x1]))) -1 (nil)
(nil))
c.c:11: Internal compiler error in extract_insn, at recog.c:2150
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
kargl[203] gcc -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.2.1 [FreeBSD] 20021009 (prerelease)
--
Steve
void ice(int m, int n, double *f) {
int i, j, k;
/* k = 0; No ICE */
k = 1; /* ICE */
for (j = 0; j < n; j++) {
for (i = k; i < m; i++) {
f[i] = (double) (i * j);
f[i + j] = (double) ((i + 1) * j);
}
}
}