summaryrefslogtreecommitdiffstats
path: root/libcxx/include
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-10-07 23:07:59 +0000
committerEric Fiselier <eric@efcs.ca>2016-10-07 23:07:59 +0000
commite4d80542d29522b26b21621ee733df20bb908a92 (patch)
tree21a3d0804bf1d5c572a889281c6160c3ce6b4c07 /libcxx/include
parent37e676d85762d8541e2df16bfa14963f5c705118 (diff)
downloadbcm5719-llvm-e4d80542d29522b26b21621ee733df20bb908a92.tar.gz
bcm5719-llvm-e4d80542d29522b26b21621ee733df20bb908a92.zip
Fix PR30642 - libc++ leaks always-visible symbols into programs
This was caused by r281673, specifically changing `_LIBCPP_EXTERN_TEMPLATE_TYPE_VIS` from `__attribute__((__type_visibility__("default")))` to `__attribute__((__visibility("default")))`. I made that change because I thought the external instantiations needed their members to have default visibility. However since libc++ never builds with -fvisibility=hidden this appears not to be needed. Instead this change caused previously hidden inline methods to become un-hidden, which is a regression. This patch reverts the problematic change and fixes PR30642. llvm-svn: 283620
Diffstat (limited to 'libcxx/include')
-rw-r--r--libcxx/include/__config2
1 files changed, 1 insertions, 1 deletions
diff --git a/libcxx/include/__config b/libcxx/include/__config
index 311e0607a71..14e151a4db4 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -589,7 +589,7 @@ namespace std {
#ifndef _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS
# if __has_attribute(__type_visibility__)
-# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __attribute__ ((__visibility__("default")))
+# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __attribute__ ((__type_visibility__("default")))
# else
# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS
# endif
OpenPOWER on IntegriCloud