From 9e6abfa091e785c1716d3bfbdb940d1e63449376 Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Sat, 4 Feb 2017 20:38:35 +0000 Subject: [PATCH] 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. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@294100 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/string | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/string b/include/string index 9a85797ac..cdc3374ab 100644 --- a/include/string +++ b/include/string @@ -998,7 +998,7 @@ public: basic_string& assign(const value_type* __s); basic_string& assign(size_type __n, value_type __c); template - 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 - typename enable_if + inline typename enable_if < __is_forward_iterator<_ForwardIterator>::value && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value,