diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-07-11 18:14:09 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-07-11 18:14:09 +0000 |
commit | 1fa9fade3855a0c8c1bc067a3f322fdef05191d9 (patch) | |
tree | 8b9e75e7de861cbfcfb60e8b4adce6474a919744 /clang/test/CodeGenCXX/visibility.cpp | |
parent | 73daa0f74038dce747db9aaaa208889b0cbef6c1 (diff) | |
download | bcm5719-llvm-1fa9fade3855a0c8c1bc067a3f322fdef05191d9.tar.gz bcm5719-llvm-1fa9fade3855a0c8c1bc067a3f322fdef05191d9.zip |
Handle #pragma visibility in explicit specializations and enums.
llvm-svn: 160057
Diffstat (limited to 'clang/test/CodeGenCXX/visibility.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/visibility.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/visibility.cpp b/clang/test/CodeGenCXX/visibility.cpp index 60a77927ff0..bf6c6eea803 100644 --- a/clang/test/CodeGenCXX/visibility.cpp +++ b/clang/test/CodeGenCXX/visibility.cpp @@ -980,10 +980,24 @@ namespace test53 { static void _M_fill_insert(); }; #pragma GCC visibility push(hidden) + // GCC doesn't seem to use the visibility of enums at all, we do. + enum zed {v1}; + + // GCC fails to mark this specialization hidden, we mark it. + template<> + struct vector<int> { + static void _M_fill_insert(); + }; void foo() { vector<unsigned>::_M_fill_insert(); + vector<int>::_M_fill_insert(); + vector<zed>::_M_fill_insert(); } #pragma GCC visibility pop // CHECK: declare void @_ZN6test536vectorIjE14_M_fill_insertEv // CHECK-HIDDEN: declare void @_ZN6test536vectorIjE14_M_fill_insertEv + // CHECK: declare hidden void @_ZN6test536vectorIiE14_M_fill_insertEv + // CHECK-HIDDEN: declare hidden void @_ZN6test536vectorIiE14_M_fill_insertEv + // CHECK: declare hidden void @_ZN6test536vectorINS_3zedEE14_M_fill_insertEv + // CHECK-HIDDEN: declare hidden void @_ZN6test536vectorINS_3zedEE14_M_fill_insertEv } |