]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Remove redundant zeroing in std::bitset::operator>>= [PR113806]
authorJonathan Wakely <jwakely@redhat.com>
Thu, 8 Feb 2024 15:47:19 +0000 (15:47 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Thu, 15 Feb 2024 11:43:21 +0000 (11:43 +0000)
The unused bits in the high word are already zero before this operation.
Shifting the used bits to the right cannot affect the unused bits, so we
don't need to sanitize them.

libstdc++-v3/ChangeLog:

PR libstdc++/113806
* include/std/bitset (bitset::operator>>=): Remove redundant
call to _M_do_sanitize.

libstdc++-v3/include/std/bitset

index 16c4040f532f7e774f36a897d45b9f0273dedc76..ccd6d19f7a40113645aa209ef647f951a175e002 100644 (file)
@@ -1094,10 +1094,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       operator>>=(size_t __position) _GLIBCXX_NOEXCEPT
       {
        if (__builtin_expect(__position < _Nb, 1))
-         {
-           this->_M_do_right_shift(__position);
-           this->_M_do_sanitize();
-         }
+         this->_M_do_right_shift(__position);
        else
          this->_M_do_reset();
        return *this;