// PR c++/49165
// { dg-do run }

extern "C" void abort ();

int
foo (bool x, int y)
{
  if (y < 10 && (x ? true : throw 1))
    y++;
  if (y > 20 || (x ? true : throw 2))
    y++;
  return y;
}

int
main ()
{
  if (foo (true, 0) != 2
      || foo (true, 10) != 11
      || foo (false, 30) != 31)
    abort ();
  try
    {
      foo (false, 0);
      abort ();
    }
  catch (int i)
    {
      if (i != 1)
	abort ();
    }
  try
    {
      foo (false, 10);
      abort ();
    }
  catch (int i)
    {
      if (i != 2)
	abort ();
    }
}
