Commit e7c59a0e by Paolo Carlini

[multiple changes]

2005-12-28  Paolo Carlini  <pcarlini@suse.de>

	* include/std/std_bitset.h (bitset<>::_M_copy_from_string,
	bitset<>::_M_copy_to_string, bitset<>::operator>>): Reverse loop.

	* testsuite/25_algorithms/heap/heap.cc (test01): Always enable
	complexity checks.
	* testsuite/18_support/numeric_limits/specialization.cc: Avoid
	unused parameter warning.
	* testsuite/18_support/numeric_limits/traps.cc: Acoid unused variable
	warning.
	* testsuite/ext/malloc_allocator/deallocate_global.cc: Fix format
	string.
	* testsuite/ext/malloc_allocator/deallocate_local.cc: Likewise.
	* testsuite/ext/array_allocator/2.cc: Remove unused variable.
	* testsuite/tr1/3_function_objects/mem_fn.cc: Avoid unused variable
	warnings.
	* testsuite/tr1/6_containers/unordered/instantiate/set.cc: Just
	instantiate.
	* testsuite/tr1/6_containers/unordered/instantiate/map.cc: Likewise.
	* testsuite/tr1/6_containers/unordered/instantiate/hash.cc: Likewise.
	* testsuite/tr1/6_containers/unordered/instantiate/multiset.cc:
	Likewise.
	* testsuite/tr1/6_containers/unordered/instantiate/multimap.cc:
	Likewise.
	* testsuite/tr1/6_containers/array/cons/aggregate_initialization.cc:
	Avoid unused variable warnings.
	* testsuite/tr1/6_containers/array/requirements/zero_sized_arrays.cc:
	Likewise.
	* testsuite/thread/18185.cc: Likewise.
	* testsuite/27_io/ios_base/storage/11584.cc: Likewise; avoid comparison
	between signed and unsigned warning.
	* testsuite/27_io/types/1.cc: Avoid unused variable warnings.
	* testsuite/testsuite_allocator.h (check_new): Likewise.
	(check_deallocate_null): Adjust return type.
	* testsuite/testsuite_hooks.h (bitmask_operators): Avoid unused
	variable warnings.
	* testsuite/21_strings/c_strings/wchar_t/24559.cc: Avoid unused
	variable warning.

2005-12-28  Chris Jefferson  <chris@bubblescope.net>

	* include/std/std_bitset.h (bitset<0>::set, bitset<0>::reset,
	bitset<0>::flip, bitset<0>::test): Add inline specializations for
	bitset<0>.

	* testsuite/tr1/6_containers/unordered/insert/multiset_range.cc
	(test01): Add static cast.
	* testsuite/tr1/6_containers/unordered/insert/set_range.cc
	(test01): Likewise.
	* testsuite/testsuite_hooks.h (operator==(NonDefaultConstructible,
	NonDefaultConstructible), operator<(NonDefaultConstructible,
	NonDefaultConstrictible)): Avoid unused parameter warning.

