Commit 25caa91e by Paolo Carlini Committed by Paolo Carlini

re PR libstdc++/55413 ([LTO] hashtable.h:1648 '__bbegin_bkt' may be used…

re PR libstdc++/55413 ([LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized])

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
parent 3263c9a3
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> 2012-11-20 Matthias Klose <doko@ubuntu.com>
* doc/doxygen/user.cfg.in (ALIASES). Escape sharp braces. * doc/doxygen/user.cfg.in (ALIASES). Escape sharp braces.
......
// hashtable.h header -*- C++ -*- // hashtable.h header -*- C++ -*-
// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 // Copyright (C) 2007-2012 Free Software Foundation, Inc.
// Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // 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 // software; you can redistribute it and/or modify it under the
...@@ -1679,7 +1678,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -1679,7 +1678,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__bucket_type* __new_buckets = _M_allocate_buckets(__n); __bucket_type* __new_buckets = _M_allocate_buckets(__n);
__node_type* __p = _M_begin(); __node_type* __p = _M_begin();
_M_before_begin()._M_nxt = nullptr; _M_before_begin()._M_nxt = nullptr;
std::size_t __bbegin_bkt; std::size_t __bbegin_bkt = 0;
while (__p) while (__p)
{ {
__node_type* __next = __p->_M_next(); __node_type* __next = __p->_M_next();
...@@ -1720,8 +1719,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -1720,8 +1719,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__node_type* __p = _M_begin(); __node_type* __p = _M_begin();
_M_before_begin()._M_nxt = nullptr; _M_before_begin()._M_nxt = nullptr;
std::size_t __bbegin_bkt; std::size_t __bbegin_bkt = 0;
std::size_t __prev_bkt; std::size_t __prev_bkt = 0;
__node_type* __prev_p = nullptr; __node_type* __prev_p = nullptr;
bool __check_bucket = false; bool __check_bucket = false;
...@@ -1749,8 +1748,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -1749,8 +1748,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ {
if (__check_bucket) if (__check_bucket)
{ {
// Check if we shall update the next bucket because of insertions // Check if we shall update the next bucket because of
// into __prev_bkt bucket. // insertions into __prev_bkt bucket.
if (__prev_p->_M_nxt) if (__prev_p->_M_nxt)
{ {
std::size_t __next_bkt std::size_t __next_bkt
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-error "with noexcept" "" { target *-*-* } 248 } // { dg-error "with noexcept" "" { target *-*-* } 247 }
#include <unordered_set> #include <unordered_set>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment