Author: ericwf Date: Sat Feb 4 14:38:35 2017 New Revision: 294100 URL: http://llvm.org/viewvc/llvm-project?rev=294100&view=rev Log: Mark basic_string::assign templates as inline to improve ABI stability.
Visible definitions for basic_string::assign are sometimes emitted in the dylib depending on the version of LLVM used to compile libc++. This can cause the check-cxx-abilist target to fail. This patch attempts marks the basic_string::assign templates as inline to prevent this. That way the export list is consistent across LLVM versions. Modified: libcxx/trunk/include/string Modified: libcxx/trunk/include/string URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/string?rev=294100&r1=294099&r2=294100&view=diff ============================================================================== --- libcxx/trunk/include/string (original) +++ libcxx/trunk/include/string Sat Feb 4 14:38:35 2017 @@ -998,7 +998,7 @@ public: basic_string& assign(const value_type* __s); basic_string& assign(size_type __n, value_type __c); template<class _InputIterator> - typename enable_if + inline typename enable_if < __is_exactly_input_iterator<_InputIterator>::value || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value, @@ -1006,7 +1006,7 @@ public: >::type assign(_InputIterator __first, _InputIterator __last); template<class _ForwardIterator> - typename enable_if + inline typename enable_if < __is_forward_iterator<_ForwardIterator>::value && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value, _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits