re PR libstdc++/55413 ([LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialize...
authorPaolo Carlini <paolo.carlini@oracle.com>
Tue, 20 Nov 2012 14:54:11 +0000 (14:54 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Tue, 20 Nov 2012 14:54:11 +0000 (14:54 +0000)
2012-11-20  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/55413
* include/bits/hashtable.h (_Hashtable<>::_M_rehash_aux): Initialize
__bbegin_bkt and __prev_bkt to avoid uninitialized warnings.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
dg-error line number.

From-SVN: r193663

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/hashtable.h
libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc

index 58616cd..f0a34f8 100644 (file)
@@ -1,3 +1,11 @@
+2012-11-20  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/55413
+       * include/bits/hashtable.h (_Hashtable<>::_M_rehash_aux): Initialize
+       __bbegin_bkt and __prev_bkt to avoid uninitialized warnings.
+       * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
+       dg-error line number.
+
 2012-11-20  Matthias Klose  <doko@ubuntu.com>
 
        * doc/doxygen/user.cfg.in (ALIASES). Escape sharp braces.
index 6242e20..fab6c7c 100644 (file)
@@ -1,7 +1,6 @@
 // hashtable.h header -*- C++ -*-
 
-// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012
-// Free Software Foundation, Inc.
+// Copyright (C) 2007-2012 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -1679,7 +1678,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       __bucket_type* __new_buckets = _M_allocate_buckets(__n);
       __node_type* __p = _M_begin();
       _M_before_begin()._M_nxt = nullptr;
-      std::size_t __bbegin_bkt;
+      std::size_t __bbegin_bkt = 0;
       while (__p)
        {
          __node_type* __next = __p->_M_next();
@@ -1720,8 +1719,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
       __node_type* __p = _M_begin();
       _M_before_begin()._M_nxt = nullptr;
-      std::size_t __bbegin_bkt;
-      std::size_t __prev_bkt;
+      std::size_t __bbegin_bkt = 0;
+      std::size_t __prev_bkt = 0;
       __node_type* __prev_p = nullptr;
       bool __check_bucket = false;
 
@@ -1749,8 +1748,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
            {
              if (__check_bucket)
                {
-                 // Check if we shall update the next bucket because of insertions
-                 // into __prev_bkt bucket.
+                 // Check if we shall update the next bucket because of
+                 // insertions into __prev_bkt bucket.
                  if (__prev_p->_M_nxt)
                    {
                      std::size_t __next_bkt
index f9e0b4f..e490fa3 100644 (file)
@@ -19,7 +19,7 @@
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// { dg-error "with noexcept" "" { target *-*-* } 248 }
+// { dg-error "with noexcept" "" { target *-*-* } 247 }
 
 #include <unordered_set>