Hi Marshall

This patch added a visibility declaration for the forward declaration you added 
in r225285.
The forward declared the swap function has no visibility and it might failed to 
compiler when user tries to change default visibility. For example:
#pragma GCC visibility push(default)
#include <utility>
#pragma GCC visibility pop
In this case, forward declaration and definition will not have the same 
visibility and the program will failed to compile.
This can be fixed by adding the same visibly to the forward declaration.

diff --git a/include/utility b/include/utility
index 2cb1018..96db60a 100644
--- a/include/utility
+++ b/include/utility
@@ -204,6 +204,7 @@ operator>=(const _Tp& __x, const _Tp& __y)
 
 // forward
 template<class _Tp, size_t _Np>
+inline _LIBCPP_INLINE_VISIBILITY
 void swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) 
_NOEXCEPT_(__is_nothrow_swappable<_Tp>::value);
 
 template <class _ForwardIterator1, class _ForwardIterator2>

Thanks

Steven


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to