summaryrefslogtreecommitdiffstats
path: root/libcxx/include/vector
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-09-15 22:27:07 +0000
committerEric Fiselier <eric@efcs.ca>2016-09-15 22:27:07 +0000
commit49e2967f2709b6333ae9373cf304af97a3ea785f (patch)
tree8869f0b5cefc466e2fb340b9e3ecc07e3c0bb616 /libcxx/include/vector
parent8da42cc5d31384361de9abf645c2e6f95c94198c (diff)
downloadbcm5719-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/vector2
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
OpenPOWER on IntegriCloud