summaryrefslogtreecommitdiffstats
path: root/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
commit17fa6f971c1912c77aa10bdac4b7991b5e1646e2 (patch)
tree8a56eccc22f645de064ef2759becdc63f2ef416c /test/CodeGenCXX/rtti-linkage.cpp
parentd20254f2875d0004c57ee766f258dbcee29f4841 (diff)
Correcly handle pointers to member pointer types where the class or the pointee is incomplete.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91804 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/rtti-linkage.cpp')
-rw-r--r--test/CodeGenCXX/rtti-linkage.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/CodeGenCXX/rtti-linkage.cpp b/test/CodeGenCXX/rtti-linkage.cpp
index 22e859d69c..5b4a8e42dd 100644
--- a/test/CodeGenCXX/rtti-linkage.cpp
+++ b/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::*);
}