Revert "Add CHROMIUM_CXX_TWEAK_INLINES to reduce binary size (NDK r16)"
This reverts commit 50f4963776c431db65f21e92e4a5e67a4b715920.
Reason for revert: Causes linking issues on component builds.
Original change's description:
> Add CHROMIUM_CXX_TWEAK_INLINES to reduce binary size (NDK r16)
>
> This patch is a port of Andrew´s original patch reviewed at:
> https://chromium-review.googlesource.com/c/android_ndk/+/683555
>
> This should reduce the size of libchrome.so by about 700 KiB
> with little impact on performance.
>
> R=agrieve
> Bug: 738155
> Change-Id: If3d442ae37379585c516dc8acda54a88adc7f6da
> Reviewed-on: https://chromium-review.googlesource.com/797450
> Reviewed-by: agrieve <agrieve@chromium.org>
> Tested-by: agrieve <agrieve@chromium.org>
TBR=digit@chromium.org,agrieve@chromium.org,bsheedy@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: 738155
Change-Id: Ia39beadaf61d974886443507d12c78dd343a9264
Reviewed-on: https://chromium-review.googlesource.com/832847
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Tested-by: agrieve <agrieve@chromium.org>
diff --git a/chromium-patches/CHROMIUM_CXX_TWEAK_INLINES.patch b/chromium-patches/CHROMIUM_CXX_TWEAK_INLINES.patch
index a64901b..85f3e18 100644
--- a/chromium-patches/CHROMIUM_CXX_TWEAK_INLINES.patch
+++ b/chromium-patches/CHROMIUM_CXX_TWEAK_INLINES.patch
@@ -1,41 +1,11 @@
-diff --git a/sources/cxx-stl/llvm-libc++/include/__config b/sources/cxx-stl/llvm-libc++/include/__config
-index b7acd667..b784e2a3 100644
---- a/sources/cxx-stl/llvm-libc++/include/__config
-+++ b/sources/cxx-stl/llvm-libc++/include/__config
-@@ -138,6 +138,46 @@
- #define __libcpp_has_include(__x) 0
+diff --git a/sources/cxx-stl/llvm-libc++/libcxx/include/__config b/sources/cxx-stl/llvm-libc++/libcxx/include/__config
+index b227522f..f153f6f3 100644
+--- a/sources/cxx-stl/llvm-libc++/libcxx/include/__config
++++ b/sources/cxx-stl/llvm-libc++/libcxx/include/__config
+@@ -203,6 +203,17 @@
+ #define _LIBCPP_ALWAYS_INLINE_EXCEPT_GCC49 _LIBCPP_ALWAYS_INLINE
#endif
-+// When CHROMIUM_CXX_TWEAK_INLINES is defined, certain STL types will be tweaked
-+// to ensure that their constructor, or certain methods, are never inlined. This can
-+// surprisingly reduce the size of the Chrome binary by more than 3%, with little
-+// impact on performance.
-+//
-+// This is controlled by modifying some libc++ headers using the following macros:
-+//
-+// CHROMIUM_LIBCPP_INLINE_VISIBILITY:
-+// Replaces an _existing_ _LIBCPP_INLINE_VISIBILITY use on a target method.
-+// I.e. this indicates libc++ methods that were already possibly inlined,
-+// but that will never be when the tweak is active.
-+//
-+// Equivalent to _LIBCPP_INLINE_VISIBILITY if the tweak is disabled.
-+//
-+// CHROMIUM_LIBCPP_NEVER_INLINE:
-+// This is added to ensure that a target method, which was _not_ already
-+// tagged with _LIBCPP_INLINE_VISIBILITY, will never be inlined.
-+//
-+// This is equivalent to adding CHROMIUM_LIBCPP_INLINE_VISIBILITY, except
-+// that it helps spot the places where _LIBCPP_INLINE_VISIBILITY was not
-+// used in the original libc++ header.
-+//
-+// Empty if the tweak is disabled.
-+//
-+// CHROMIUM_LIBCPP_ALWAYS_INLINE:
-+// This is added to ensure that a target method, which is _not_ already
-+// tagged with _LIBCPP_INLINE_VISIBILITY, will always be inlined.
-+//
-+// Empty if the tweak is disabled.
-+//
+#ifdef CHROMIUM_CXX_TWEAK_INLINES
+#define CHROMIUM_LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"), noinline))
+#define CHROMIUM_LIBCPP_ALWAYS_INLINE __attribute__ ((__visibility__("hidden"), __always_inline__))
@@ -45,15 +15,16 @@
+#define CHROMIUM_LIBCPP_ALWAYS_INLINE
+#define CHROMIUM_LIBCPP_NEVER_INLINE
+#endif
++#define CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 CHROMIUM_LIBCPP_INLINE_VISIBILITY
+
#if defined(__clang__)
- #define _LIBCPP_COMPILER_CLANG
- # ifndef __apple_build_version__
-diff --git a/sources/cxx-stl/llvm-libc++/include/string b/sources/cxx-stl/llvm-libc++/include/string
-index cf42f529..5a31af04 100644
---- a/sources/cxx-stl/llvm-libc++/include/string
-+++ b/sources/cxx-stl/llvm-libc++/include/string
-@@ -536,23 +536,28 @@ bool operator!=(const fpos<_StateT>& __x, const fpos<_StateT>& __y)
+
+ #if defined(__APPLE__) && !defined(__i386__) && !defined(__x86_64__) && \
+diff --git a/sources/cxx-stl/llvm-libc++/libcxx/include/string b/sources/cxx-stl/llvm-libc++/libcxx/include/string
+index ba83e22a..222567f5 100644
+--- a/sources/cxx-stl/llvm-libc++/libcxx/include/string
++++ b/sources/cxx-stl/llvm-libc++/libcxx/include/string
+@@ -1174,23 +1174,28 @@ size_t _LIBCPP_INLINE_VISIBILITY __do_string_hash(_Ptr __p, _Ptr __e)
// basic_string
template<class _CharT, class _Traits, class _Allocator>
@@ -82,79 +53,51 @@
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, _CharT __y);
-@@ -745,21 +750,24 @@ private:
+@@ -1368,54 +1373,59 @@ private:
public:
static const size_type npos = -1;
-- _LIBCPP_INLINE_VISIBILITY basic_string()
+- _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 basic_string()
+ // Adding CHROMIUM defines to constructors and operator+ saved 300kb (Sept 2017).
+ // Made __init __always_inline__, and functions that call it (constructors and operator+) noinline.
+ // For more context: https://crbug.com/738155
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY basic_string()
++ CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 basic_string()
_NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);
-
-- _LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)
- #if _LIBCPP_STD_VER <= 14
- _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value);
- #else
- _NOEXCEPT;
- #endif
-
+- _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 explicit basic_string(const allocator_type& __a);
- basic_string(const basic_string& __str);
- basic_string(const basic_string& __str, const allocator_type& __a);
++ CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 explicit basic_string(const allocator_type& __a);
+ CHROMIUM_LIBCPP_NEVER_INLINE basic_string(const basic_string& __str);
+ CHROMIUM_LIBCPP_NEVER_INLINE basic_string(const basic_string& __str, const allocator_type& __a);
-
- #ifndef _LIBCPP_CXX03_LANG
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+- _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++ CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
basic_string(basic_string&& __str)
- #if _LIBCPP_STD_VER <= 14
_NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value);
-@@ -767,23 +775,24 @@ public:
- _NOEXCEPT;
- #endif
-
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
basic_string(basic_string&& __str, const allocator_type& __a);
- #endif // _LIBCPP_CXX03_LANG
-- _LIBCPP_INLINE_VISIBILITY basic_string(const _CharT* __s);
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
+- _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 basic_string(const value_type* __s);
- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY basic_string(const _CharT* __s);
++ CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49 basic_string(const value_type* __s);
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string(const _CharT* __s, const _Allocator& __a);
+ basic_string(const value_type* __s, const allocator_type& __a);
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string(const _CharT* __s, size_type __n);
+ basic_string(const value_type* __s, size_type __n);
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string(const _CharT* __s, size_type __n, const _Allocator& __a);
+ basic_string(const value_type* __s, size_type __n, const allocator_type& __a);
+- _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++ CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
+ basic_string(size_type __n, value_type __c);
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string(size_type __n, _CharT __c);
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string(size_type __n, _CharT __c, const _Allocator& __a);
-+ CHROMIUM_LIBCPP_NEVER_INLINE
- basic_string(const basic_string& __str, size_type __pos, size_type __n,
- const _Allocator& __a = _Allocator());
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string(const basic_string& __str, size_type __pos,
- const _Allocator& __a = _Allocator());
- template<class _Tp>
-@@ -791,20 +800,20 @@ public:
- basic_string(const _Tp& __t, size_type __pos, size_type __n,
- const allocator_type& __a = allocator_type(),
- typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type* = 0);
-- _LIBCPP_INLINE_VISIBILITY explicit
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY explicit
- basic_string(__self_view __sv);
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string(__self_view __sv, const _Allocator& __a);
+ basic_string(size_type __n, value_type __c, const allocator_type& __a);
+- basic_string(const basic_string& __str, size_type __pos, size_type __n = npos,
++ CHROMIUM_LIBCPP_NEVER_INLINE basic_string(const basic_string& __str, size_type __pos, size_type __n = npos,
+ const allocator_type& __a = allocator_type());
template<class _InputIterator>
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
@@ -163,49 +106,45 @@
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
basic_string(_InputIterator __first, _InputIterator __last, const allocator_type& __a);
- #ifndef _LIBCPP_CXX03_LANG
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string(initializer_list<_CharT> __il);
+ basic_string(initializer_list<value_type> __il);
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string(initializer_list<_CharT> __il, const _Allocator& __a);
- #endif // _LIBCPP_CXX03_LANG
+ basic_string(initializer_list<value_type> __il, const allocator_type& __a);
+ #endif // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
-@@ -818,13 +827,13 @@ public:
- #ifndef _LIBCPP_CXX03_LANG
- template <class = void>
- #endif
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string& operator=(__self_view __sv) {return assign(__sv);}
- #ifndef _LIBCPP_CXX03_LANG
+ ~basic_string();
+
+- basic_string& operator=(const basic_string& __str);
++ // Adding noinline to operator= saved 100kb (Sept 2017).
++ CHROMIUM_LIBCPP_NEVER_INLINE basic_string& operator=(const basic_string& __str);
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
basic_string& operator=(basic_string&& __str)
- _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value));
-- _LIBCPP_INLINE_VISIBILITY
-+ _LIBCPP_INLINE_VISIBILITY
- basic_string& operator=(initializer_list<value_type> __il) {return assign(__il.begin(), __il.size());}
+ _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
+ is_nothrow_move_assignable<allocator_type>::value);
#endif
_LIBCPP_INLINE_VISIBILITY basic_string& operator=(const value_type* __s) {return assign(__s);}
-@@ -1084,13 +1093,13 @@ public:
++ CHROMIUM_LIBCPP_NEVER_INLINE
+ basic_string& operator=(value_type __c);
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
+ _LIBCPP_INLINE_VISIBILITY
+@@ -1612,11 +1622,9 @@ public:
basic_string& replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2);
basic_string& replace(size_type __pos, size_type __n1, const value_type* __s);
basic_string& replace(size_type __pos, size_type __n1, size_type __n2, value_type __c);
- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
basic_string& replace(const_iterator __i1, const_iterator __i2, const basic_string& __str);
_LIBCPP_INLINE_VISIBILITY
- basic_string& replace(const_iterator __i1, const_iterator __i2, __self_view __sv) { return replace(__i1 - begin(), __i2 - __i1, __sv); }
- _LIBCPP_INLINE_VISIBILITY
basic_string& replace(const_iterator __i1, const_iterator __i2, const value_type* __s, size_type __n);
- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
basic_string& replace(const_iterator __i1, const_iterator __i2, const value_type* __s);
_LIBCPP_INLINE_VISIBILITY
basic_string& replace(const_iterator __i1, const_iterator __i2, size_type __n, value_type __c);
-@@ -1133,67 +1142,77 @@ public:
+@@ -1650,59 +1658,69 @@ public:
_LIBCPP_INLINE_VISIBILITY
allocator_type get_allocator() const _NOEXCEPT {return __alloc();}
@@ -213,133 +152,104 @@
+ // Adding CHROMIUM defines to find methods saved 20kb (Sept 2017).
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
size_type find(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- size_type find(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
+ CHROMIUM_LIBCPP_NEVER_INLINE
size_type find(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
size_type find(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;
-+ CHROMIUM_LIBCPP_NEVER_INLINE
++ // Adding noinline to this overload saved only 1kb (Sept 2017).
size_type find(value_type __c, size_type __pos = 0) const _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
size_type rfind(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- size_type rfind(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
+ CHROMIUM_LIBCPP_NEVER_INLINE
size_type rfind(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
size_type rfind(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;
-+ CHROMIUM_LIBCPP_NEVER_INLINE
size_type rfind(value_type __c, size_type __pos = npos) const _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
size_type find_first_of(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- size_type find_first_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
+ CHROMIUM_LIBCPP_NEVER_INLINE
size_type find_first_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
size_type find_first_of(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_first_of(value_type __c, size_type __pos = 0) const _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
size_type find_last_of(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- size_type find_last_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
+ CHROMIUM_LIBCPP_NEVER_INLINE
size_type find_last_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
size_type find_last_of(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_last_of(value_type __c, size_type __pos = npos) const _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
size_type find_first_not_of(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- size_type find_first_not_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
+ CHROMIUM_LIBCPP_NEVER_INLINE
size_type find_first_not_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
size_type find_first_not_of(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_first_not_of(value_type __c, size_type __pos = 0) const _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
size_type find_last_not_of(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- size_type find_last_not_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
+ CHROMIUM_LIBCPP_NEVER_INLINE
size_type find_last_not_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
size_type find_last_not_of(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_last_not_of(value_type __c, size_type __pos = npos) const _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ // Adding CHROMIUM defines to compare and operator== saved 100kb (Sept 2017).
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
int compare(const basic_string& __str) const _NOEXCEPT;
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- int compare(__self_view __sv) const _NOEXCEPT;
_LIBCPP_INLINE_VISIBILITY
- int compare(size_type __pos1, size_type __n1, __self_view __sv) const;
-@@ -1210,6 +1229,7 @@ public:
- compare(size_type __pos1, size_type __n1, const _Tp& __t, size_type __pos2, size_type __n2=npos) const;
+ int compare(size_type __pos1, size_type __n1, const basic_string& __str) const;
+ int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos) const;
int compare(const value_type* __s) const _NOEXCEPT;
int compare(size_type __pos1, size_type __n1, const value_type* __s) const;
+ CHROMIUM_LIBCPP_NEVER_INLINE
int compare(size_type __pos1, size_type __n1, const value_type* __s, size_type __n2) const;
_LIBCPP_INLINE_VISIBILITY bool __invariants() const;
-@@ -1331,11 +1351,11 @@ private:
+@@ -1824,9 +1842,9 @@ private:
__align_it<sizeof(value_type) < __alignment ?
__alignment/sizeof(value_type) : 1 > (__s+1)) - 1;}
-- inline
-+ inline CHROMIUM_LIBCPP_NEVER_INLINE
- void __init(const value_type* __s, size_type __sz, size_type __reserve);
-- inline
-+ inline CHROMIUM_LIBCPP_NEVER_INLINE
- void __init(const value_type* __s, size_type __sz);
-- inline
-+ inline CHROMIUM_LIBCPP_NEVER_INLINE
- void __init(size_type __n, value_type __c);
+- void __init(const value_type* __s, size_type __sz, size_type __reserve);
+- void __init(const value_type* __s, size_type __sz);
+- void __init(size_type __n, value_type __c);
++ CHROMIUM_LIBCPP_ALWAYS_INLINE void __init(const value_type* __s, size_type __sz, size_type __reserve);
++ CHROMIUM_LIBCPP_ALWAYS_INLINE void __init(const value_type* __s, size_type __sz);
++ CHROMIUM_LIBCPP_ALWAYS_INLINE void __init(size_type __n, value_type __c);
template <class _InputIterator>
-@@ -1345,7 +1365,7 @@ private:
- __is_exactly_input_iterator<_InputIterator>::value,
+ typename enable_if
+@@ -1835,7 +1853,7 @@ private:
+ !__is_forward_iterator<_InputIterator>::value,
void
>::type
- __init(_InputIterator __first, _InputIterator __last);
+ CHROMIUM_LIBCPP_ALWAYS_INLINE __init(_InputIterator __first, _InputIterator __last);
template <class _ForwardIterator>
- inline
-@@ -1354,7 +1374,7 @@ private:
+ typename enable_if
+@@ -1843,7 +1861,7 @@ private:
__is_forward_iterator<_ForwardIterator>::value,
void
>::type
@@ -348,188 +258,158 @@
void __grow_by(size_type __old_cap, size_type __delta_cap, size_type __old_sz,
size_type __n_copy, size_type __n_del, size_type __n_add = 0);
-@@ -1486,7 +1506,7 @@ basic_string<_CharT, _Traits, _Allocator>::__invalidate_iterators_past(size_type
+@@ -1972,7 +1990,7 @@ basic_string<_CharT, _Traits, _Allocator>::__invalidate_iterators_past(size_type
}
template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+-inline _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++inline CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
basic_string<_CharT, _Traits, _Allocator>::basic_string()
_NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
{
-@@ -1497,7 +1517,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string()
+@@ -1983,7 +2001,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string()
}
template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+-inline _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++inline CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a)
- #if _LIBCPP_STD_VER <= 14
- _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)
-@@ -1513,6 +1533,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __
+ : __r_(__a)
+ {
+@@ -1994,7 +2012,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __
}
template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_ALWAYS_INLINE
- void basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s,
- size_type __sz,
- size_type __reserve)
-@@ -1538,6 +1559,7 @@ void basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s,
+-void
++CHROMIUM_LIBCPP_ALWAYS_INLINE void
+ basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz, size_type __reserve)
+ {
+ if (__reserve > max_size())
+@@ -2018,7 +2036,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_ty
}
template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_ALWAYS_INLINE
- void
+-void
++CHROMIUM_LIBCPP_ALWAYS_INLINE void
basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz)
{
-@@ -1562,7 +1584,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_ty
+ if (__sz > max_size())
+@@ -2042,7 +2060,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_ty
}
template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s)
+-inline _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++inline CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s)
{
_LIBCPP_ASSERT(__s != nullptr, "basic_string(const char*) detected nullptr");
-@@ -1573,7 +1595,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s)
+@@ -2053,7 +2071,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s)
}
template <class _CharT, class _Traits, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, const _Allocator& __a)
- : __r_(__second_tag(), __a)
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s, const allocator_type& __a)
+ : __r_(__a)
{
-@@ -1585,7 +1607,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, const
+@@ -2065,7 +2083,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s, c
}
template <class _CharT, class _Traits, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_type __n)
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s, size_type __n)
{
_LIBCPP_ASSERT(__n == 0 || __s != nullptr, "basic_string(const char*, n) detected nullptr");
-@@ -1596,7 +1618,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_
+@@ -2076,7 +2094,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s, s
}
template <class _CharT, class _Traits, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_type __n, const _Allocator& __a)
- : __r_(__second_tag(), __a)
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s, size_type __n, const allocator_type& __a)
+ : __r_(__a)
{
-@@ -1608,6 +1630,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_
+@@ -2088,7 +2106,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const value_type* __s, s
}
template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str)
- : __r_(__second_tag(), __alloc_traits::select_on_container_copy_construction(__str.__alloc()))
+-basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str)
++CHROMIUM_LIBCPP_NEVER_INLINE basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str)
+ : __r_(__alloc_traits::select_on_container_copy_construction(__str.__alloc()))
{
-@@ -1621,6 +1644,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
+ if (!__str.__is_long())
+@@ -2101,7 +2119,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
}
template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- basic_string<_CharT, _Traits, _Allocator>::basic_string(
- const basic_string& __str, const allocator_type& __a)
- : __r_(__second_tag(), __a)
-@@ -1637,7 +1661,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(
- #ifndef _LIBCPP_CXX03_LANG
+-basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, const allocator_type& __a)
++CHROMIUM_LIBCPP_NEVER_INLINE basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, const allocator_type& __a)
+ : __r_(__a)
+ {
+ if (!__str.__is_long())
+@@ -2116,7 +2134,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+-inline _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++inline CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str)
- #if _LIBCPP_STD_VER <= 14
_NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)
-@@ -1655,7 +1679,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str)
+ : __r_(_VSTD::move(__str.__r_))
+@@ -2130,7 +2148,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str)
}
template <class _CharT, class _Traits, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str, const allocator_type& __a)
- : __r_(__second_tag(), __a)
+ : __r_(__a)
{
-@@ -1676,6 +1700,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str, co
- #endif // _LIBCPP_CXX03_LANG
+@@ -2149,6 +2167,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str, co
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _CharT, class _Traits, class _Allocator>
+CHROMIUM_LIBCPP_ALWAYS_INLINE
void
basic_string<_CharT, _Traits, _Allocator>::__init(size_type __n, value_type __c)
{
-@@ -1700,7 +1725,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(size_type __n, value_type __c)
+@@ -2173,7 +2192,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(size_type __n, value_type __c)
}
template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __c)
+-inline _LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
++inline CHROMIUM_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, value_type __c)
{
__init(__n, __c);
-@@ -1710,7 +1735,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __
+@@ -2183,7 +2202,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, value_typ
}
template <class _CharT, class _Traits, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __c, const _Allocator& __a)
- : __r_(__second_tag(), __a)
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, value_type __c, const allocator_type& __a)
+ : __r_(__a)
{
-@@ -1721,6 +1746,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __
+@@ -2194,7 +2213,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, value_typ
}
template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str,
- size_type __pos, size_type __n,
- const _Allocator& __a)
-@@ -1736,7 +1762,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
- }
-
- template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, size_type __pos,
- const _Allocator& __a)
- : __r_(__second_tag(), __a)
-@@ -1752,6 +1778,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
-
- template <class _CharT, class _Traits, class _Allocator>
- template <class _Tp>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- basic_string<_CharT, _Traits, _Allocator>::basic_string(
- const _Tp& __t, size_type __pos, size_type __n, const allocator_type& __a,
- typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type *)
-@@ -1765,7 +1792,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(
- }
-
- template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv)
+-basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, size_type __pos, size_type __n,
++CHROMIUM_LIBCPP_NEVER_INLINE basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, size_type __pos, size_type __n,
+ const allocator_type& __a)
+ : __r_(__a)
{
- __init(__sv.data(), __sv.size());
-@@ -1775,7 +1802,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv)
- }
-
- template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv, const _Allocator& __a)
- : __r_(__second_tag(), __a)
- {
-@@ -1787,6 +1814,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv, const
+@@ -2209,6 +2228,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
template <class _CharT, class _Traits, class _Allocator>
template <class _InputIterator>
+CHROMIUM_LIBCPP_ALWAYS_INLINE
typename enable_if
<
- __is_exactly_input_iterator<_InputIterator>::value,
-@@ -1814,6 +1842,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(_InputIterator __first, _Input
+ __is_input_iterator <_InputIterator>::value &&
+@@ -2237,6 +2257,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(_InputIterator __first, _Input
template <class _CharT, class _Traits, class _Allocator>
template <class _ForwardIterator>
@@ -537,7 +417,7 @@
typename enable_if
<
__is_forward_iterator<_ForwardIterator>::value,
-@@ -1845,7 +1874,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(_ForwardIterator __first, _For
+@@ -2268,7 +2289,7 @@ basic_string<_CharT, _Traits, _Allocator>::__init(_ForwardIterator __first, _For
template <class _CharT, class _Traits, class _Allocator>
template<class _InputIterator>
@@ -546,7 +426,7 @@
basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first, _InputIterator __last)
{
__init(__first, __last);
-@@ -1856,7 +1885,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first,
+@@ -2279,7 +2300,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first,
template <class _CharT, class _Traits, class _Allocator>
template<class _InputIterator>
@@ -554,27 +434,26 @@
+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first, _InputIterator __last,
const allocator_type& __a)
- : __r_(__second_tag(), __a)
-@@ -1870,7 +1899,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first,
- #ifndef _LIBCPP_CXX03_LANG
+ : __r_(__a)
+@@ -2293,7 +2314,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first,
+ #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
template <class _CharT, class _Traits, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(
- initializer_list<_CharT> __il)
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(initializer_list<value_type> __il)
{
-@@ -1881,8 +1910,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(
+ __init(__il.begin(), __il.end());
+@@ -2303,7 +2324,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(initializer_list<value_t
}
template <class _CharT, class _Traits, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
--
+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>::basic_string(
- initializer_list<_CharT> __il, const _Allocator& __a)
- : __r_(__second_tag(), __a)
-@@ -2010,6 +2038,7 @@ basic_string<_CharT, _Traits, _Allocator>::assign(size_type __n, value_type __c)
+ basic_string<_CharT, _Traits, _Allocator>::basic_string(initializer_list<value_type> __il, const allocator_type& __a)
+ : __r_(__a)
+ {
+@@ -2430,6 +2451,7 @@ basic_string<_CharT, _Traits, _Allocator>::assign(size_type __n, value_type __c)
}
template <class _CharT, class _Traits, class _Allocator>
@@ -582,7 +461,7 @@
basic_string<_CharT, _Traits, _Allocator>&
basic_string<_CharT, _Traits, _Allocator>::operator=(value_type __c)
{
-@@ -2031,6 +2060,7 @@ basic_string<_CharT, _Traits, _Allocator>::operator=(value_type __c)
+@@ -2451,6 +2473,7 @@ basic_string<_CharT, _Traits, _Allocator>::operator=(value_type __c)
}
template <class _CharT, class _Traits, class _Allocator>
@@ -590,7 +469,7 @@
basic_string<_CharT, _Traits, _Allocator>&
basic_string<_CharT, _Traits, _Allocator>::operator=(const basic_string& __str)
{
-@@ -2074,7 +2104,7 @@ basic_string<_CharT, _Traits, _Allocator>::__move_assign(basic_string& __str, tr
+@@ -2489,7 +2512,7 @@ basic_string<_CharT, _Traits, _Allocator>::__move_assign(basic_string& __str, tr
}
template <class _CharT, class _Traits, class _Allocator>
@@ -598,8 +477,8 @@
+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>&
basic_string<_CharT, _Traits, _Allocator>::operator=(basic_string&& __str)
- _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value))
-@@ -3068,6 +3098,7 @@ struct _LIBCPP_HIDDEN __traits_eq
+ _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
+@@ -3421,6 +3444,7 @@ struct _LIBCPP_HIDDEN __traits_eq
};
template<class _CharT, class _Traits, class _Allocator>
@@ -607,7 +486,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,
size_type __pos,
-@@ -3079,7 +3110,7 @@ basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,
+@@ -3432,7 +3456,7 @@ basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,
}
template<class _CharT, class _Traits, class _Allocator>
@@ -616,7 +495,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find(const basic_string& __str,
size_type __pos) const _NOEXCEPT
-@@ -3099,7 +3130,7 @@ basic_string<_CharT, _Traits, _Allocator>::find(__self_view __sv,
+@@ -3442,7 +3466,7 @@ basic_string<_CharT, _Traits, _Allocator>::find(const basic_string& __str,
}
template<class _CharT, class _Traits, class _Allocator>
@@ -625,7 +504,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,
size_type __pos) const _NOEXCEPT
-@@ -3121,6 +3152,7 @@ basic_string<_CharT, _Traits, _Allocator>::find(value_type __c,
+@@ -3464,6 +3488,7 @@ basic_string<_CharT, _Traits, _Allocator>::find(value_type __c,
// rfind
template<class _CharT, class _Traits, class _Allocator>
@@ -633,7 +512,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,
size_type __pos,
-@@ -3132,7 +3164,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,
+@@ -3475,7 +3500,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,
}
template<class _CharT, class _Traits, class _Allocator>
@@ -642,16 +521,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::rfind(const basic_string& __str,
size_type __pos) const _NOEXCEPT
-@@ -3142,7 +3174,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(const basic_string& __str,
- }
-
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- typename basic_string<_CharT, _Traits, _Allocator>::size_type
- basic_string<_CharT, _Traits, _Allocator>::rfind(__self_view __sv,
- size_type __pos) const _NOEXCEPT
-@@ -3152,7 +3184,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(__self_view __sv,
+@@ -3485,7 +3510,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(const basic_string& __str,
}
template<class _CharT, class _Traits, class _Allocator>
@@ -660,7 +530,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,
size_type __pos) const _NOEXCEPT
-@@ -3174,6 +3206,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(value_type __c,
+@@ -3507,6 +3532,7 @@ basic_string<_CharT, _Traits, _Allocator>::rfind(value_type __c,
// find_first_of
template<class _CharT, class _Traits, class _Allocator>
@@ -668,7 +538,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
size_type __pos,
-@@ -3185,7 +3218,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
+@@ -3518,7 +3544,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
}
template<class _CharT, class _Traits, class _Allocator>
@@ -677,16 +547,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __str,
size_type __pos) const _NOEXCEPT
-@@ -3195,7 +3228,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __s
- }
-
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- typename basic_string<_CharT, _Traits, _Allocator>::size_type
- basic_string<_CharT, _Traits, _Allocator>::find_first_of(__self_view __sv,
- size_type __pos) const _NOEXCEPT
-@@ -3205,7 +3238,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(__self_view __sv,
+@@ -3528,7 +3554,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __s
}
template<class _CharT, class _Traits, class _Allocator>
@@ -695,7 +556,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
size_type __pos) const _NOEXCEPT
-@@ -3227,6 +3260,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(value_type __c,
+@@ -3550,6 +3576,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(value_type __c,
// find_last_of
template<class _CharT, class _Traits, class _Allocator>
@@ -703,7 +564,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
size_type __pos,
-@@ -3238,7 +3272,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
+@@ -3561,7 +3588,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
}
template<class _CharT, class _Traits, class _Allocator>
@@ -712,7 +573,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_last_of(const basic_string& __str,
size_type __pos) const _NOEXCEPT
-@@ -3258,7 +3292,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(__self_view __sv,
+@@ -3571,7 +3598,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const basic_string& __st
}
template<class _CharT, class _Traits, class _Allocator>
@@ -721,7 +582,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
size_type __pos) const _NOEXCEPT
-@@ -3280,6 +3314,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(value_type __c,
+@@ -3593,6 +3620,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(value_type __c,
// find_first_not_of
template<class _CharT, class _Traits, class _Allocator>
@@ -729,7 +590,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s,
size_type __pos,
-@@ -3291,7 +3326,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* _
+@@ -3604,7 +3632,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* _
}
template<class _CharT, class _Traits, class _Allocator>
@@ -738,7 +599,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const basic_string& __str,
size_type __pos) const _NOEXCEPT
-@@ -3311,7 +3346,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(__self_view __sv,
+@@ -3614,7 +3642,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const basic_string&
}
template<class _CharT, class _Traits, class _Allocator>
@@ -747,7 +608,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s,
size_type __pos) const _NOEXCEPT
-@@ -3334,6 +3369,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(value_type __c,
+@@ -3637,6 +3665,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(value_type __c,
// find_last_not_of
template<class _CharT, class _Traits, class _Allocator>
@@ -755,7 +616,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s,
size_type __pos,
-@@ -3345,7 +3381,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __
+@@ -3648,7 +3677,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __
}
template<class _CharT, class _Traits, class _Allocator>
@@ -764,7 +625,7 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const basic_string& __str,
size_type __pos) const _NOEXCEPT
-@@ -3365,7 +3401,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(__self_view __sv,
+@@ -3658,7 +3687,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const basic_string&
}
template<class _CharT, class _Traits, class _Allocator>
@@ -773,33 +634,16 @@
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s,
size_type __pos) const _NOEXCEPT
-@@ -3388,7 +3424,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(value_type __c,
+@@ -3681,7 +3710,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(value_type __c,
// compare
template <class _CharT, class _Traits, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
int
- basic_string<_CharT, _Traits, _Allocator>::compare(__self_view __sv) const _NOEXCEPT
- {
-@@ -3406,7 +3442,7 @@ basic_string<_CharT, _Traits, _Allocator>::compare(__self_view __sv) const _NOEX
- }
-
- template <class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- int
basic_string<_CharT, _Traits, _Allocator>::compare(const basic_string& __str) const _NOEXCEPT
{
-@@ -3458,6 +3494,7 @@ basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
-
- template <class _CharT, class _Traits, class _Allocator>
- template <class _Tp>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- typename enable_if
- <
- __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,
-@@ -3474,6 +3511,7 @@ basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
+@@ -3742,6 +3771,7 @@ basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
}
template <class _CharT, class _Traits, class _Allocator>
@@ -807,23 +651,7 @@
int
basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
size_type __n1,
-@@ -3485,6 +3523,7 @@ basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
- }
-
- template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- int
- basic_string<_CharT, _Traits, _Allocator>::compare(const value_type* __s) const _NOEXCEPT
- {
-@@ -3493,6 +3532,7 @@ basic_string<_CharT, _Traits, _Allocator>::compare(const value_type* __s) const
- }
-
- template <class _CharT, class _Traits, class _Allocator>
-+CHROMIUM_LIBCPP_NEVER_INLINE
- int
- basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
- size_type __n1,
-@@ -3523,7 +3563,7 @@ basic_string<_CharT, _Traits, _Allocator>::__invariants() const
+@@ -3785,7 +3815,7 @@ basic_string<_CharT, _Traits, _Allocator>::__invariants() const
// operator==
template<class _CharT, class _Traits, class _Allocator>
@@ -832,7 +660,7 @@
bool
operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT
-@@ -3535,7 +3575,7 @@ operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
+@@ -3797,7 +3827,7 @@ operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
}
template<class _Allocator>
@@ -841,25 +669,7 @@
bool
operator==(const basic_string<char, char_traits<char>, _Allocator>& __lhs,
const basic_string<char, char_traits<char>, _Allocator>& __rhs) _NOEXCEPT
-@@ -3554,7 +3594,7 @@ operator==(const basic_string<char, char_traits<char>, _Allocator>& __lhs,
- }
-
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- bool
- operator==(const _CharT* __lhs,
- const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT
-@@ -3567,7 +3607,7 @@ operator==(const _CharT* __lhs,
- }
-
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- bool
- operator==(const basic_string<_CharT,_Traits,_Allocator>& __lhs,
- const _CharT* __rhs) _NOEXCEPT
-@@ -3725,6 +3765,7 @@ operator>=(const _CharT* __lhs,
+@@ -3981,6 +4011,7 @@ operator>=(const _CharT* __lhs,
// operator +
template<class _CharT, class _Traits, class _Allocator>
@@ -867,7 +677,7 @@
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
const basic_string<_CharT, _Traits, _Allocator>& __rhs)
-@@ -3738,6 +3779,7 @@ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
+@@ -3994,6 +4025,7 @@ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
}
template<class _CharT, class _Traits, class _Allocator>
@@ -875,7 +685,7 @@
basic_string<_CharT, _Traits, _Allocator>
operator+(const _CharT* __lhs , const basic_string<_CharT,_Traits,_Allocator>& __rhs)
{
-@@ -3750,6 +3792,7 @@ operator+(const _CharT* __lhs , const basic_string<_CharT,_Traits,_Allocator>& _
+@@ -4006,6 +4038,7 @@ operator+(const _CharT* __lhs , const basic_string<_CharT,_Traits,_Allocator>& _
}
template<class _CharT, class _Traits, class _Allocator>
@@ -883,7 +693,7 @@
basic_string<_CharT, _Traits, _Allocator>
operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Allocator>& __rhs)
{
-@@ -3761,6 +3804,7 @@ operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Allocator>& __rhs)
+@@ -4017,6 +4050,7 @@ operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Allocator>& __rhs)
}
template<class _CharT, class _Traits, class _Allocator>
@@ -891,7 +701,7 @@
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs)
{
-@@ -3773,6 +3817,7 @@ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT*
+@@ -4029,6 +4063,7 @@ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT*
}
template<class _CharT, class _Traits, class _Allocator>
@@ -899,47 +709,11 @@
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, _CharT __rhs)
{
-@@ -3786,7 +3831,7 @@ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, _CharT __rhs)
- #ifndef _LIBCPP_CXX03_LANG
-
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>
- operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs)
- {
-@@ -3794,7 +3839,7 @@ operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, const basic_string<
- }
-
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>
- operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs)
- {
-@@ -3802,7 +3847,7 @@ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, basic_string<_
- }
-
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>
- operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs)
- {
-@@ -3810,7 +3855,7 @@ operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, basic_string<_CharT
- }
-
- template<class _CharT, class _Traits, class _Allocator>
--inline _LIBCPP_INLINE_VISIBILITY
-+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- basic_string<_CharT, _Traits, _Allocator>
- operator+(const _CharT* __lhs , basic_string<_CharT,_Traits,_Allocator>&& __rhs)
- {
-diff --git a/sources/cxx-stl/llvm-libc++/include/vector b/sources/cxx-stl/llvm-libc++/include/vector
-index 6e9920a0..a7211e6d 100644
---- a/sources/cxx-stl/llvm-libc++/include/vector
-+++ b/sources/cxx-stl/llvm-libc++/include/vector
-@@ -358,7 +358,9 @@ protected:
+diff --git a/sources/cxx-stl/llvm-libc++/libcxx/include/vector b/sources/cxx-stl/llvm-libc++/libcxx/include/vector
+index 2cc23e5c..78e53671 100644
+--- a/sources/cxx-stl/llvm-libc++/libcxx/include/vector
++++ b/sources/cxx-stl/llvm-libc++/libcxx/include/vector
+@@ -374,7 +374,9 @@ protected:
size_type capacity() const _NOEXCEPT
{return static_cast<size_type>(__end_cap() - __begin_);}
@@ -950,7 +724,7 @@
void __destruct_at_end(pointer __new_last) _NOEXCEPT;
_LIBCPP_INLINE_VISIBILITY
-@@ -404,7 +406,7 @@ private:
+@@ -440,7 +442,7 @@ private:
};
template <class _Tp, class _Allocator>
@@ -959,7 +733,7 @@
void
__vector_base<_Tp, _Allocator>::__destruct_at_end(pointer __new_last) _NOEXCEPT
{
-@@ -674,13 +676,15 @@ public:
+@@ -698,12 +700,15 @@ public:
const value_type* data() const _NOEXCEPT
{return _VSTD::__to_raw_pointer(this->__begin_);}
@@ -967,18 +741,18 @@
+ // push_back and emplace_back saved 270kb (Sept 2017).
+ // For more context: https://crbug.com/738155
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY void push_back(const_reference __x);
-
- #ifndef _LIBCPP_CXX03_LANG
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- _LIBCPP_INLINE_VISIBILITY void push_back(value_type&& __x);
+ CHROMIUM_LIBCPP_INLINE_VISIBILITY void push_back(value_type&& __x);
-
+ #ifndef _LIBCPP_HAS_NO_VARIADICS
template <class... _Args>
-- _LIBCPP_INLINE_VISIBILITY
-+ CHROMIUM_LIBCPP_INLINE_VISIBILITY
- #if _LIBCPP_STD_VER > 14
- reference emplace_back(_Args&&... __args);
- #else
-@@ -1572,7 +1576,7 @@ vector<_Tp, _Allocator>::__push_back_slow_path(_Up& __x)
+- void emplace_back(_Args&&... __args);
++ CHROMIUM_LIBCPP_INLINE_VISIBILITY
++ void emplace_back(_Args&&... __args);
+ #endif // _LIBCPP_HAS_NO_VARIADICS
+ #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
+ void pop_back();
+@@ -1576,7 +1581,7 @@ vector<_Tp, _Allocator>::__push_back_slow_path(_Up& __x)
}
template <class _Tp, class _Allocator>
@@ -987,8 +761,8 @@
void
vector<_Tp, _Allocator>::push_back(const_reference __x)
{
-@@ -1591,7 +1595,7 @@ vector<_Tp, _Allocator>::push_back(const_reference __x)
- #ifndef _LIBCPP_CXX03_LANG
+@@ -1594,7 +1599,7 @@ vector<_Tp, _Allocator>::push_back(const_reference __x)
+ #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
@@ -996,15 +770,15 @@
void
vector<_Tp, _Allocator>::push_back(value_type&& __x)
{
-@@ -1623,7 +1627,7 @@ vector<_Tp, _Allocator>::__emplace_back_slow_path(_Args&&... __args)
+@@ -1627,7 +1632,7 @@ vector<_Tp, _Allocator>::__emplace_back_slow_path(_Args&&... __args)
template <class _Tp, class _Allocator>
template <class... _Args>
--inline
+-inline _LIBCPP_INLINE_VISIBILITY
+inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
- #if _LIBCPP_STD_VER > 14
- typename vector<_Tp, _Allocator>::reference
- #else
+ void
+ vector<_Tp, _Allocator>::emplace_back(_Args&&... __args)
+ {
--
-2.15.0.531.g2ccb3012c9-goog
+2.14.1.821.g8fa685d3b7-goog
diff --git a/sources/cxx-stl/llvm-libc++/include/__config b/sources/cxx-stl/llvm-libc++/include/__config
index b784e2a..b7acd66 100644
--- a/sources/cxx-stl/llvm-libc++/include/__config
+++ b/sources/cxx-stl/llvm-libc++/include/__config
@@ -138,46 +138,6 @@
#define __libcpp_has_include(__x) 0
#endif
-// When CHROMIUM_CXX_TWEAK_INLINES is defined, certain STL types will be tweaked
-// to ensure that their constructor, or certain methods, are never inlined. This can
-// surprisingly reduce the size of the Chrome binary by more than 3%, with little
-// impact on performance.
-//
-// This is controlled by modifying some libc++ headers using the following macros:
-//
-// CHROMIUM_LIBCPP_INLINE_VISIBILITY:
-// Replaces an _existing_ _LIBCPP_INLINE_VISIBILITY use on a target method.
-// I.e. this indicates libc++ methods that were already possibly inlined,
-// but that will never be when the tweak is active.
-//
-// Equivalent to _LIBCPP_INLINE_VISIBILITY if the tweak is disabled.
-//
-// CHROMIUM_LIBCPP_NEVER_INLINE:
-// This is added to ensure that a target method, which was _not_ already
-// tagged with _LIBCPP_INLINE_VISIBILITY, will never be inlined.
-//
-// This is equivalent to adding CHROMIUM_LIBCPP_INLINE_VISIBILITY, except
-// that it helps spot the places where _LIBCPP_INLINE_VISIBILITY was not
-// used in the original libc++ header.
-//
-// Empty if the tweak is disabled.
-//
-// CHROMIUM_LIBCPP_ALWAYS_INLINE:
-// This is added to ensure that a target method, which is _not_ already
-// tagged with _LIBCPP_INLINE_VISIBILITY, will always be inlined.
-//
-// Empty if the tweak is disabled.
-//
-#ifdef CHROMIUM_CXX_TWEAK_INLINES
-#define CHROMIUM_LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"), noinline))
-#define CHROMIUM_LIBCPP_ALWAYS_INLINE __attribute__ ((__visibility__("hidden"), __always_inline__))
-#define CHROMIUM_LIBCPP_NEVER_INLINE __attribute__ ((__visibility__("hidden"), noinline))
-#else
-#define CHROMIUM_LIBCPP_INLINE_VISIBILITY _LIBCPP_INLINE_VISIBILITY
-#define CHROMIUM_LIBCPP_ALWAYS_INLINE
-#define CHROMIUM_LIBCPP_NEVER_INLINE
-#endif
-
#if defined(__clang__)
#define _LIBCPP_COMPILER_CLANG
# ifndef __apple_build_version__
diff --git a/sources/cxx-stl/llvm-libc++/include/string b/sources/cxx-stl/llvm-libc++/include/string
index 5a31af0..cf42f52 100644
--- a/sources/cxx-stl/llvm-libc++/include/string
+++ b/sources/cxx-stl/llvm-libc++/include/string
@@ -536,28 +536,23 @@
// basic_string
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __x,
const basic_string<_CharT, _Traits, _Allocator>& __y);
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>
operator+(const _CharT* __x, const basic_string<_CharT,_Traits,_Allocator>& __y);
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>
operator+(_CharT __x, const basic_string<_CharT,_Traits,_Allocator>& __y);
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, const _CharT* __y);
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, _CharT __y);
@@ -750,24 +745,21 @@
public:
static const size_type npos = -1;
- // Adding CHROMIUM defines to constructors and operator+ saved 300kb (Sept 2017).
- // Made __init __always_inline__, and functions that call it (constructors and operator+) noinline.
- // For more context: https://crbug.com/738155
- CHROMIUM_LIBCPP_INLINE_VISIBILITY basic_string()
+ _LIBCPP_INLINE_VISIBILITY basic_string()
_NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);
- CHROMIUM_LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)
+ _LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)
#if _LIBCPP_STD_VER <= 14
_NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value);
#else
_NOEXCEPT;
#endif
- CHROMIUM_LIBCPP_NEVER_INLINE basic_string(const basic_string& __str);
- CHROMIUM_LIBCPP_NEVER_INLINE basic_string(const basic_string& __str, const allocator_type& __a);
+ basic_string(const basic_string& __str);
+ basic_string(const basic_string& __str, const allocator_type& __a);
#ifndef _LIBCPP_CXX03_LANG
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string(basic_string&& __str)
#if _LIBCPP_STD_VER <= 14
_NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value);
@@ -775,24 +767,23 @@
_NOEXCEPT;
#endif
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string(basic_string&& __str, const allocator_type& __a);
#endif // _LIBCPP_CXX03_LANG
- CHROMIUM_LIBCPP_INLINE_VISIBILITY basic_string(const _CharT* __s);
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY basic_string(const _CharT* __s);
+ _LIBCPP_INLINE_VISIBILITY
basic_string(const _CharT* __s, const _Allocator& __a);
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string(const _CharT* __s, size_type __n);
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string(const _CharT* __s, size_type __n, const _Allocator& __a);
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string(size_type __n, _CharT __c);
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string(size_type __n, _CharT __c, const _Allocator& __a);
- CHROMIUM_LIBCPP_NEVER_INLINE
basic_string(const basic_string& __str, size_type __pos, size_type __n,
const _Allocator& __a = _Allocator());
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string(const basic_string& __str, size_type __pos,
const _Allocator& __a = _Allocator());
template<class _Tp>
@@ -800,20 +791,20 @@
basic_string(const _Tp& __t, size_type __pos, size_type __n,
const allocator_type& __a = allocator_type(),
typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type* = 0);
- CHROMIUM_LIBCPP_INLINE_VISIBILITY explicit
+ _LIBCPP_INLINE_VISIBILITY explicit
basic_string(__self_view __sv);
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string(__self_view __sv, const _Allocator& __a);
template<class _InputIterator>
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string(_InputIterator __first, _InputIterator __last);
template<class _InputIterator>
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string(_InputIterator __first, _InputIterator __last, const allocator_type& __a);
#ifndef _LIBCPP_CXX03_LANG
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string(initializer_list<_CharT> __il);
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string(initializer_list<_CharT> __il, const _Allocator& __a);
#endif // _LIBCPP_CXX03_LANG
@@ -827,13 +818,13 @@
#ifndef _LIBCPP_CXX03_LANG
template <class = void>
#endif
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string& operator=(__self_view __sv) {return assign(__sv);}
#ifndef _LIBCPP_CXX03_LANG
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string& operator=(basic_string&& __str)
_NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value));
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string& operator=(initializer_list<value_type> __il) {return assign(__il.begin(), __il.size());}
#endif
_LIBCPP_INLINE_VISIBILITY basic_string& operator=(const value_type* __s) {return assign(__s);}
@@ -1093,13 +1084,13 @@
basic_string& replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2);
basic_string& replace(size_type __pos, size_type __n1, const value_type* __s);
basic_string& replace(size_type __pos, size_type __n1, size_type __n2, value_type __c);
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string& replace(const_iterator __i1, const_iterator __i2, const basic_string& __str);
_LIBCPP_INLINE_VISIBILITY
basic_string& replace(const_iterator __i1, const_iterator __i2, __self_view __sv) { return replace(__i1 - begin(), __i2 - __i1, __sv); }
_LIBCPP_INLINE_VISIBILITY
basic_string& replace(const_iterator __i1, const_iterator __i2, const value_type* __s, size_type __n);
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
basic_string& replace(const_iterator __i1, const_iterator __i2, const value_type* __s);
_LIBCPP_INLINE_VISIBILITY
basic_string& replace(const_iterator __i1, const_iterator __i2, size_type __n, value_type __c);
@@ -1142,77 +1133,67 @@
_LIBCPP_INLINE_VISIBILITY
allocator_type get_allocator() const _NOEXCEPT {return __alloc();}
- // Adding CHROMIUM defines to find methods saved 20kb (Sept 2017).
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_NEVER_INLINE
size_type find(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_NEVER_INLINE
size_type find(value_type __c, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type rfind(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type rfind(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_NEVER_INLINE
size_type rfind(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type rfind(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;
- CHROMIUM_LIBCPP_NEVER_INLINE
size_type rfind(value_type __c, size_type __pos = npos) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_first_of(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_first_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_NEVER_INLINE
size_type find_first_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_first_of(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_first_of(value_type __c, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_last_of(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_last_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_NEVER_INLINE
size_type find_last_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_last_of(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_last_of(value_type __c, size_type __pos = npos) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_first_not_of(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_first_not_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_NEVER_INLINE
size_type find_first_not_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_first_not_of(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_first_not_of(value_type __c, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_last_not_of(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_last_not_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;
- CHROMIUM_LIBCPP_NEVER_INLINE
size_type find_last_not_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_last_not_of(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
size_type find_last_not_of(value_type __c, size_type __pos = npos) const _NOEXCEPT;
- // Adding CHROMIUM defines to compare and operator== saved 100kb (Sept 2017).
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
int compare(const basic_string& __str) const _NOEXCEPT;
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
int compare(__self_view __sv) const _NOEXCEPT;
_LIBCPP_INLINE_VISIBILITY
int compare(size_type __pos1, size_type __n1, __self_view __sv) const;
@@ -1229,7 +1210,6 @@
compare(size_type __pos1, size_type __n1, const _Tp& __t, size_type __pos2, size_type __n2=npos) const;
int compare(const value_type* __s) const _NOEXCEPT;
int compare(size_type __pos1, size_type __n1, const value_type* __s) const;
- CHROMIUM_LIBCPP_NEVER_INLINE
int compare(size_type __pos1, size_type __n1, const value_type* __s, size_type __n2) const;
_LIBCPP_INLINE_VISIBILITY bool __invariants() const;
@@ -1351,11 +1331,11 @@
__align_it<sizeof(value_type) < __alignment ?
__alignment/sizeof(value_type) : 1 > (__s+1)) - 1;}
- inline CHROMIUM_LIBCPP_NEVER_INLINE
+ inline
void __init(const value_type* __s, size_type __sz, size_type __reserve);
- inline CHROMIUM_LIBCPP_NEVER_INLINE
+ inline
void __init(const value_type* __s, size_type __sz);
- inline CHROMIUM_LIBCPP_NEVER_INLINE
+ inline
void __init(size_type __n, value_type __c);
template <class _InputIterator>
@@ -1365,7 +1345,7 @@
__is_exactly_input_iterator<_InputIterator>::value,
void
>::type
- CHROMIUM_LIBCPP_ALWAYS_INLINE __init(_InputIterator __first, _InputIterator __last);
+ __init(_InputIterator __first, _InputIterator __last);
template <class _ForwardIterator>
inline
@@ -1374,7 +1354,7 @@
__is_forward_iterator<_ForwardIterator>::value,
void
>::type
- CHROMIUM_LIBCPP_ALWAYS_INLINE __init(_ForwardIterator __first, _ForwardIterator __last);
+ __init(_ForwardIterator __first, _ForwardIterator __last);
void __grow_by(size_type __old_cap, size_type __delta_cap, size_type __old_sz,
size_type __n_copy, size_type __n_del, size_type __n_add = 0);
@@ -1506,7 +1486,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string()
_NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
{
@@ -1517,7 +1497,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a)
#if _LIBCPP_STD_VER <= 14
_NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)
@@ -1533,7 +1513,6 @@
}
template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_ALWAYS_INLINE
void basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s,
size_type __sz,
size_type __reserve)
@@ -1559,7 +1538,6 @@
}
template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_ALWAYS_INLINE
void
basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz)
{
@@ -1584,7 +1562,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s)
{
_LIBCPP_ASSERT(__s != nullptr, "basic_string(const char*) detected nullptr");
@@ -1595,7 +1573,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, const _Allocator& __a)
: __r_(__second_tag(), __a)
{
@@ -1607,7 +1585,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_type __n)
{
_LIBCPP_ASSERT(__n == 0 || __s != nullptr, "basic_string(const char*, n) detected nullptr");
@@ -1618,7 +1596,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_type __n, const _Allocator& __a)
: __r_(__second_tag(), __a)
{
@@ -1630,7 +1608,6 @@
}
template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str)
: __r_(__second_tag(), __alloc_traits::select_on_container_copy_construction(__str.__alloc()))
{
@@ -1644,7 +1621,6 @@
}
template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>::basic_string(
const basic_string& __str, const allocator_type& __a)
: __r_(__second_tag(), __a)
@@ -1661,7 +1637,7 @@
#ifndef _LIBCPP_CXX03_LANG
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str)
#if _LIBCPP_STD_VER <= 14
_NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)
@@ -1679,7 +1655,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str, const allocator_type& __a)
: __r_(__second_tag(), __a)
{
@@ -1700,7 +1676,6 @@
#endif // _LIBCPP_CXX03_LANG
template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_ALWAYS_INLINE
void
basic_string<_CharT, _Traits, _Allocator>::__init(size_type __n, value_type __c)
{
@@ -1725,7 +1700,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __c)
{
__init(__n, __c);
@@ -1735,7 +1710,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __c, const _Allocator& __a)
: __r_(__second_tag(), __a)
{
@@ -1746,7 +1721,6 @@
}
template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str,
size_type __pos, size_type __n,
const _Allocator& __a)
@@ -1762,7 +1736,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, size_type __pos,
const _Allocator& __a)
: __r_(__second_tag(), __a)
@@ -1778,7 +1752,6 @@
template <class _CharT, class _Traits, class _Allocator>
template <class _Tp>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>::basic_string(
const _Tp& __t, size_type __pos, size_type __n, const allocator_type& __a,
typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type *)
@@ -1792,7 +1765,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv)
{
__init(__sv.data(), __sv.size());
@@ -1802,7 +1775,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv, const _Allocator& __a)
: __r_(__second_tag(), __a)
{
@@ -1814,7 +1787,6 @@
template <class _CharT, class _Traits, class _Allocator>
template <class _InputIterator>
-CHROMIUM_LIBCPP_ALWAYS_INLINE
typename enable_if
<
__is_exactly_input_iterator<_InputIterator>::value,
@@ -1842,7 +1814,6 @@
template <class _CharT, class _Traits, class _Allocator>
template <class _ForwardIterator>
-CHROMIUM_LIBCPP_ALWAYS_INLINE
typename enable_if
<
__is_forward_iterator<_ForwardIterator>::value,
@@ -1874,7 +1845,7 @@
template <class _CharT, class _Traits, class _Allocator>
template<class _InputIterator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first, _InputIterator __last)
{
__init(__first, __last);
@@ -1885,7 +1856,7 @@
template <class _CharT, class _Traits, class _Allocator>
template<class _InputIterator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first, _InputIterator __last,
const allocator_type& __a)
: __r_(__second_tag(), __a)
@@ -1899,7 +1870,7 @@
#ifndef _LIBCPP_CXX03_LANG
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>::basic_string(
initializer_list<_CharT> __il)
{
@@ -1910,7 +1881,8 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
+
basic_string<_CharT, _Traits, _Allocator>::basic_string(
initializer_list<_CharT> __il, const _Allocator& __a)
: __r_(__second_tag(), __a)
@@ -2038,7 +2010,6 @@
}
template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>&
basic_string<_CharT, _Traits, _Allocator>::operator=(value_type __c)
{
@@ -2060,7 +2031,6 @@
}
template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>&
basic_string<_CharT, _Traits, _Allocator>::operator=(const basic_string& __str)
{
@@ -2104,7 +2074,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>&
basic_string<_CharT, _Traits, _Allocator>::operator=(basic_string&& __str)
_NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value))
@@ -3098,7 +3068,6 @@
};
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,
size_type __pos,
@@ -3110,7 +3079,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find(const basic_string& __str,
size_type __pos) const _NOEXCEPT
@@ -3130,7 +3099,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,
size_type __pos) const _NOEXCEPT
@@ -3152,7 +3121,6 @@
// rfind
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,
size_type __pos,
@@ -3164,7 +3132,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::rfind(const basic_string& __str,
size_type __pos) const _NOEXCEPT
@@ -3174,7 +3142,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::rfind(__self_view __sv,
size_type __pos) const _NOEXCEPT
@@ -3184,7 +3152,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,
size_type __pos) const _NOEXCEPT
@@ -3206,7 +3174,6 @@
// find_first_of
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
size_type __pos,
@@ -3218,7 +3185,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __str,
size_type __pos) const _NOEXCEPT
@@ -3228,7 +3195,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_of(__self_view __sv,
size_type __pos) const _NOEXCEPT
@@ -3238,7 +3205,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
size_type __pos) const _NOEXCEPT
@@ -3260,7 +3227,6 @@
// find_last_of
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
size_type __pos,
@@ -3272,7 +3238,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_last_of(const basic_string& __str,
size_type __pos) const _NOEXCEPT
@@ -3292,7 +3258,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
size_type __pos) const _NOEXCEPT
@@ -3314,7 +3280,6 @@
// find_first_not_of
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s,
size_type __pos,
@@ -3326,7 +3291,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const basic_string& __str,
size_type __pos) const _NOEXCEPT
@@ -3346,7 +3311,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s,
size_type __pos) const _NOEXCEPT
@@ -3369,7 +3334,6 @@
// find_last_not_of
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s,
size_type __pos,
@@ -3381,7 +3345,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const basic_string& __str,
size_type __pos) const _NOEXCEPT
@@ -3401,7 +3365,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
typename basic_string<_CharT, _Traits, _Allocator>::size_type
basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s,
size_type __pos) const _NOEXCEPT
@@ -3424,7 +3388,7 @@
// compare
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
int
basic_string<_CharT, _Traits, _Allocator>::compare(__self_view __sv) const _NOEXCEPT
{
@@ -3442,7 +3406,7 @@
}
template <class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
int
basic_string<_CharT, _Traits, _Allocator>::compare(const basic_string& __str) const _NOEXCEPT
{
@@ -3494,7 +3458,6 @@
template <class _CharT, class _Traits, class _Allocator>
template <class _Tp>
-CHROMIUM_LIBCPP_NEVER_INLINE
typename enable_if
<
__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,
@@ -3511,7 +3474,6 @@
}
template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
int
basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
size_type __n1,
@@ -3523,7 +3485,6 @@
}
template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
int
basic_string<_CharT, _Traits, _Allocator>::compare(const value_type* __s) const _NOEXCEPT
{
@@ -3532,7 +3493,6 @@
}
template <class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
int
basic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,
size_type __n1,
@@ -3563,7 +3523,7 @@
// operator==
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
bool
operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT
@@ -3575,7 +3535,7 @@
}
template<class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
bool
operator==(const basic_string<char, char_traits<char>, _Allocator>& __lhs,
const basic_string<char, char_traits<char>, _Allocator>& __rhs) _NOEXCEPT
@@ -3594,7 +3554,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
bool
operator==(const _CharT* __lhs,
const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT
@@ -3607,7 +3567,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
bool
operator==(const basic_string<_CharT,_Traits,_Allocator>& __lhs,
const _CharT* __rhs) _NOEXCEPT
@@ -3765,7 +3725,6 @@
// operator +
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
const basic_string<_CharT, _Traits, _Allocator>& __rhs)
@@ -3779,7 +3738,6 @@
}
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>
operator+(const _CharT* __lhs , const basic_string<_CharT,_Traits,_Allocator>& __rhs)
{
@@ -3792,7 +3750,6 @@
}
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>
operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Allocator>& __rhs)
{
@@ -3804,7 +3761,6 @@
}
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs)
{
@@ -3817,7 +3773,6 @@
}
template<class _CharT, class _Traits, class _Allocator>
-CHROMIUM_LIBCPP_NEVER_INLINE
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, _CharT __rhs)
{
@@ -3831,7 +3786,7 @@
#ifndef _LIBCPP_CXX03_LANG
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>
operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs)
{
@@ -3839,7 +3794,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs)
{
@@ -3847,7 +3802,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>
operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs)
{
@@ -3855,7 +3810,7 @@
}
template<class _CharT, class _Traits, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
basic_string<_CharT, _Traits, _Allocator>
operator+(const _CharT* __lhs , basic_string<_CharT,_Traits,_Allocator>&& __rhs)
{
diff --git a/sources/cxx-stl/llvm-libc++/include/vector b/sources/cxx-stl/llvm-libc++/include/vector
index a7211e6..6e9920a 100644
--- a/sources/cxx-stl/llvm-libc++/include/vector
+++ b/sources/cxx-stl/llvm-libc++/include/vector
@@ -358,9 +358,7 @@
size_type capacity() const _NOEXCEPT
{return static_cast<size_type>(__end_cap() - __begin_);}
- // Saved 33kb (Sept 2017).
- // For more context: https://crbug.com/738155
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
void __destruct_at_end(pointer __new_last) _NOEXCEPT;
_LIBCPP_INLINE_VISIBILITY
@@ -406,7 +404,7 @@
};
template <class _Tp, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
void
__vector_base<_Tp, _Allocator>::__destruct_at_end(pointer __new_last) _NOEXCEPT
{
@@ -676,15 +674,13 @@
const value_type* data() const _NOEXCEPT
{return _VSTD::__to_raw_pointer(this->__begin_);}
- // push_back and emplace_back saved 270kb (Sept 2017).
- // For more context: https://crbug.com/738155
- CHROMIUM_LIBCPP_INLINE_VISIBILITY void push_back(const_reference __x);
+ _LIBCPP_INLINE_VISIBILITY void push_back(const_reference __x);
#ifndef _LIBCPP_CXX03_LANG
- CHROMIUM_LIBCPP_INLINE_VISIBILITY void push_back(value_type&& __x);
+ _LIBCPP_INLINE_VISIBILITY void push_back(value_type&& __x);
template <class... _Args>
- CHROMIUM_LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_INLINE_VISIBILITY
#if _LIBCPP_STD_VER > 14
reference emplace_back(_Args&&... __args);
#else
@@ -1576,7 +1572,7 @@
}
template <class _Tp, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
void
vector<_Tp, _Allocator>::push_back(const_reference __x)
{
@@ -1595,7 +1591,7 @@
#ifndef _LIBCPP_CXX03_LANG
template <class _Tp, class _Allocator>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY
void
vector<_Tp, _Allocator>::push_back(value_type&& __x)
{
@@ -1627,7 +1623,7 @@
template <class _Tp, class _Allocator>
template <class... _Args>
-inline CHROMIUM_LIBCPP_INLINE_VISIBILITY
+inline
#if _LIBCPP_STD_VER > 14
typename vector<_Tp, _Allocator>::reference
#else