// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - -fcxx-exceptions -fexceptions -std=c++11 | FileCheck %s

// rdar://11904428
//   Ensure that we call __cxa_begin_catch before calling
//   std::terminate in a noexcept function.
namespace test0 {
  void foo();

  struct A {
    A();
    ~A();
  };

  void test() noexcept {
    A a;
    foo();
  }
}

// CHECK-LABEL:    define{{.*}} void @_ZN5test04testEv()
//   This goes to the terminate lpad.
// CHECK:      invoke void @_ZN5test01AC1Ev(
// CHECK-NEXT:   unwind label %[[TERMINATE_LPAD:.*]]
//   This also goes to the terminate lpad (no cleanups!).
// CHECK:      invoke void @_ZN5test03fooEv()
// CHECK-NEXT:   unwind label %[[TERMINATE_LPAD]]
//   Destructors don't throw by default in C++11.
// CHECK:      call void @_ZN5test01AD1Ev(
//   Cleanup lpad.
// CHECK: [[TERMINATE_LPAD]]:
// CHECK-NEXT: [[T0:%.*]] = landingpad
// CHECK-NEXT:   catch ptr null
// CHECK-NEXT: [[T1:%.*]] = extractvalue { ptr, i32 } [[T0]], 0
// CHECK-NEXT: call void @__clang_call_terminate(ptr [[T1]])
// CHECK-NEXT: unreachable

// CHECK-LABEL:  define linkonce_odr hidden void @__clang_call_terminate(
// CHECK:      call ptr @__cxa_begin_catch(
// CHECK-NEXT: call void @_ZSt9terminatev()
// CHECK-NEXT: unreachable
