1 // RUN: %clang_cc1 -std=c++11 -triple %itanium_abi_triple -fexceptions -fcxx-exceptions -emit-llvm -o - %s | FileCheck %s
29 // CHECK: invoke {{.*}} @_ZN1ED1Ev
30 // CHECK: invoke {{.*}} @_ZN1CD1Ev
31 // CHECK: call {{.*}} @_ZN1AD1Ev
38 F::~F() noexcept(false) {}
78 ~TD() noexcept(false);
91 // CHECK: invoke {{.*}} @_ZN2TEIiED1Ev
92 // CHECK: invoke {{.*}} @_ZN2TCIiED1Ev
93 // CHECK: call {{.*}} @_ZN2TAIiED1Ev
101 template <typename T
>
102 TF
<T
>::~TF() noexcept(false) {}
104 template <typename T
>
109 template <typename T
>
112 template <typename T
>
117 template <typename T
>
125 // CHECK: define linkonce_odr {{.*}} @_ZN2THIiED1Ev
127 // CHECK: __cxa_call_unexpected
130 { virtual ~VX() {} };
133 { virtual ~VY() {} };
137 { virtual ~TVY() {} };
146 { virtual ~VB() {} };
150 { virtual ~TVB() {} };
157 template <typename T
>
167 // CHECK-NOT: define linkonce_odr {{.*}} @_ZN2SwI1BED1Ev({{.*}} #
168 // CHECK: define linkonce_odr {{.*}} @_ZN2SwI1BED1Ev({{.*}}
170 // CHECK: __cxa_call_unexpected
171 // CHECK: define linkonce_odr {{.*}} @_ZN2SwIiED1Ev({{.*}} [[ATTRGRP:#[0-9]+]]
173 template <typename T
>
176 template <typename T
>
179 // CHECK: attributes [[ATTRGRP]] = { noinline nounwind{{.*}} }