Commit ece84738 by Benjamin Kosnik Committed by Benjamin Kosnik

user.cfg.in: Scan tr1_impl/hashtable.

2007-10-12  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/doxygen/user.cfg.in: Scan tr1_impl/hashtable.
	* include/tr1_impl/hashtable: Correct comment.

	* include/ext/hash_map: Remove extraneous public markers.
	* include/ext/hash_set: Same.

	* testsuite/25_algorithms/headers/parallel_algorithm.cc: Move
	inside algorithm directory.	
	* testsuite/25_algorithms/headers/algorithm_parallel_mode.cc: Same.
	* testsuite/25_algorithms/headers/parallel_algorithm_mixed1.cc: Same.
	* testsuite/25_algorithms/headers/parallel_algorithm_mixed2.cc: Same.
	* testsuite/25_algorithms/headers/algorithm/parallel_algorithm.cc:
	To this.	
	* testsuite/25_algorithms/headers/algorithm/
	algorithm_parallel_mode.cc: Same.
	* testsuite/25_algorithms/headers/algorithm/
	parallel_algorithm_mixed1.cc: Same.
	* testsuite/25_algorithms/headers/algorithm/
	parallel_algorithm_mixed2.cc: Same.

	* testsuite/21_strings/basic_string/requirements/
	explicit_instantiation/debug.cc: Remove exception text.
	
	* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
	Fix for debug mode testing.	
	* testsuite/23_containers/vector/bool/capacity/29134.cc: Same.