From-SVN: r109103
parent 6c8ccf1c
2005-12-28 Paolo Carlini <pcarlini@suse.de>
* include/std/std_bitset.h (bitset<>::_M_copy_from_string,
bitset<>::_M_copy_to_string, bitset<>::operator>>): Reverse loop.
* testsuite/25_algorithms/heap/heap.cc (test01): Always enable
complexity checks.
* testsuite/18_support/numeric_limits/specialization.cc: Avoid
unused parameter warning.
* testsuite/18_support/numeric_limits/traps.cc: Acoid unused variable
warning.
* testsuite/ext/malloc_allocator/deallocate_global.cc: Fix format
string.
* testsuite/ext/malloc_allocator/deallocate_local.cc: Likewise.
* testsuite/ext/array_allocator/2.cc: Remove unused variable.
* testsuite/tr1/3_function_objects/mem_fn.cc: Avoid unused variable
warnings.
* testsuite/tr1/6_containers/unordered/instantiate/set.cc: Just
instantiate.
* testsuite/tr1/6_containers/unordered/instantiate/map.cc: Likewise.
* testsuite/tr1/6_containers/unordered/instantiate/hash.cc: Likewise.
* testsuite/tr1/6_containers/unordered/instantiate/multiset.cc:
Likewise.
* testsuite/tr1/6_containers/unordered/instantiate/multimap.cc:
Likewise.
* testsuite/tr1/6_containers/array/cons/aggregate_initialization.cc:
Avoid unused variable warnings.
* testsuite/tr1/6_containers/array/requirements/zero_sized_arrays.cc:
Likewise.
* testsuite/thread/18185.cc: Likewise.
* testsuite/27_io/ios_base/storage/11584.cc: Likewise; avoid comparison
between signed and unsigned warning.
* testsuite/27_io/types/1.cc: Avoid unused variable warnings.
* testsuite/testsuite_allocator.h (check_new): Likewise.
(check_deallocate_null): Adjust return type.
* testsuite/testsuite_hooks.h (bitmask_operators): Avoid unused
variable warnings.
* testsuite/21_strings/c_strings/wchar_t/24559.cc: Avoid unused
variable warning.
2005-12-28 Chris Jefferson <chris@bubblescope.net>
* include/std/std_bitset.h (bitset<0>::set, bitset<0>::reset,
bitset<0>::flip, bitset<0>::test): Add inline specializations for
bitset<0>.
* testsuite/tr1/6_containers/unordered/insert/multiset_range.cc
(test01): Add static cast.
* testsuite/tr1/6_containers/unordered/insert/set_range.cc
(test01): Likewise.
* testsuite/testsuite_hooks.h (operator==(NonDefaultConstructible,
NonDefaultConstructible), operator<(NonDefaultConstructible,
NonDefaultConstrictible)): Avoid unused parameter warning.
2005-12-26 Chris Jefferson <chris@bubblescope.net>
* include/ext/mt_allocator.h (__mt_alloc::__mt_alloc): Remove
......
......@@ -1144,19 +1144,20 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
template<size_t _Nb>
template<class _CharT, class _Traits, class _Alloc>
void
bitset<_Nb>::_M_copy_from_string(const std::basic_string<_CharT, _Traits,
_Alloc>& __s, size_t __pos, size_t __n)
bitset<_Nb>::
_M_copy_from_string(const std::basic_string<_CharT, _Traits,
_Alloc>& __s, size_t __pos, size_t __n)
{
reset();
const size_t __nbits = std::min(_Nb, std::min(__n, __s.size() - __pos));
for (size_t __i = 0; __i < __nbits; ++__i)
for (size_t __i = __nbits; __i > 0; --__i)
{
switch(__s[__pos + __nbits - __i - 1])
switch(__s[__pos + __nbits - __i])
{
case '0':
break;
case '1':
set(__i);
set(__i - 1);
break;
default:
__throw_invalid_argument(__N("bitset::_M_copy_from_string"));
......@@ -1167,13 +1168,13 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
template<size_t _Nb>
template<class _CharT, class _Traits, class _Alloc>
void
bitset<_Nb>::_M_copy_to_string(std::basic_string<_CharT, _Traits,
_Alloc>& __s) const
bitset<_Nb>::
_M_copy_to_string(std::basic_string<_CharT, _Traits, _Alloc>& __s) const
{
__s.assign(_Nb, '0');
for (size_t __i = 0; __i < _Nb; ++__i)
if (_Unchecked_test(__i))
__s[_Nb - 1 - __i] = '1';
for (size_t __i = _Nb; __i > 0; --__i)
if (_Unchecked_test(__i - 1))
__s[_Nb - __i] = '1';
}
// 23.3.5.3 bitset operations:
......@@ -1242,7 +1243,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
// 303. Bitset input operator underspecified
const char_type __zero = __is.widen('0');
const char_type __one = __is.widen('1');
for (size_t __i = 0; __i < _Nb; ++__i)
for (size_t __i = _Nb; __i > 0; --__i)
{
static typename _Traits::int_type __eof = _Traits::eof();
......@@ -1290,6 +1291,44 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
__x._M_copy_to_string(__tmp);
return __os << __tmp;
}
// Specializations for zero-sized bitsets, to avoid "unsigned comparison
// with zero" warnings.
template<>
inline bitset<0>&
bitset<0>::
set(size_t, bool)
{
__throw_out_of_range(__N("bitset::set"));
return *this;
}
template<>
inline bitset<0>&
bitset<0>::
reset(size_t)
{
__throw_out_of_range(__N("bitset::reset"));
return *this;
}
template<>
inline bitset<0>&
bitset<0>::
flip(size_t)
{
__throw_out_of_range(__N("bitset::flip"));
return *this;
}
template<>
inline bool
bitset<0>::
test(size_t) const
{
__throw_out_of_range(__N("bitset::test"));
return false;
}
//@}
_GLIBCXX_END_NESTED_NAMESPACE
......
......@@ -3,7 +3,7 @@
// 1999-08-23 bkoz
// Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation
// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation
//
// 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
......@@ -41,7 +41,7 @@ template<typename T>
struct B
{
B(int i = 0) { }
B(int = 0) { }
};
......
......@@ -26,14 +26,14 @@
template<typename T>
void
test_traps()
test_traps(T r = T(0))
{
typedef T value_type;
volatile value_type i(5);
volatile value_type j(0);
if (!std::numeric_limits<value_type>::traps)
value_type r = i/j;
r = i / j;
}
// libstdc++/22203
......
......@@ -23,10 +23,10 @@
// { dg-do compile }
// libstdc++/24559
void test01(wchar_t* (*) (wchar_t *, const wchar_t*)) { }
int main()
{
typedef wchar_t* (*pf)(wchar_t *, const wchar_t*);
pf p1 = std::wcspbrk;
test01(std::wcspbrk);
return 0;
}
// Copyright (C) 2001 Free Software Foundation, Inc.
// Copyright (C) 2001, 2002, 2003, 2004, 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
......@@ -19,7 +19,6 @@
// 25.3.6 Heap operations [lib.alg.heap.operations]
#include <algorithm>
//#include <cmath>
#include <testsuite_hooks.h>
bool test __attribute__((unused)) = true;
......@@ -29,24 +28,24 @@ const int B[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
const int C[] = {17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
const int N = sizeof(A) / sizeof(int);
// This functor has the equivalent functionality of std::geater<>,
// This functor has the equivalent functionality of std::greater<>,
// but there is no dependency on <functional> and it also tracks the
// number of invocations since creation.
class Gt
{
public:
static int count() { return itsCount; }
static void reset() { itsCount = 0; }
bool
operator()(const int& x, const int& y)
{
++itsCount;
return x > y;
}
static int count() { return itsCount; }
static void reset() { itsCount = 0; }
bool
operator()(const int& x, const int& y)
{
++itsCount;
return x > y;
}
private:
static int itsCount;
static int itsCount;
};
int Gt::itsCount = 0;
......@@ -57,27 +56,27 @@ int Gt::itsCount = 0;
void
test01()
{
// sort array s1 using push_heap/pop_heap
int s1[N];
std::copy(A, A + N, s1);
VERIFY(std::equal(s1, s1 + N, A));
for (int i = 2; i <= N; ++i) {
std::push_heap(s1, s1 + i);
}
for (int i = N; i >= 2; --i) {
std::pop_heap(s1, s1 + i);
}
VERIFY(std::equal(s1, s1 + N, B));
// sort array s2 using make_heap/sort_heap
int s2[N];
std::copy(A, A + N, s2);
VERIFY(std::equal(s2, s2 + N, A));
std::make_heap(s2, s2 + N);
std::sort_heap(s2, s2 + N);
VERIFY(std::equal(s2, s2 + N, B));
// sort array s1 using push_heap/pop_heap
int s1[N];
std::copy(A, A + N, s1);
VERIFY(std::equal(s1, s1 + N, A));
for (int i = 2; i <= N; ++i)
std::push_heap(s1, s1 + i);
for (int i = N; i >= 2; --i)
std::pop_heap(s1, s1 + i);
VERIFY(std::equal(s1, s1 + N, B));
// sort array s2 using make_heap/sort_heap
int s2[N];
std::copy(A, A + N, s2);
VERIFY(std::equal(s2, s2 + N, A));
std::make_heap(s2, s2 + N);
std::sort_heap(s2, s2 + N);
VERIFY(std::equal(s2, s2 + N, B));
}
// Perform same tests as above but with the comparison predicate
......@@ -85,49 +84,43 @@ test01()
void
test02()
{
Gt gt;
Gt gt;
// const int logN = static_cast<int>(std::log(static_cast<double>(N)) + 0.5);
const int logN = 3;
int s1[N];
std::copy(A, A + N, s1);
VERIFY(std::equal(s1, s1 + N, A));
for (int i = 2; i <= N; ++i) {
std::push_heap(s1, s1 + i, gt);
#ifndef _GLIBCXX_DEBUG
VERIFY(gt.count() <= logN);
#endif
gt.reset();
const int logN = 3;
int s1[N];
std::copy(A, A + N, s1);
VERIFY(std::equal(s1, s1 + N, A));
for (int i = 2; i <= N; ++i)
{
std::push_heap(s1, s1 + i, gt);
VERIFY(gt.count() <= logN);
gt.reset();
}
for (int i = N; i >= 2; --i) {
std::pop_heap(s1, s1 + i, gt);
#ifndef _GLIBCXX_DEBUG
VERIFY(gt.count() <= 2 * logN);
#endif
gt.reset();
for (int i = N; i >= 2; --i)
{
std::pop_heap(s1, s1 + i, gt);
VERIFY(gt.count() <= 2 * logN);
gt.reset();
}
VERIFY(std::equal(s1, s1 + N, C));
// sort array s2 using make_heap/sort_heap
int s2[N];
std::copy(A, A + N, s2);
VERIFY(std::equal(s2, s2 + N, A));
std::make_heap(s2, s2 + N, gt);
#ifndef _GLIBCXX_DEBUG
VERIFY(gt.count() <= 3 * N);
#endif
gt.reset();
std::sort_heap(s2, s2 + N, gt);
#ifndef _GLIBCXX_DEBUG
VERIFY(gt.count() <= N * logN);
#endif
VERIFY(std::equal(s2, s2 + N, C));
VERIFY(std::equal(s1, s1 + N, C));
// sort array s2 using make_heap/sort_heap
int s2[N];
std::copy(A, A + N, s2);
VERIFY(std::equal(s2, s2 + N, A));
std::make_heap(s2, s2 + N, gt);
VERIFY(gt.count() <= 3 * N);
gt.reset();
std::sort_heap(s2, s2 + N, gt);
VERIFY(gt.count() <= N * logN);
VERIFY(std::equal(s2, s2 + N, C));
}
int
......@@ -135,6 +128,5 @@ main()
{
test01();
test02();
return 0;
}
// 2004-01-25 jlquinn@gcc.gnu.org
// Copyright (C) 2004 Free Software Foundation
// Copyright (C) 2004, 2005 Free Software Foundation
//
// 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
......@@ -42,21 +42,22 @@ void operator delete[] (void *p) throw() { operator delete(p); }
int main ()
{
bool test __attribute__((unused)) = true;
const int i = std::ios::xalloc ();
const int i = std::ios::xalloc();
VERIFY( i >= 0 );
new_fails = 1;
// Successive accesses to failure storage clears to zero.
std::cout.iword(100) = 0xdeadbeef;
VERIFY(std::cout.iword(100) == 0);
std::cout.iword(100) = 69;
VERIFY( std::cout.iword(100) == 0 );
// Access to pword failure storage shouldn't clear iword pword storage.
long& lr = std::cout.iword(100);
lr = 0xdeadbeef;
lr = 69;
void* pv = std::cout.pword(100);
VERIFY(pv == 0);
VERIFY(lr == 0xdeadbeef);
VERIFY( pv == 0 );
VERIFY( lr == 69 );
return 0;
}
......
// Copyright (C) 2002, 2004 Free Software Foundation
// Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation
//
// 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
......@@ -25,8 +25,8 @@
// Annex D, deprecated.
void test01()
{
std::ios_base::streampos spos;
std::ios_base::streamoff soff;
typedef std::ios_base::streampos streampos_type;
typedef std::ios_base::streamoff streamoff_type;
}
int main(void)
......
// Expected execution error for PR19495.
// { dg-do run { xfail powerpc*-*-linux* } }
// Copyright (C) 2004 Free Software Foundation, Inc.
// Copyright (C) 2004, 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
......@@ -47,7 +47,6 @@ void test01()
typedef __gnu_cxx::array_allocator<char_type, array_type> allocator_type;
typedef basic_string<char_type, traits_type, allocator_type> string_type;
size_t index = array_type::_S_index;
allocator_type a(&extern_array);
string_type s(a);
......
//
// Copyright (C) 2004 Free Software Foundation, Inc.
// Copyright (C) 2004, 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
......@@ -57,7 +57,8 @@ void operator delete(void* p) throw()
if (count == 0)
printf("All memory released \n");
else
printf("%u allocations to be released \n", count);
printf("%lu allocations to be released \n",
static_cast<unsigned long>(count));
free(p);
}
......
//
// Copyright (C) 2004 Free Software Foundation, Inc.
// Copyright (C) 2004, 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
......@@ -44,7 +44,8 @@ void operator delete(void* p) throw()
if (alloc_cnt == 0)
printf("All memory released \n");
else
printf("%u allocations to be released \n", alloc_cnt);
printf("%lu allocations to be released \n",
static_cast<unsigned long>(alloc_cnt));
free(p);
}
......
......@@ -184,7 +184,7 @@ namespace __gnu_test
check_new(Alloc a = Alloc())
{
bool test __attribute__((unused)) = true;
typename Alloc::pointer p = a.allocate(10);
a.allocate(10);
test &= ( new_called == uses_global_new );
return test;
}
......@@ -201,7 +201,7 @@ namespace __gnu_test
}
template<typename Alloc>
bool
void
check_deallocate_null()
{
// Let's not core here...
......
......@@ -104,10 +104,9 @@ namespace __gnu_test
// bitmask_operators
template<typename bitmask_type>
void
bitmask_operators()
bitmask_operators(bitmask_type a = bitmask_type(),
bitmask_type b = bitmask_type())
{
bitmask_type a;
bitmask_type b;
a | b;
a & b;
a ^ b;
......@@ -168,13 +167,13 @@ namespace __gnu_test
};
inline bool
operator==(const NonDefaultConstructible& lhs,
const NonDefaultConstructible& rhs)
operator==(const NonDefaultConstructible&,
const NonDefaultConstructible&)
{ return false; }
inline bool
operator<(const NonDefaultConstructible& lhs,
const NonDefaultConstructible& rhs)
operator<(const NonDefaultConstructible&,
const NonDefaultConstructible&)
{ return false; }
......
//
// Copyright (C) 2004 Free Software Foundation, Inc.
// Copyright (C) 2004, 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
......@@ -25,8 +25,8 @@
#include <string>
#include <pthread.h>
static void *
foo (void *p)
static void*
foo (void*)
{
typedef std::char_traits<char> traits_type;
typedef __gnu_cxx::new_allocator<char> allocator_type;
......@@ -47,7 +47,7 @@ int
main ()
{
pthread_t t;
int j = pthread_create (&t, 0, foo, 0);
int i = pthread_join (t, 0);
pthread_create (&t, 0, foo, 0);
pthread_join (t, 0);
return 0;
}
......@@ -39,7 +39,7 @@ struct dumb_ptr
};
// Test mem_fn with a data member
void test01()
void test01(int r = 0)
{
using std::tr1::mem_fn;
......@@ -69,6 +69,9 @@ void test01()
const int& bypc = mem_fn(&X::bar)(ypc);
const int& byd = mem_fn(&X::bar)(yd);
const int& bydc = mem_fn(&X::bar)(ydc);
// Avoid unused variable warnings.
r = bx + bxc + bxp + bxpc + bxd + bxdc + by + byc + byp + bypc + byd + bydc;
}
int main()
......
......@@ -2,7 +2,7 @@
// 2004-10-20 Benjamin Kosnik <bkoz@redhat.com>
//
// Copyright (C) 2004 Free Software Foundation, Inc.
// Copyright (C) 2004, 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
......@@ -31,6 +31,8 @@ test01()
array_type a = { 0, 1, 2, 3, 4 };
array_type b = { 0, 1, 2, 3 };
a = b;
}
int main()
......
// 2004-10-20 Benjamin Kosnik <bkoz@redhat.com>
//
// Copyright (C) 2004 Free Software Foundation, Inc.
// Copyright (C) 2004, 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
......@@ -38,6 +38,7 @@ test01()
// 3
// begin() == end()
VERIFY( a.begin() == a.end() );
VERIFY( b.begin() == b.end() );
// 4: ?
......
......@@ -27,7 +27,7 @@
#include <iterator>
#include <algorithm>
#include <tr1/unordered_set>
#include "testsuite_hooks.h"
#include <testsuite_hooks.h>
bool test __attribute__((unused)) = true;
......@@ -42,7 +42,7 @@ void test01()
"magenta", "yellow", "orange", "pink", "gray" };
s.insert(A+0, A+N);
VERIFY(s.size() == N);
VERIFY(s.size() == static_cast<unsigned int>(N));
VERIFY(std::distance(s.begin(), s.end()) == N);
for (int i = 0; i < N; ++i) {
......@@ -62,7 +62,7 @@ void test02()
const int A[N] = { 3, 7, 4, 8, 2, 4, 6, 7 };
s.insert(A+0, A+N);
VERIFY(s.size() == N);
VERIFY(s.size() == static_cast<unsigned int>(N));
VERIFY(std::distance(s.begin(), s.end()) == N);
VERIFY(std::count(s.begin(), s.end(), 2) == 1);
......
......@@ -27,7 +27,7 @@
#include <iterator>
#include <algorithm>
#include <tr1/unordered_set>
#include "testsuite_hooks.h"
#include <testsuite_hooks.h>
bool test __attribute__((unused)) = true;
......@@ -42,7 +42,7 @@ void test01()
"magenta", "yellow", "orange", "pink", "gray" };
s.insert(A+0, A+N);
VERIFY(s.size() == N);
VERIFY(s.size() == static_cast<unsigned int>(N));
VERIFY(std::distance(s.begin(), s.end()) == N);
for (int i = 0; i < N; ++i) {
......
// { dg-do compile }
// 2005-2-17 Matt Austern <austern@apple.com>
// 2005-02-17 Matt Austern <austern@apple.com>
//
// Copyright (C) 2005 Free Software Foundation, Inc.
//
......@@ -25,30 +25,27 @@
#include <string>
#include <tr1/functional>
int main()
{
using namespace std::tr1;
using namespace std::tr1;
// Verify that we can instantiate hash for every required type.
hash<bool> hb;
hash<char> hc;
hash<signed char> hsc;
hash<unsigned char> huc;
hash<short> hs;
hash<int> hi;
hash<long> hl;
hash<unsigned short> hus;
hash<unsigned int> hui;
hash<unsigned long> hul;
hash<float> hf;
hash<double> hd;
hash<long double> hld;
hash<void*> hp;
hash<std::string> hstr;
// Verify that we can instantiate hash for every required type.
template class hash<bool>;
template class hash<char>;
template class hash<signed char>;
template class hash<unsigned char>;
template class hash<short>;
template class hash<int>;
template class hash<long>;
template class hash<unsigned short>;
template class hash<unsigned int>;
template class hash<unsigned long>;
template class hash<float>;
template class hash<double>;
template class hash<long double>;
template class hash<void*>;
template class hash<std::string>;
#ifdef _GLIBCXX_USE_WCHAR_T
hash<wchar_t> hw;
hash<std::wstring> hwstr;
template class hash<wchar_t>;
template class hash<std::wstring>;
#endif
}
// { dg-do compile }
// 2005-2-17 Matt Austern <austern@apple.com>
// 2005-02-17 Matt Austern <austern@apple.com>
//
// Copyright (C) 2004 Free Software Foundation, Inc.
// Copyright (C) 2004, 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
......@@ -25,13 +25,10 @@
#include <string>
#include <tr1/unordered_map>
int main()
{
using namespace std;
using namespace std::tr1;
using namespace std;
using namespace std::tr1;
unordered_map<string, float> m1;
unordered_map<string, float,
hash<string>, equal_to<string>,
allocator<pair<const string, float> >, true> s2;
}
template class unordered_map<string, float>;
template class unordered_map<string, float,
hash<string>, equal_to<string>,
allocator<pair<const string, float> >, true>;
// { dg-do compile }
// 2005-2-17 Matt Austern <austern@apple.com>
// 2005-02-17 Matt Austern <austern@apple.com>
//
// Copyright (C) 2005 Free Software Foundation, Inc.
//
......@@ -25,13 +25,10 @@
#include <string>
#include <tr1/unordered_map>
int main()
{
using namespace std;
using namespace std::tr1;
using namespace std;
using namespace std::tr1;
unordered_multimap<string, float> m1;
unordered_multimap<string, float,
hash<string>, equal_to<string>,
allocator<pair<const string, float> >, true> s2;
}
template class unordered_multimap<string, float>;
template class unordered_multimap<string, float,
hash<string>, equal_to<string>,
allocator<pair<const string, float> >, true>;
// { dg-do compile }
// 2005-2-17 Matt Austern <austern@apple.com>
// 2005-02-17 Matt Austern <austern@apple.com>
//
// Copyright (C) 2005 Free Software Foundation, Inc.
//
......@@ -24,11 +24,9 @@
#include <tr1/unordered_set>
int main()
{
using namespace std;
using namespace std::tr1;
using namespace std;
using namespace std::tr1;
unordered_multiset<int> s1;
unordered_multiset<int, hash<int>, equal_to<int>, allocator<int>, true> s2;
}
template class unordered_multiset<int>;
template class unordered_multiset<int, hash<int>, equal_to<int>,
allocator<int>, true>;
// { dg-do compile }
// 2005-2-17 Matt Austern <austern@apple.com>
// 2005-02-17 Matt Austern <austern@apple.com>
//
// Copyright (C) 2005 Free Software Foundation, Inc.
//
......@@ -24,11 +24,9 @@
#include <tr1/unordered_set>
int main()
{
using namespace std;
using namespace std::tr1;
using namespace std;
using namespace std::tr1;
unordered_set<int> s1;
unordered_set<int, hash<int>, equal_to<int>, allocator<int>, true> s2;
}
template class unordered_set<int>;
template class unordered_set<int, hash<int>, equal_to<int>,
allocator<int>, true>;
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