This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/34934] -O1 crash compile *** glibc detected *** /usr/lib/gcc/i486-linux-gnu/4.2.3/cc1: double free or corruption (!prev)
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 24 Jan 2008 10:26:56 -0000
- Subject: [Bug middle-end/34934] -O1 crash compile *** glibc detected *** /usr/lib/gcc/i486-linux-gnu/4.2.3/cc1: double free or corruption (!prev)
- References: <bug-34934-15677@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #9 from rguenth at gcc dot gnu dot org 2008-01-24 10:26 -------
Confirmed. With the gcc_assert patch on x86_64 it ICEs with -O -m32 with
the following reduced testcase:
typedef struct fdstruct {
int entry[(1024 - 10) + 2];
int last_entry;
} fdlist;
void vsendto_one(long*, __builtin_va_list);
void sendto_realops_lev(long *umode, fdlist *l, int lev, ...)
{
int i, fd;
__builtin_va_list vl;
__builtin_va_start(vl, lev);
for (fd = l->entry[i = 1]; i <= l->last_entry; fd = l->entry[++i])
{
switch (lev) {
case 1:
if (!(*umode & 0x00000020))
continue;
case 3:
if (!(*umode & 0x00000080))
continue;
case 9:
if (!(*umode & 0x04000000))
continue;
case 4:
if (!(*umode & 0x00000200))
continue;
case 8:
if (!(*umode & 0x00100000))
continue;
case 6:
if (!(*umode & 0x00000100))
continue;
case 7:
if (!(*umode & 0x00040000))
continue;
case 10:
if (!(*umode & 0x00000020)
&& ((*umode & 0x00008000)
|| (*umode & 0x08000000)))
continue;
}
vsendto_one(umode, vl);
}
}
Obviously for a densely connected CFG there can be as much as n_basic_blocks^2
edges.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu dot
| |org, rguenth at gcc dot gnu
| |dot org
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Keywords| |ice-on-valid-code
Last reconfirmed|0000-00-00 00:00:00 |2008-01-24 10:26:55
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34934