OSDN Git Service

2005-12-28 Paolo Carlini <pcarlini@suse.de>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Dec 2005 09:57:57 +0000 (09:57 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Dec 2005 09:57:57 +0000 (09:57 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109103 138bc75d-0d04-0410-961f-82ee72b054a4

24 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/std/std_bitset.h
libstdc++-v3/testsuite/18_support/numeric_limits/specialization.cc
libstdc++-v3/testsuite/18_support/numeric_limits/traps.cc
libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/24559.cc
libstdc++-v3/testsuite/25_algorithms/heap/heap.cc
libstdc++-v3/testsuite/27_io/ios_base/storage/11584.cc
libstdc++-v3/testsuite/27_io/types/1.cc
libstdc++-v3/testsuite/ext/array_allocator/2.cc
libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_global.cc
libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_local.cc
libstdc++-v3/testsuite/testsuite_allocator.h
libstdc++-v3/testsuite/testsuite_hooks.h
libstdc++-v3/testsuite/thread/18185.cc
libstdc++-v3/testsuite/tr1/3_function_objects/mem_fn.cc
libstdc++-v3/testsuite/tr1/6_containers/array/cons/aggregate_initialization.cc
libstdc++-v3/testsuite/tr1/6_containers/array/requirements/zero_sized_arrays.cc
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc
libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc
libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/hash.cc
libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc
libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc
libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc
libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc

index f5c25b9..b5a754b 100644 (file)
@@ -1,3 +1,57 @@
+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
index c1cfada..ad47238 100644 (file)
@@ -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
index 815b7f5..0a1c8fe 100644 (file)
@@ -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 = 0) { }
+  B(int = 0) { }
 };
 
 
index e9bdd84..197a251 100644 (file)
 
 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
index 26f0326..9e2a17d 100644 (file)
 // { 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;
 }
index 6fbd3ed..ba916a8 100644 (file)
@@ -1,4 +1,4 @@
-// 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;
 }
index a97f2f7..06eae99 100644 (file)
@@ -1,6 +1,6 @@
 // 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;
 }
index 276c99c..59965c8 100644 (file)
@@ -1,4 +1,4 @@
-// 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)
index 79f8c53..6ec4a17 100644 (file)
@@ -1,7 +1,7 @@
 // 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);
     
index 7e670f0..9760473 100644 (file)
@@ -1,5 +1,5 @@
 //
-// 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);
 }
 
index 175a833..aafffae 100644 (file)
@@ -1,5 +1,5 @@
 //
-// 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);
 }
 
index 307a038..3beb29d 100644 (file)
@@ -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...
index 8a5276f..38b8063 100644 (file)
@@ -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; }
 
 
index 9c2d4ad..4ec6a6d 100644 (file)
@@ -1,5 +1,5 @@
 //
-// 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;
 }
index 74caeef..2f780c1 100644 (file)
@@ -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()
index a6ebca0..1c6c8ed 100644 (file)
@@ -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()
index 4725245..75b3e97 100644 (file)
@@ -1,6 +1,6 @@
 // 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: ?
index ab543e4..a83fce3 100644 (file)
@@ -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);
index 24f9738..bfa4f73 100644 (file)
@@ -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) {
index da45151..382d69f 100644 (file)
@@ -1,6 +1,6 @@
 // { 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.
 //
 #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
-}
+
index adb2913..cb1cf2f 100644 (file)
@@ -1,8 +1,8 @@
 // { 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
 #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>;
index 9225d79..7328261 100644 (file)
@@ -1,6 +1,6 @@
 // { 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.
 //
 #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>;
index ce138c3..e022e8b 100644 (file)
@@ -1,6 +1,6 @@
 // { 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.
 //
 
 #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>;
index 32bde71..9bb892e 100644 (file)
@@ -1,6 +1,6 @@
 // { 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.
 //
 
 #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>;