1/* { dg-do compile } */
2/* { dg-options "-O2" } */
3
4/* This was causing a failure in the out of SSA pass because VRP was
5   trying to insert assertions for SSA names that flow through
6   abnormal edges.  */
7void f(int) __attribute__((__noreturn__));
8int d(const char *);
9char * j ();
10
11char *
12foo (int x)
13{
14  char *path = __null;
15  try
16    {
17      path = j ();
18      if (path != __null)
19        if (d (path) != 0)
20          f (127);
21      f (127);
22    }
23  catch (...) { }
24
25  return path;
26}
27