diff options
author | Anders Carlsson <andersca@mac.com> | 2009-12-20 23:37:55 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-12-20 23:37:55 +0000 |
commit | 18e6ee1b20727e86f396f39e7bb3e83f58a90c1c (patch) | |
tree | 4b45012aeada25c1dd77df86788f20c0979510db /clang/test/CodeGenCXX/rtti-linkage.cpp | |
parent | 518e37071916d433aea03a8bd33087fd68abd7e5 (diff) | |
download | bcm5719-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.cpp | 19 |
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::*); } |