diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-07-17 04:22:25 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-07-17 04:22:25 +0000 |
commit | f97c63681218fac6480525cfcd402c7d922190e9 (patch) | |
tree | 7b73d505daf6cd594f141568dae05acd0812486c /clang/test/CodeGenCXX/visibility.cpp | |
parent | 23f59509a8790b04c691ec063c55724a3bfee7eb (diff) | |
download | bcm5719-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.cpp | 16 |
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 +} |