diff options
| author | Eric Fiselier <eric@efcs.ca> | 2017-02-04 20:38:35 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2017-02-04 20:38:35 +0000 |
| commit | dfc9947636ceab64b15bbc4c60aa9b7308a98a0c (patch) | |
| tree | 49feb7e8ea2de9982e021597acff41678da276f3 /libcxx | |
| parent | fb5c750222c63e882bbb5ea9ed15127038152bba (diff) | |
| download | bcm5719-llvm-dfc9947636ceab64b15bbc4c60aa9b7308a98a0c.tar.gz bcm5719-llvm-dfc9947636ceab64b15bbc4c60aa9b7308a98a0c.zip | |
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.
llvm-svn: 294100
Diffstat (limited to 'libcxx')
| -rw-r--r-- | libcxx/include/string | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libcxx/include/string b/libcxx/include/string index 9a85797acaa..cdc3374ab6b 100644 --- a/libcxx/include/string +++ b/libcxx/include/string @@ -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, |

