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

Reply via email to