[PATCH][libcxx] add visibility for swap forward declaration
Steven Wu
stevenwu at apple.com
Tue Feb 24 08:41:22 PST 2015
Thanks Marshall!
> On Feb 24, 2015, at 4:49 AM, Marshall Clow <mclow.lists at gmail.com> wrote:
>
>> On Feb 23, 2015, at 7:08 PM, Steven Wu <stevenwu at apple.com> wrote:
>>
>> 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>
>
> Committed revision 230330.
> Thanks!
>
> — Marshall
>
>
More information about the cfe-commits
mailing list