This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/21648] New: ICE on code with nested loops
- From: "jconner at apple dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 May 2005 18:13:46 -0000
- Subject: [Bug middle-end/21648] New: ICE on code with nested loops
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Compiling the following code with -O2 causes an ICE (verified on both i686-pc-cygwin and arm-none-
elf):
struct mad_bitptr {
unsigned char const *byte;
};
struct mad_stream {
struct mad_bitptr ptr;
};
struct channel {
unsigned short part2_3_length;
};
struct granule {
struct channel ch[2];
};
struct sideinfo {
struct granule gr[2];
};
static
void III_sideinfo(struct mad_bitptr *ptr, struct sideinfo *si)
{
unsigned int ngr, gr, ch;
unsigned int nch;
for (gr = 0; gr < ngr; ++gr) {
struct granule *granule = &si->gr[gr];
for (ch = 0; ch < nch; ++ch) {
struct channel *channel = &granule->ch[ch];
channel->part2_3_length = 1;
}
}
}
void mad_layer_III(struct mad_stream *stream)
{
struct sideinfo si;
III_sideinfo(&stream->ptr, &si);
}
This happens in the mainline, and appears to be the result of one of the patches applied 2005-05-17,
as it doesn't happen in a snapshot from the previous day.
A segfault is occurring when the function is_gimple_val (from tree-gimple.c) passes a NULL value to
is_gimple_reg_type().
--
Summary: ICE on code with nested loops
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: critical
Priority: P2
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jconner at apple dot com
CC: gcc-bugs at gcc dot gnu dot org
GCC host triplet: i686-pc-cygwin
GCC target triplet: i686-pc-cygwin
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21648