summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/rtti-linkage.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-12-20 23:37:55 +0000
committerAnders Carlsson <andersca@mac.com>2009-12-20 23:37:55 +0000
commit18e6ee1b20727e86f396f39e7bb3e83f58a90c1c (patch)
tree4b45012aeada25c1dd77df86788f20c0979510db /clang/test/CodeGenCXX/rtti-linkage.cpp
parent518e37071916d433aea03a8bd33087fd68abd7e5 (diff)
downloadbcm5719-llvm-18e6ee1b20727e86f396f39e7bb3e83f58a90c1c.tar.gz
bcm5719-llvm-18e6ee1b20727e86f396f39e7bb3e83f58a90c1c.zip
Correcly handle pointers to member pointer types where the class or the pointee is incomplete.
llvm-svn: 91804
Diffstat (limited to 'clang/test/CodeGenCXX/rtti-linkage.cpp')
-rw-r--r--clang/test/CodeGenCXX/rtti-linkage.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/rtti-linkage.cpp b/clang/test/CodeGenCXX/rtti-linkage.cpp
index 22e859d69c9..5b4a8e42dd6 100644
--- a/clang/test/CodeGenCXX/rtti-linkage.cpp
+++ b/clang/test/CodeGenCXX/rtti-linkage.cpp
@@ -9,6 +9,19 @@
// CHECK: _ZTIP1C = internal constant
// CHECK: _ZTSPP1C = internal constant
// CHECK: _ZTIPP1C = internal constant
+// CHECK: _ZTSM1Ci = internal constant
+// CHECK: _ZTIM1Ci = internal constant
+// CHECK: _ZTSPM1Ci = internal constant
+// CHECK: _ZTIPM1Ci = internal constant
+// CHECK: _ZTSM1CS_ = internal constant
+// CHECK: _ZTIM1CS_ = internal constant
+// CHECK: _ZTSM1CPS_ = internal constant
+// CHECK: _ZTIM1CPS_ = internal constant
+// CHECK: _ZTSM1A1C = internal constant
+// CHECK: _ZTIM1A1C = internal constant
+// CHECK: _ZTSM1AP1C = internal constant
+// CHECK: _ZTIM1AP1C = internal constant
+
// A has no key function, so its RTTI data should be weak_odr.
struct A { };
@@ -26,6 +39,12 @@ struct C;
void f() {
(void)typeid(C*);
(void)typeid(C**);
+ (void)typeid(int C::*);
+ (void)typeid(int C::**);
+ (void)typeid(C C::*);
+ (void)typeid(C *C::*);
+ (void)typeid(C A::*);
+ (void)typeid(C* A::*);
}
OpenPOWER on IntegriCloud