diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-09-15 22:27:07 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-09-15 22:27:07 +0000 |
commit | 49e2967f2709b6333ae9373cf304af97a3ea785f (patch) | |
tree | 8869f0b5cefc466e2fb340b9e3ecc07e3c0bb616 /libcxx/include/vector | |
parent | 8da42cc5d31384361de9abf645c2e6f95c94198c (diff) | |
download | bcm5719-llvm-49e2967f2709b6333ae9373cf304af97a3ea785f.tar.gz bcm5719-llvm-49e2967f2709b6333ae9373cf304af97a3ea785f.zip |
[libc++] Fix and document visibility attributes for Clang, GCC and Windows.
Summary:
This patch fixes a number of problems with the visibility macros across GCC (on Unix) and Windows (DLL import/export semantics). All of the visibility macros are now documented under `DesignDocs/VisibilityMacros.rst`. Now I'll no longer forget the subtleties of each!
This patch adds two new visibility macros:
* `_LIBCPP_ENUM_VIS` for controlling the typeinfo of enum types. Only Clang supports this.
* `_LIBCPP_EXTERN_TEMPLATE_TYPE_VIS` for redefining visibility on explicit instantiation declarations. Clang and Windows require this.
After applying this patch GCC only emits one -Wattribute warning opposed to 30+.
Reviewers: mclow.lists, EricWF
Subscribers: beanz, mgorny, cfe-commits
Differential Revision: https://reviews.llvm.org/D24602
llvm-svn: 281673
Diffstat (limited to 'libcxx/include/vector')
-rw-r--r-- | libcxx/include/vector | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libcxx/include/vector b/libcxx/include/vector index cbe86a412f9..edcb7dfabe5 100644 --- a/libcxx/include/vector +++ b/libcxx/include/vector @@ -312,7 +312,7 @@ __vector_base_common<__b>::__throw_out_of_range() const #pragma warning( push ) #pragma warning( disable: 4231 ) #endif // _LIBCPP_MSVC -_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_TYPE_VIS __vector_base_common<true>) +_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __vector_base_common<true>) #ifdef _LIBCPP_MSVC #pragma warning( pop ) #endif // _LIBCPP_MSVC |