summaryrefslogtreecommitdiffstats
path: root/test/CodeGenCXX/typeid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGenCXX/typeid.cpp')
-rw-r--r--test/CodeGenCXX/typeid.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/CodeGenCXX/typeid.cpp b/test/CodeGenCXX/typeid.cpp
new file mode 100644
index 0000000..1af9670
--- /dev/null
+++ b/test/CodeGenCXX/typeid.cpp
@@ -0,0 +1,22 @@
+// RUN: %clang_cc1 -I%S %s -triple x86_64-apple-darwin10 -emit-llvm -fcxx-exceptions -fexceptions -o - | FileCheck %s
+#include <typeinfo>
+
+namespace Test1 {
+
+// PR7400
+struct A { virtual void f(); };
+
+// CHECK: define i8* @_ZN5Test11fEv
+const char *f() {
+ try {
+ // CHECK: br i1
+ // CHECK: invoke void @__cxa_bad_typeid() noreturn
+ return typeid(*static_cast<A *>(0)).name();
+ } catch (...) {
+ // CHECK: call i8* @llvm.eh.exception
+ }
+
+ return 0;
+}
+
+}
OpenPOWER on IntegriCloud