// APPLE LOCAL file mainline 4950109
// PR c++/24996
// Bug: the cleanup for the A temporary was confusing the gimplifier
// because of the TRY_CATCH_EXPR for the exception object.

struct A { A(int); ~A(); };
struct B { B(A); ~B(); };
void foo(bool b)
{
  throw b ? B(1) : B(1);
}
