summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/tree-ssa/pr20920.C
blob: 02edd282773c9ab74737057c5829f5284aaca1f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* { dg-do compile } */
/* { dg-options "-O2" } */

/* This was causing a failure in the out of SSA pass because VRP was
   trying to insert assertions for SSA names that flow through
   abnormal edges.  */
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;
}