Consider: void f(int) __attribute__((__noreturn__)); int d(const char *); char * j ();
char * foo (int x) { char *path = __null; try { path = j (); if (path != __null) if (d (path) != 0) f (127); f (127); } catch (...) { } return path; } With -O2, I get: Conflict path_1 and path_6 across an abnormal edge from BB5->BB6 test.cc: In function ‘char* foo(int)’: test.cc:6: internal compiler error: SSA corruption Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. The testcase is simplified a little bit from the one posted at: http://gcc.gnu.org/ml/gcc-regression/2005-04/msg00031.html -- Summary: ICE Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kazu at cs dot umass dot edu CC: dnovillo at redhat dot com,gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20920