------- 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