llvm-project/clang/test/CodeGenCXX/exception-spec-decay.cpp
Richard Smith 8606d75265 PR14388: An array or function type in an exception specification should be
decayed to a pointer type. Patch by WenHan Gu, with a little tweaking and
additional testcases by me.

llvm-svn: 168822
2012-11-28 22:33:28 +00:00

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
}