diff options
author | Dave Odell <evilalias@hotmail.com> | 2005-07-25 22:46:48 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2005-07-25 22:46:48 +0000 |
commit | 7f50ddeef61d29b1bbf09aa2862390d81f2f6c37 (patch) | |
tree | 5d2372c7e0928f28666239e77fe86518bfde6819 | |
parent | bfa653b3998cd5a4e6818c633a80ed9080d39274 (diff) | |
download | gcc-7f50ddeef61d29b1bbf09aa2862390d81f2f6c37.zip gcc-7f50ddeef61d29b1bbf09aa2862390d81f2f6c37.tar.gz gcc-7f50ddeef61d29b1bbf09aa2862390d81f2f6c37.tar.bz2 |
re PR libstdc++/23053 (Const-correctness issue in TR1 hashtable)
2005-07-25 Dave Odell <evilalias@hotmail.com>
PR libstdc++/23053
* include/tr1/hashtable (hashtable<>::find_node): Const-ify.
* testsuite/tr1/6_containers/unordered/hashtable/23053.cc: New.
From-SVN: r102372
-rw-r--r-- | libstdc++-v3/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++-v3/include/tr1/hashtable | 9 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc | 39 |
3 files changed, 50 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 311ec34..e3bf41c 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2005-07-25 Dave Odell <evilalias@hotmail.com> + + PR libstdc++/23053 + * include/tr1/hashtable (hashtable<>::find_node): Const-ify. + * testsuite/tr1/6_containers/unordered/hashtable/23053.cc: New. + 2005-07-25 Paolo Carlini <pcarlini@suse.de> PR libstdc++/22515 diff --git a/libstdc++-v3/include/tr1/hashtable b/libstdc++-v3/include/tr1/hashtable index add5f5b..e94f3bb 100644 --- a/libstdc++-v3/include/tr1/hashtable +++ b/libstdc++-v3/include/tr1/hashtable @@ -1055,14 +1055,14 @@ namespace tr1 Insert_Return_Type; node* - find_node(node* p, const key_type& k, typename hashtable::hash_code_t c); + find_node(node* p, const key_type& k, + typename hashtable::hash_code_t c) const; std::pair<iterator, bool> insert(const value_type&, std::tr1::true_type); iterator - insert - (const value_type&, std::tr1::false_type); + insert(const value_type&, std::tr1::false_type); public: // Insert and erase Insert_Return_Type @@ -1464,7 +1464,8 @@ namespace tr1 bool c, bool m, bool u> typename hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>::node* hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, m, u>:: - find_node(node* p, const key_type& k, typename hashtable::hash_code_t code) + find_node(node* p, const key_type& k, + typename hashtable::hash_code_t code) const { for ( ; p ; p = p->m_next) if (this->compare (k, code, p)) diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc new file mode 100644 index 0000000..1f9d0e7 --- /dev/null +++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc @@ -0,0 +1,39 @@ +// { dg-do compile } + +// Copyright (C) 2005 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 +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +// USA. + +// 6.3 Unordered associative containers + +#include <tr1/unordered_set> + +// libstdc++/23053 +void test01() +{ + std::tr1::unordered_set<int> s; + + const std::tr1::unordered_set<int> &s_ref = s; + + s_ref.find(27); +} + +int main() +{ + test01(); + return 0; +} |