summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-09-16 00:13:55 +0000
committerEric Fiselier <eric@efcs.ca>2016-09-16 00:13:55 +0000
commit1fbaf535d6a4555a751d1285889a7a1f52dfafc5 (patch)
treec29e6003acfaac96824d9ef596c677fd0dfde243
parent1b17a4b7b4e6cfb2ece4e243bed47ec5bb81affa (diff)
downloadbcm5719-llvm-1fbaf535d6a4555a751d1285889a7a1f52dfafc5.tar.gz
bcm5719-llvm-1fbaf535d6a4555a751d1285889a7a1f52dfafc5.zip
Use _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY in valarray to support attribute((internal_linkage)).
The externally instantiated member functions must be declared using _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY, not _LIBCPP_INLINE_VISIBILITY, in order to be properly exported when using __attribute__((internal_linkage)). Otherwise the explicit instantiations will obviously have internal linkage and will not be exported from the dylib. llvm-svn: 281684
-rw-r--r--libcxx/include/valarray6
1 files changed, 3 insertions, 3 deletions
diff --git a/libcxx/include/valarray b/libcxx/include/valarray
index bde644e8719..2325c54f7c6 100644
--- a/libcxx/include/valarray
+++ b/libcxx/include/valarray
@@ -802,8 +802,8 @@ public:
// construct/destroy:
_LIBCPP_INLINE_VISIBILITY
valarray() : __begin_(0), __end_(0) {}
- _LIBCPP_INLINE_VISIBILITY
- inline explicit valarray(size_t __n);
+ inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY
+ explicit valarray(size_t __n);
_LIBCPP_INLINE_VISIBILITY
valarray(const value_type& __x, size_t __n);
valarray(const value_type* __p, size_t __n);
@@ -819,7 +819,7 @@ public:
valarray(const gslice_array<value_type>& __ga);
valarray(const mask_array<value_type>& __ma);
valarray(const indirect_array<value_type>& __ia);
- inline _LIBCPP_INLINE_VISIBILITY
+ inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY
~valarray();
// assignment:
OpenPOWER on IntegriCloud