From 3d1dcd9bfdb15c49ee34d576a065079ac5c4d29f Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Fri, 17 Sep 2010 15:54:40 +0000 Subject: Vendor import of clang r114020 (from the release_28 branch): http://llvm.org/svn/llvm-project/cfe/branches/release_28@114020 Approved by: rpaulo (mentor) --- test/CodeGenCXX/rtti-linkage.cpp | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'test/CodeGenCXX/rtti-linkage.cpp') diff --git a/test/CodeGenCXX/rtti-linkage.cpp b/test/CodeGenCXX/rtti-linkage.cpp index f8c1167b53db..efa336dda4ec 100644 --- a/test/CodeGenCXX/rtti-linkage.cpp +++ b/test/CodeGenCXX/rtti-linkage.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 %s -I%S -triple=x86_64-apple-darwin10 -emit-llvm -o - | sort | FileCheck %s +// RUN: %clang_cc1 %s -I%S -triple=x86_64-apple-darwin10 -fhidden-weak-vtables -emit-llvm -o - | sort | FileCheck %s // FIXME: Fails on Win32, dunno why. // XFAIL: win32 @@ -11,13 +11,16 @@ -// CHECK: _ZTI1A = weak_odr constant +// CHECK: _ZTI1A = weak_odr hidden constant // CHECK: _ZTI1B = constant // CHECK: _ZTI1C = internal constant -// CHECK: _ZTIA10_i = weak_odr constant +// CHECK: _ZTI1TILj0EE = weak_odr constant +// CHECK: _ZTI1TILj1EE = weak_odr constant +// CHECK: _ZTI1TILj2EE = external constant +// CHECK: _ZTIA10_i = weak_odr hidden constant // CHECK: _ZTIFN12_GLOBAL__N_11DEvE = internal constant // CHECK: _ZTIFvN12_GLOBAL__N_11DEE = internal constant -// CHECK: _ZTIFvvE = weak_odr +// CHECK: _ZTIFvvE = weak_odr hidden constant // CHECK: _ZTIM1A1C = internal constant // CHECK: _ZTIM1AP1C = internal constant // CHECK: _ZTIM1CPS_ = internal constant @@ -26,7 +29,7 @@ // CHECK: _ZTIN12_GLOBAL__N_11DE = internal constant // CHECK: _ZTIN12_GLOBAL__N_11EE = internal constant // CHECK: _ZTIP1C = internal constant -// CHECK: _ZTIPFvvE = weak_odr constant +// CHECK: _ZTIPFvvE = weak_odr hidden constant // CHECK: _ZTIPM1Ci = internal constant // CHECK: _ZTIPN12_GLOBAL__N_11DE = internal constant // CHECK: _ZTIPP1C = internal constant @@ -118,3 +121,14 @@ namespace Arrays { return typeid(A::a); } } + +template class T { + virtual void anchor() {} +}; +template class T<1>; +template <> class T<2> { virtual void anchor(); }; +void t3() { + (void) typeid(T<0>); + (void) typeid(T<1>); + (void) typeid(T<2>); +} -- cgit v1.3