]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR libstdc++/58804 (dynamic_bitset<> uses popcountl on long long)
authorEdward Smith-Rowland <3dw4rd@verizon.net>
Mon, 21 Oct 2013 13:52:39 +0000 (13:52 +0000)
committerEdward Smith-Rowland <emsr@gcc.gnu.org>
Mon, 21 Oct 2013 13:52:39 +0000 (13:52 +0000)
2013-10-20  Edward Smith-Rowland  <3dw4rd@verizon.net>

PR libstdc++/58804
PR libstdc++/58729
* include/tr2/dynamic_bitset
(__dynamic_bitset_base<_WordT, _Alloc>::_M_are_all_aux,
__dynamic_bitset_base<_WordT, _Alloc>::_M_do_count):
Use __builtin_popcountll() instead of __builtin_popcountl().
* include/tr2/dynamic_bitset.tcc
(__dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_first,
__dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_next):
Use __builtin_ctzll() instead of __builtin_ctzl().

From-SVN: r203893

libstdc++-v3/ChangeLog
libstdc++-v3/include/tr2/dynamic_bitset
libstdc++-v3/include/tr2/dynamic_bitset.tcc

index 0957953de2fe5a33816520cc6ea13d1f08c9ea6a..1a4f6ebb5aeacea45dc532b5865e6c1c36cd41d4 100644 (file)
@@ -1,3 +1,16 @@
+2013-10-21  Edward Smith-Rowland  <3dw4rd@verizon.net>
+
+       PR libstdc++/58804
+       PR libstdc++/58729
+       * include/tr2/dynamic_bitset
+       (__dynamic_bitset_base<_WordT, _Alloc>::_M_are_all_aux,
+       __dynamic_bitset_base<_WordT, _Alloc>::_M_do_count):
+       Use __builtin_popcountll() instead of __builtin_popcountl().
+       * include/tr2/dynamic_bitset.tcc
+       (__dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_first,
+       __dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_next):
+       Use __builtin_ctzll() instead of __builtin_ctzl().
+
 2013-10-20  Tim Shen  <timshen91@gmail.com>
 
        * include/bits/regex.h: Remove virtual class _Automaton.
index 5cd05f53c54f8a0929b664f38e7f5c419632b29d..7d4d39256e6f7216bfbf6a03d14c1ac96d6ae1f2 100644 (file)
@@ -287,7 +287,7 @@ public:
          if (_M_w[__i] != ~static_cast<block_type>(0))
            return 0;
        return ((this->_M_w.size() - 1) * _S_bits_per_block
-               + __builtin_popcountl(this->_M_hiword()));
+               + __builtin_popcountll(this->_M_hiword()));
       }
 
       bool
@@ -332,7 +332,7 @@ public:
       {
        size_t __result = 0;
        for (size_t __i = 0; __i < this->_M_w.size(); ++__i)
-         __result += __builtin_popcountl(this->_M_w[__i]);
+         __result += __builtin_popcountll(this->_M_w[__i]);
        return __result;
       }
 
index 016fdf0bd824148cc75e07c7efff94e88e9662ef..02e647acaa5be79ee7653c718ff50579187440ca 100644 (file)
@@ -131,7 +131,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
          _WordT __thisword = this->_M_w[__i];
          if (__thisword != static_cast<_WordT>(0))
            return (__i * _S_bits_per_block
-                   + __builtin_ctzl(__thisword));
+                   + __builtin_ctzll(__thisword));
        }
       // not found, so return an indication of failure.
       return __not_found;
@@ -158,7 +158,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
       if (__thisword != static_cast<_WordT>(0))
        return (__i * _S_bits_per_block
-               + __builtin_ctzl(__thisword));
+               + __builtin_ctzll(__thisword));
 
       // check subsequent words
       for (++__i; __i < this->_M_w.size(); ++__i)
@@ -166,7 +166,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
          __thisword = this->_M_w[__i];
          if (__thisword != static_cast<_WordT>(0))
            return (__i * _S_bits_per_block
-                   + __builtin_ctzl(__thisword));
+                   + __builtin_ctzll(__thisword));
        }
       // not found, so return an indication of failure.
       return __not_found;