]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - libstdc++-v3/include/bits/stl_vector.h
libstdc++: Fix code size regressions in std::vector [PR110060]
[thirdparty/gcc.git] / libstdc++-v3 / include / bits / stl_vector.h
index e593be443bc2a0a941b1aad8ce1bb7ed9f120c15..70ced3d101fbecd2d1a0933a7e482ebb521259b4 100644 (file)
@@ -389,23 +389,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 
     protected:
 
-      __attribute__((__always_inline__))
-      _GLIBCXX20_CONSTEXPR void
-      _M_invariant() const
-      {
-#if __OPTIMIZE__
-       if (this->_M_impl._M_finish < this->_M_impl._M_start)
-         __builtin_unreachable();
-       if (this->_M_impl._M_finish > this->_M_impl._M_end_of_storage)
-         __builtin_unreachable();
-
-       size_t __sz = this->_M_impl._M_finish - this->_M_impl._M_start;
-       size_t __cap = this->_M_impl._M_end_of_storage - this->_M_impl._M_start;
-       if (__sz > __cap)
-         __builtin_unreachable();
-#endif
-      }
-
       _GLIBCXX20_CONSTEXPR
       void
       _M_create_storage(size_t __n)
@@ -1005,10 +988,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
       size_type
       size() const _GLIBCXX_NOEXCEPT
-      {
-       _Base::_M_invariant();
-       return size_type(this->_M_impl._M_finish - this->_M_impl._M_start);
-      }
+      { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
 
       /**  Returns the size() of the largest possible %vector.  */
       _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
@@ -1095,7 +1075,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       size_type
       capacity() const _GLIBCXX_NOEXCEPT
       {
-       _Base::_M_invariant();
        return size_type(this->_M_impl._M_end_of_storage
                           - this->_M_impl._M_start);
       }