summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/visibility.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-07-17 04:22:25 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-07-17 04:22:25 +0000
commitf97c63681218fac6480525cfcd402c7d922190e9 (patch)
tree7b73d505daf6cd594f141568dae05acd0812486c /clang/test/CodeGenCXX/visibility.cpp
parent23f59509a8790b04c691ec063c55724a3bfee7eb (diff)
downloadbcm5719-llvm-f97c63681218fac6480525cfcd402c7d922190e9.tar.gz
bcm5719-llvm-f97c63681218fac6480525cfcd402c7d922190e9.zip
Record visibility pragmas when we see a tag declaration. We might use it
to build a type before seeing the definition. llvm-svn: 160339
Diffstat (limited to 'clang/test/CodeGenCXX/visibility.cpp')
-rw-r--r--clang/test/CodeGenCXX/visibility.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/visibility.cpp b/clang/test/CodeGenCXX/visibility.cpp
index 3ea232dc00b..590c06e4d0f 100644
--- a/clang/test/CodeGenCXX/visibility.cpp
+++ b/clang/test/CodeGenCXX/visibility.cpp
@@ -1061,3 +1061,19 @@ namespace test57 {
// CHECK: declare hidden void @_ZN6test573fooIiE3zedEv
// CHECK-HIDDEN: declare hidden void @_ZN6test573fooIiE3zedEv
}
+
+namespace test58 {
+#pragma GCC visibility push(hidden)
+ struct foo;
+ template<typename T>
+ struct __attribute__((visibility("default"))) bar {
+ static void zed() {
+ }
+ };
+ void bah() {
+ bar<foo>::zed();
+ }
+#pragma GCC visibility pop
+ // CHECK: define linkonce_odr hidden void @_ZN6test583barINS_3fooEE3zedEv
+ // CHECK-HIDDEN: define linkonce_odr hidden void @_ZN6test583barINS_3fooEE3zedEv
+}
OpenPOWER on IntegriCloud