llvm-for-llvmta/tools/clang/test/CodeGenCXX/exception-spec-decay.cpp

34 lines
568 B
C++

// RUN: %clang_cc1 -fcxx-exceptions -fexceptions %s -triple=i686-unknown-linux -emit-llvm -o - | FileCheck %s
typedef int Array[10];
void foo() throw (Array) {
throw 0;
// CHECK: landingpad
// CHECK-NEXT: filter {{.*}} @_ZTIPi
}
struct S {
void foo() throw (S[10]) {
throw 0;
}
};
template <typename T>
struct S2 {
void foo() throw (T) {
throw 0;
}
};
int main() {
S s;
s.foo();
// CHECK: landingpad
// CHECK-NEXT: filter {{.*}} @_ZTIP1S
S2 <int[10]> s2;
s2.foo();
// CHECK: landingpad
// CHECK-NEXT: filter {{.*}} @_ZTIPi
}