summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-08-05 20:39:18 +0000
committerJohn McCall <rjmccall@apple.com>2010-08-05 20:39:18 +0000
commit5513fce96b884195bbdb5c12e428490666514cdc (patch)
treeeb99d485884af20b43e9add1ed674ea89c2eb0a6 /clang/test/CodeGenCXX
parentfa5d2415b64cd5f6ef942ec6d06dea2a67185c73 (diff)
downloadbcm5719-llvm-5513fce96b884195bbdb5c12e428490666514cdc.tar.gz
bcm5719-llvm-5513fce96b884195bbdb5c12e428490666514cdc.zip
It turns out that linkers (at least, the Darwin linker) don't necessarily
do the right thing with mixed-visibility symbols, so disable the visibility optimization where that's possible, i.e. with template classes (since it's possible that an arbitrary template might be subject to an explicit instantiation elsewhere). 447.dealII actually does this. I've put the code under an option that's currently not hooked up to anything. llvm-svn: 110374
Diffstat (limited to 'clang/test/CodeGenCXX')
-rw-r--r--clang/test/CodeGenCXX/mangle-subst-std.cpp6
-rw-r--r--clang/test/CodeGenCXX/rtti-linkage.cpp2
-rw-r--r--clang/test/CodeGenCXX/virt-template-vtable.cpp2
-rw-r--r--clang/test/CodeGenCXX/vtable-linkage.cpp12
4 files changed, 11 insertions, 11 deletions
diff --git a/clang/test/CodeGenCXX/mangle-subst-std.cpp b/clang/test/CodeGenCXX/mangle-subst-std.cpp
index b08b12c91eb..9c1e978294c 100644
--- a/clang/test/CodeGenCXX/mangle-subst-std.cpp
+++ b/clang/test/CodeGenCXX/mangle-subst-std.cpp
@@ -3,13 +3,13 @@
// Check mangling of Vtables, VTTs, and construction vtables that
// involve standard substitutions.
-// CHECK: @_ZTVSd = weak_odr hidden constant
+// CHECK: @_ZTVSd = weak_odr constant
// CHECK: @_ZTCSd0_Si = internal constant
// CHECK: @_ZTCSd16_So = internal constant
// CHECK: @_ZTTSd = weak_odr constant
-// CHECK: @_ZTVSo = weak_odr hidden constant
+// CHECK: @_ZTVSo = weak_odr constant
// CHECK: @_ZTTSo = weak_odr constant
-// CHECK: @_ZTVSi = weak_odr hidden constant
+// CHECK: @_ZTVSi = weak_odr constant
// CHECK: @_ZTTSi = weak_odr constant
namespace std {
struct A { A(); };
diff --git a/clang/test/CodeGenCXX/rtti-linkage.cpp b/clang/test/CodeGenCXX/rtti-linkage.cpp
index a8b62f7bc3b..49d1c1f5f31 100644
--- a/clang/test/CodeGenCXX/rtti-linkage.cpp
+++ b/clang/test/CodeGenCXX/rtti-linkage.cpp
@@ -14,7 +14,7 @@
// CHECK: _ZTI1A = weak_odr hidden constant
// CHECK: _ZTI1B = constant
// CHECK: _ZTI1C = internal constant
-// CHECK: _ZTI1TILj0EE = weak_odr hidden constant
+// CHECK: _ZTI1TILj0EE = weak_odr constant
// CHECK: _ZTI1TILj1EE = weak_odr constant
// CHECK: _ZTI1TILj2EE = external constant
// CHECK: _ZTIA10_i = weak_odr hidden constant
diff --git a/clang/test/CodeGenCXX/virt-template-vtable.cpp b/clang/test/CodeGenCXX/virt-template-vtable.cpp
index ab406fd9982..b9558283127 100644
--- a/clang/test/CodeGenCXX/virt-template-vtable.cpp
+++ b/clang/test/CodeGenCXX/virt-template-vtable.cpp
@@ -19,4 +19,4 @@ template class A<short>;
// CHECK: @_ZTV1B = weak_odr hidden constant
// CHECK: @_ZTV1AIlE = weak_odr constant
// CHECK: @_ZTV1AIsE = weak_odr constant
-// CHECK: @_ZTV1AIiE = weak_odr hidden constant
+// CHECK: @_ZTV1AIiE = weak_odr constant
diff --git a/clang/test/CodeGenCXX/vtable-linkage.cpp b/clang/test/CodeGenCXX/vtable-linkage.cpp
index 67980edf7be..6c1301bee1e 100644
--- a/clang/test/CodeGenCXX/vtable-linkage.cpp
+++ b/clang/test/CodeGenCXX/vtable-linkage.cpp
@@ -137,10 +137,10 @@ void use_F() {
// CHECK-7: @_ZTI1EIlE = weak_odr constant
// F<long> is an implicit template instantiation with no key function,
-// so its vtable should have weak_odr linkage and hidden visibility.
-// CHECK-8: @_ZTV1FIlE = weak_odr hidden constant
+// so its vtable should have weak_odr linkage.
+// CHECK-8: @_ZTV1FIlE = weak_odr constant
// CHECK-8: @_ZTS1FIlE = weak_odr constant
-// CHECK-8: @_ZTI1FIlE = weak_odr hidden constant
+// CHECK-8: @_ZTI1FIlE = weak_odr constant
// F<int> is an explicit template instantiation declaration without a
// key function, so its vtable should have external linkage.
@@ -164,10 +164,10 @@ void use_F() {
// CHECK-12: @_ZTIN12_GLOBAL__N_11AE = internal constant
// F<char> is an explicit specialization without a key function, so
-// its vtable should have weak_odr linkage and hidden visibility.
-// CHECK-13: @_ZTV1FIcE = weak_odr hidden constant
+// its vtable should have weak_odr linkage.
+// CHECK-13: @_ZTV1FIcE = weak_odr constant
// CHECK-13: @_ZTS1FIcE = weak_odr constant
-// CHECK-13: @_ZTI1FIcE = weak_odr hidden constant
+// CHECK-13: @_ZTI1FIcE = weak_odr constant
// RUN: FileCheck --check-prefix=CHECK-G %s < %t
//
OpenPOWER on IntegriCloud