summaryrefslogtreecommitdiffstats
path: root/libcxx
diff options
context:
space:
mode:
authorLouis Dionne <ldionne@apple.com>2019-03-19 17:47:53 +0000
committerLouis Dionne <ldionne@apple.com>2019-03-19 17:47:53 +0000
commitafd1a23ffb213277139cf8c15023f327635433bb (patch)
tree9fa7f5ac316f686abc366814f52b4e8a45abb366 /libcxx
parent60be633a4717f5a8bfba1cfdcbd760780b263a43 (diff)
downloadbcm5719-llvm-afd1a23ffb213277139cf8c15023f327635433bb.tar.gz
bcm5719-llvm-afd1a23ffb213277139cf8c15023f327635433bb.zip
[libc++] Mark internal types of std::filesystem as hidden
Summary: Otherwise, implicit instantiations of templates with these types can cause the dylib to start exporting the vtable/RTTI of the instantiation. Giving hidden visibility to those types causes the compiler to understand that they are not used outside the dylib, and as a result implicitly instantiated vtables/RTTI of templates with those internal types will get hidden visibility. Reviewers: EricWF Subscribers: christof, jkorous, dexonsmith, jdoerfert, libcxx-commits Differential Revision: https://reviews.llvm.org/D59550 llvm-svn: 356488
Diffstat (limited to 'libcxx')
-rw-r--r--libcxx/include/filesystem6
1 files changed, 3 insertions, 3 deletions
diff --git a/libcxx/include/filesystem b/libcxx/include/filesystem
index 7a151d98864..d599b54031c 100644
--- a/libcxx/include/filesystem
+++ b/libcxx/include/filesystem
@@ -1350,7 +1350,7 @@ public:
void __create_what(int __num_paths);
private:
- struct _Storage {
+ struct _LIBCPP_HIDDEN _Storage {
_LIBCPP_INLINE_VISIBILITY
_Storage(const path& __p1, const path& __p2) : __p1_(__p1), __p2_(__p2) {}
@@ -1934,7 +1934,7 @@ inline _LIBCPP_INLINE_VISIBILITY path weakly_canonical(path const& __p,
class directory_iterator;
class recursive_directory_iterator;
-class __dir_stream;
+class _LIBCPP_HIDDEN __dir_stream;
class directory_entry {
typedef _VSTD_FS::path _Path;
@@ -2597,7 +2597,7 @@ private:
operator==(const recursive_directory_iterator&,
const recursive_directory_iterator&) noexcept;
- struct __shared_imp;
+ struct _LIBCPP_HIDDEN __shared_imp;
shared_ptr<__shared_imp> __imp_;
bool __rec_;
}; // class recursive_directory_iterator
OpenPOWER on IntegriCloud