From-SVN: r129264
parent d437e14c
2007-10-12 Benjamin Kosnik <bkoz@redhat.com>
* docs/doxygen/user.cfg.in: Scan tr1_impl/hashtable.
* include/tr1_impl/hashtable: Correct comment.
* include/ext/hash_map: Remove extraneous public markers.
* include/ext/hash_set: Same.
* testsuite/25_algorithms/headers/parallel_algorithm.cc: Move
inside algorithm directory.
* testsuite/25_algorithms/headers/algorithm_parallel_mode.cc: Same.
* testsuite/25_algorithms/headers/parallel_algorithm_mixed1.cc: Same.
* testsuite/25_algorithms/headers/parallel_algorithm_mixed2.cc: Same.
* testsuite/25_algorithms/headers/algorithm/parallel_algorithm.cc:
To this.
* testsuite/25_algorithms/headers/algorithm/
algorithm_parallel_mode.cc: Same.
* testsuite/25_algorithms/headers/algorithm/
parallel_algorithm_mixed1.cc: Same.
* testsuite/25_algorithms/headers/algorithm/
parallel_algorithm_mixed2.cc: Same.
* testsuite/21_strings/basic_string/requirements/
explicit_instantiation/debug.cc: Remove exception text.
* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
Fix for debug mode testing.
* testsuite/23_containers/vector/bool/capacity/29134.cc: Same.
2007-10-12 Jesper Nilsson <jesper.nilsson@axis.com> 2007-10-12 Jesper Nilsson <jesper.nilsson@axis.com>
* testsuite/tr1/5_numerical_facilities/special_functions/ * testsuite/tr1/5_numerical_facilities/special_functions/
......
...@@ -605,6 +605,7 @@ INPUT = @srcdir@/docs/doxygen/doxygroups.cc \ ...@@ -605,6 +605,7 @@ INPUT = @srcdir@/docs/doxygen/doxygroups.cc \
include/tr1_impl/cwchar \ include/tr1_impl/cwchar \
include/tr1_impl/cwctype \ include/tr1_impl/cwctype \
include/tr1_impl/functional \ include/tr1_impl/functional \
include/tr1_impl/hashtable \
include/tr1_impl/random \ include/tr1_impl/random \
include/tr1_impl/regex \ include/tr1_impl/regex \
include/tr1_impl/tuple \ include/tr1_impl/tuple \
......
...@@ -120,7 +120,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -120,7 +120,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
get_allocator() const get_allocator() const
{ return _M_ht.get_allocator(); } { return _M_ht.get_allocator(); }
public:
hash_map() hash_map()
: _M_ht(100, hasher(), key_equal(), allocator_type()) {} : _M_ht(100, hasher(), key_equal(), allocator_type()) {}
...@@ -158,7 +157,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -158,7 +157,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
: _M_ht(__n, __hf, __eql, __a) : _M_ht(__n, __hf, __eql, __a)
{ _M_ht.insert_unique(__f, __l); } { _M_ht.insert_unique(__f, __l); }
public:
size_type size_type
size() const size() const
{ return _M_ht.size(); } { return _M_ht.size(); }
...@@ -196,7 +194,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -196,7 +194,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
end() const end() const
{ return _M_ht.end(); } { return _M_ht.end(); }
public:
pair<iterator, bool> pair<iterator, bool>
insert(const value_type& __obj) insert(const value_type& __obj)
{ return _M_ht.insert_unique(__obj); } { return _M_ht.insert_unique(__obj); }
...@@ -342,7 +339,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -342,7 +339,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
get_allocator() const get_allocator() const
{ return _M_ht.get_allocator(); } { return _M_ht.get_allocator(); }
public:
hash_multimap() hash_multimap()
: _M_ht(100, hasher(), key_equal(), allocator_type()) {} : _M_ht(100, hasher(), key_equal(), allocator_type()) {}
...@@ -380,7 +376,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -380,7 +376,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
: _M_ht(__n, __hf, __eql, __a) : _M_ht(__n, __hf, __eql, __a)
{ _M_ht.insert_equal(__f, __l); } { _M_ht.insert_equal(__f, __l); }
public:
size_type size_type
size() const size() const
{ return _M_ht.size(); } { return _M_ht.size(); }
...@@ -418,7 +413,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -418,7 +413,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
end() const end() const
{ return _M_ht.end(); } { return _M_ht.end(); }
public:
iterator iterator
insert(const value_type& __obj) insert(const value_type& __obj)
{ return _M_ht.insert_equal(__obj); } { return _M_ht.insert_equal(__obj); }
...@@ -468,7 +462,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -468,7 +462,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
clear() clear()
{ _M_ht.clear(); } { _M_ht.clear(); }
public:
void void
resize(size_type __hint) resize(size_type __hint)
{ _M_ht.resize(__hint); } { _M_ht.resize(__hint); }
......
...@@ -122,7 +122,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -122,7 +122,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
get_allocator() const get_allocator() const
{ return _M_ht.get_allocator(); } { return _M_ht.get_allocator(); }
public:
hash_set() hash_set()
: _M_ht(100, hasher(), key_equal(), allocator_type()) {} : _M_ht(100, hasher(), key_equal(), allocator_type()) {}
...@@ -160,7 +159,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -160,7 +159,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
: _M_ht(__n, __hf, __eql, __a) : _M_ht(__n, __hf, __eql, __a)
{ _M_ht.insert_unique(__f, __l); } { _M_ht.insert_unique(__f, __l); }
public:
size_type size_type
size() const size() const
{ return _M_ht.size(); } { return _M_ht.size(); }
...@@ -190,7 +188,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -190,7 +188,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
end() const end() const
{ return _M_ht.end(); } { return _M_ht.end(); }
public:
pair<iterator, bool> pair<iterator, bool>
insert(const value_type& __obj) insert(const value_type& __obj)
{ {
...@@ -239,7 +236,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -239,7 +236,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
clear() clear()
{ _M_ht.clear(); } { _M_ht.clear(); }
public:
void void
resize(size_type __hint) resize(size_type __hint)
{ _M_ht.resize(__hint); } { _M_ht.resize(__hint); }
...@@ -327,7 +323,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -327,7 +323,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
get_allocator() const get_allocator() const
{ return _M_ht.get_allocator(); } { return _M_ht.get_allocator(); }
public:
hash_multiset() hash_multiset()
: _M_ht(100, hasher(), key_equal(), allocator_type()) {} : _M_ht(100, hasher(), key_equal(), allocator_type()) {}
...@@ -365,7 +360,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -365,7 +360,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
: _M_ht(__n, __hf, __eql, __a) : _M_ht(__n, __hf, __eql, __a)
{ _M_ht.insert_equal(__f, __l); } { _M_ht.insert_equal(__f, __l); }
public:
size_type size_type
size() const size() const
{ return _M_ht.size(); } { return _M_ht.size(); }
...@@ -395,7 +389,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -395,7 +389,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
end() const end() const
{ return _M_ht.end(); } { return _M_ht.end(); }
public:
iterator iterator
insert(const value_type& __obj) insert(const value_type& __obj)
{ return _M_ht.insert_equal(__obj); } { return _M_ht.insert_equal(__obj); }
...@@ -437,7 +430,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D) ...@@ -437,7 +430,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT_D)
clear() clear()
{ _M_ht.clear(); } { _M_ht.clear(); }
public:
void void
resize(size_type __hint) resize(size_type __hint)
{ _M_ht.resize(__hint); } { _M_ht.resize(__hint); }
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
// std::tr1::unordered_multiset, and std::tr1::unordered_multimap. // std::tr1::unordered_multiset, and std::tr1::unordered_multimap.
// hashtable has many template parameters, partly to accommodate // hashtable has many template parameters, partly to accommodate
// the differences between those four classes and partly to // the differences between those four classes and partly to
// accommodate policy choices that go beyond what TR1 calls for. // accommodate policy choices that go beyond TR1 specifications.
// Class template hashtable attempts to encapsulate all reasonable // Class template hashtable attempts to encapsulate all reasonable
// variation among hash tables that use chaining. It does not handle // variation among hash tables that use chaining. It does not handle
......
...@@ -16,15 +16,6 @@ ...@@ -16,15 +16,6 @@
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA. // USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
// This file tests explicit instantiation of basic_string // This file tests explicit instantiation of basic_string
#include <debug/string> #include <debug/string>
......
...@@ -27,13 +27,20 @@ void test01() ...@@ -27,13 +27,20 @@ void test01()
{ {
bool test __attribute__((unused)) = true; bool test __attribute__((unused)) = true;
std::vector<bool> vb; using std::vector;
using std::numeric_limits;
#ifndef _GLIBCXX_DEBUG
using std::_S_word_bit;
#else
using std::_GLIBCXX_STD_D::_S_word_bit;
#endif
// Actually, vector<bool> is special, see libstdc++/31370. // Actually, vector<bool> is special, see libstdc++/31370.
typedef std::vector<bool>::difference_type difference_type; vector<bool> vb;
typedef vector<bool>::difference_type difference_type;
VERIFY( vb.max_size() VERIFY( vb.max_size()
== (std::numeric_limits<difference_type>::max() == (numeric_limits<difference_type>::max() - int(_S_word_bit) + 1) );
- int(std::_S_word_bit) + 1) );
} }
int main() int main()
......
...@@ -24,6 +24,12 @@ ...@@ -24,6 +24,12 @@
#include <stdexcept> #include <stdexcept>
#include <testsuite_hooks.h> #include <testsuite_hooks.h>
#ifndef _GLIBCXX_DEBUG
using std::_S_word_bit;
#else
using std::_GLIBCXX_STD_D::_S_word_bit;
#endif
inline void inline void
check_cap_ge_size(const std::vector<bool>& x) check_cap_ge_size(const std::vector<bool>& x)
{ {
...@@ -62,7 +68,7 @@ void test01() ...@@ -62,7 +68,7 @@ void test01()
{ {
std::vector<bool> x; std::vector<bool> x;
x.resize(x.max_size() / 2 + 1, false); x.resize(x.max_size() / 2 + 1, false);
for(int i = 0; i < std::_S_word_bit; ++i) for(int i = 0; i < _S_word_bit; ++i)
x.push_back(false); x.push_back(false);
check_cap_ge_size(x); check_cap_ge_size(x);
} }
...@@ -75,7 +81,7 @@ void test01() ...@@ -75,7 +81,7 @@ void test01()
{ {
std::vector<bool> x; std::vector<bool> x;
x.resize(x.max_size() / 2 + 1, false); x.resize(x.max_size() / 2 + 1, false);
x.insert(x.end(), std::_S_word_bit, false); x.insert(x.end(), _S_word_bit, false);
check_cap_ge_size(x); check_cap_ge_size(x);
} }
catch(std::bad_alloc&) catch(std::bad_alloc&)
...@@ -87,7 +93,7 @@ void test01() ...@@ -87,7 +93,7 @@ void test01()
{ {
std::vector<bool> x; std::vector<bool> x;
x.resize(x.max_size() / 2 + 1, false); x.resize(x.max_size() / 2 + 1, false);
std::vector<bool> y(std::_S_word_bit, false); std::vector<bool> y(_S_word_bit, false);
x.insert(x.end(), y.begin(), y.end()); x.insert(x.end(), y.begin(), y.end());
check_cap_ge_size(x); check_cap_ge_size(x);
} }
...@@ -101,8 +107,8 @@ void test01() ...@@ -101,8 +107,8 @@ void test01()
try try
{ {
std::vector<bool> x; std::vector<bool> x;
x.resize(x.max_size() - std::_S_word_bit, false); x.resize(x.max_size() - _S_word_bit, false);
for(int i = 0; i < std::_S_word_bit; ++i) for(int i = 0; i < _S_word_bit; ++i)
x.push_back(false); x.push_back(false);
check_cap_ge_size(x); check_cap_ge_size(x);
} }
...@@ -114,8 +120,8 @@ void test01() ...@@ -114,8 +120,8 @@ void test01()
try try
{ {
std::vector<bool> x; std::vector<bool> x;
x.resize(x.max_size() - std::_S_word_bit, false); x.resize(x.max_size() - _S_word_bit, false);
x.insert(x.end(), std::_S_word_bit, false); x.insert(x.end(), _S_word_bit, false);
check_cap_ge_size(x); check_cap_ge_size(x);
} }
catch(std::bad_alloc&) catch(std::bad_alloc&)
...@@ -126,8 +132,8 @@ void test01() ...@@ -126,8 +132,8 @@ void test01()
try try
{ {
std::vector<bool> x; std::vector<bool> x;
x.resize(x.max_size() - std::_S_word_bit, false); x.resize(x.max_size() - _S_word_bit, false);
std::vector<bool> y(std::_S_word_bit, false); std::vector<bool> y(_S_word_bit, false);
x.insert(x.end(), y.begin(), y.end()); x.insert(x.end(), y.begin(), y.end());
check_cap_ge_size(x); check_cap_ge_size(x);
} }
...@@ -141,8 +147,8 @@ void test01() ...@@ -141,8 +147,8 @@ void test01()
try try
{ {
std::vector<bool> x; std::vector<bool> x;
x.resize(x.max_size() - std::_S_word_bit, false); x.resize(x.max_size() - _S_word_bit, false);
for(int i = 0; i < std::_S_word_bit + 1; ++i) for(int i = 0; i < _S_word_bit + 1; ++i)
x.push_back(false); x.push_back(false);
++myexit; ++myexit;
} }
...@@ -156,8 +162,8 @@ void test01() ...@@ -156,8 +162,8 @@ void test01()
try try
{ {
std::vector<bool> x; std::vector<bool> x;
x.resize(x.max_size() - std::_S_word_bit, false); x.resize(x.max_size() - _S_word_bit, false);
x.insert(x.end(), std::_S_word_bit + 1, false); x.insert(x.end(), _S_word_bit + 1, false);
++myexit; ++myexit;
} }
catch(std::bad_alloc) catch(std::bad_alloc)
...@@ -170,8 +176,8 @@ void test01() ...@@ -170,8 +176,8 @@ void test01()
try try
{ {
std::vector<bool> x; std::vector<bool> x;
x.resize(x.max_size() - std::_S_word_bit, false); x.resize(x.max_size() - _S_word_bit, false);
std::vector<bool> y(std::_S_word_bit + 1, false); std::vector<bool> y(_S_word_bit + 1, false);
x.insert(x.end(), y.begin(), y.end()); x.insert(x.end(), y.begin(), y.end());
++myexit; ++myexit;
} }
......
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