2007-03-03 Paolo Carlini <pcarlini@suse.de>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 3 Mar 2007 10:29:14 +0000 (10:29 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 3 Mar 2007 10:29:14 +0000 (10:29 +0000)
PR libstdc++/28080 (partial)
* include/bits/stl_algobase.h: Do not include <iosfwd>,
<bits/functexcept.h> is enough; adjust __copy_aux declarations;
remove declaration of copy overload for istreambuf_iterator /
ostreambuf_iterator.
* src/debug.cc: Include <cstdio>.
* include/ext/rope: Include <iosfwd>.
* include/bits/char_traits.h: Include <cstdio> and <cwchar>.
* include/bits/stl_algo.h: Remove declaration of find overload
for istreambuf_iterator.
* include/std/queue: Clean up includes.
* include/std/stack: Likewise.
* include/std/memory: Likewise.
* include/std/algorithm: Likewise.
* include/std/vector: Likewise.
* include/std/deque: Likewise.
* include/std/list: Likewise.
* include/bits/stl_tree.h: Likewise.
* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Adjust
dg-error markers.
* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Likewise.
* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
* testsuite/23_containers/set/operators/1_neg.cc: Likewise.
* testsuite/23_containers/map/operators/1_neg.cc: Likewise.
* testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.

* include/ext/type_traits.h: Fix type of __max_digits10; clean up
includes.

* testsuite/util/testsuite_hooks.h: Do not include <cstddef>.
* testsuite/util/testsuite_hooks.cc: Do it here.

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

24 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/char_traits.h
libstdc++-v3/include/bits/stl_algo.h
libstdc++-v3/include/bits/stl_algobase.h
libstdc++-v3/include/bits/stl_tree.h
libstdc++-v3/include/ext/rope
libstdc++-v3/include/ext/type_traits.h
libstdc++-v3/include/std/algorithm
libstdc++-v3/include/std/deque
libstdc++-v3/include/std/list
libstdc++-v3/include/std/memory
libstdc++-v3/include/std/queue
libstdc++-v3/include/std/stack
libstdc++-v3/include/std/vector
libstdc++-v3/src/debug.cc
libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc
libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc
libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc
libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
libstdc++-v3/testsuite/util/testsuite_hooks.cc
libstdc++-v3/testsuite/util/testsuite_hooks.h

index bd20ce0..55f3ce7 100644 (file)
@@ -1,3 +1,38 @@
+2007-03-03  Paolo Carlini  <pcarlini@suse.de>
+
+       PR libstdc++/28080 (partial)
+       * include/bits/stl_algobase.h: Do not include <iosfwd>,
+       <bits/functexcept.h> is enough; adjust __copy_aux declarations;
+       remove declaration of copy overload for istreambuf_iterator /
+       ostreambuf_iterator.
+       * src/debug.cc: Include <cstdio>.
+       * include/ext/rope: Include <iosfwd>.
+       * include/bits/char_traits.h: Include <cstdio> and <cwchar>.
+       * include/bits/stl_algo.h: Remove declaration of find overload
+       for istreambuf_iterator.
+       * include/std/queue: Clean up includes.
+       * include/std/stack: Likewise.
+       * include/std/memory: Likewise.
+       * include/std/algorithm: Likewise.
+       * include/std/vector: Likewise.
+       * include/std/deque: Likewise.
+       * include/std/list: Likewise.
+       * include/bits/stl_tree.h: Likewise.
+       * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Adjust
+       dg-error markers.
+       * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Likewise.
+       * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
+       * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
+       * testsuite/23_containers/set/operators/1_neg.cc: Likewise.
+       * testsuite/23_containers/map/operators/1_neg.cc: Likewise.
+       * testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.
+
+       * include/ext/type_traits.h: Fix type of __max_digits10; clean up
+       includes.
+
+       * testsuite/util/testsuite_hooks.h: Do not include <cstddef>.
+       * testsuite/util/testsuite_hooks.cc: Do it here.
+
 2007-03-02  Paolo Carlini  <pcarlini@suse.de>
 
        * testsuite/27_io/objects/wchar_t/9661-1.cc: Include <cstdlib>.
index 58cddf6..03d744c 100644 (file)
@@ -1,6 +1,7 @@
 // Character Traits for use by standard string and iostream -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+// 2006, 2007
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 
 #pragma GCC system_header
 
-#include <cstring>            // For memmove, memset, memchr
-#include <bits/stl_algobase.h>// For copy, lexicographical_compare, fill_n
-#include <bits/postypes.h>    // For streampos
+#include <cstring>              // For memmove, memset, memchr
+#include <bits/stl_algobase.h>  // For copy, fill_n
+#include <bits/postypes.h>      // For streampos
+#include <cstdio>               // For EOF
+#include <cwchar>               // For WEOF, wmemmove, wmemset, etc.
 
 _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
 
index cf3cd71..75a89b7 100644 (file)
@@ -63,7 +63,7 @@
 #define _ALGO_H 1
 
 #include <bits/stl_heap.h>
-#include <bits/stl_tempbuf.h>     // for _Temporary_buffer
+#include <bits/stl_tempbuf.h>  // for _Temporary_buffer
 #include <debug/debug.h>
 
 // See concept_check.h for the __glibcxx_*_requires macros.
@@ -295,17 +295,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     }
 
   /**
-   *  @if maint
-   *  This is an overload of find() for streambuf iterators.
-   *  @endif
-  */
-  template<typename _CharT>
-    typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
-                                   istreambuf_iterator<_CharT> >::__type
-    find(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
-        const _CharT&);
-
-  /**
    *  @brief Find the first occurrence of a value in a sequence.
    *  @param  first  An input iterator.
    *  @param  last   An input iterator.
index 35a8a03..a6d155a 100644 (file)
@@ -67,7 +67,7 @@
 #include <cwchar>
 #include <cstdlib>
 #include <cstddef>
-#include <iosfwd>
+#include <bits/functexcept.h>
 #include <bits/stl_pair.h>
 #include <bits/cpp_type_traits.h>
 #include <ext/type_traits.h>
@@ -317,21 +317,33 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     }
 
   // Helpers for streambuf iterators (either istream or ostream).
+  // NB: avoid including <iosfwd>, relatively large.
+  template<typename _CharT>
+    struct char_traits;
+
+  template<typename _CharT, typename _Traits>
+    class istreambuf_iterator;
+
+  template<typename _CharT, typename _Traits>
+    class ostreambuf_iterator;
+
   template<typename _CharT>
     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 
-                                   ostreambuf_iterator<_CharT> >::__type
-    __copy_aux(_CharT*, _CharT*, ostreambuf_iterator<_CharT>);
+            ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
+    __copy_aux(_CharT*, _CharT*,
+              ostreambuf_iterator<_CharT, char_traits<_CharT> >);
 
   template<typename _CharT>
     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 
-                                   ostreambuf_iterator<_CharT> >::__type
-    __copy_aux(const _CharT*, const _CharT*, ostreambuf_iterator<_CharT>);
+            ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
+    __copy_aux(const _CharT*, const _CharT*,
+              ostreambuf_iterator<_CharT, char_traits<_CharT> >);
 
   template<typename _CharT>
     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
                                    _CharT*>::__type
-    __copy_aux(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
-              _CharT*);
+    __copy_aux(istreambuf_iterator<_CharT, char_traits<_CharT> >,
+              istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*);
 
   template<bool, bool>
     struct __copy_normal
@@ -403,13 +415,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
                                                        __result);
     }
 
-  // Overload for streambuf iterators.
-  template<typename _CharT>
-    typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 
-                                   ostreambuf_iterator<_CharT> >::__type
-    copy(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
-        ostreambuf_iterator<_CharT>);
-
   template<bool, typename>
     struct __copy_backward
     {
index bbfb252..0bb6539 100644 (file)
@@ -1,6 +1,6 @@
 // RB tree implementation -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -66,7 +66,6 @@
 
 #include <bits/stl_algobase.h>
 #include <bits/allocator.h>
-#include <bits/stl_construct.h>
 #include <bits/stl_function.h>
 #include <bits/cpp_type_traits.h>
 
index 389fd09..45c5de8 100644 (file)
@@ -1,6 +1,6 @@
 // SGI's rope class -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -57,6 +57,7 @@
 #include <bits/stl_numeric.h>
 #include <bits/allocator.h>
 #include <ext/hash_fun.h>
+#include <iosfwd>
 
 # ifdef __GC
 #   define __GC_CONST const
index 1d931ff..a4ea1ce 100644 (file)
 
 #pragma GCC system_header
 
-#include <cstddef>
-#include <utility>
 #include <limits>
-#include <iosfwd> // std::streamsize
 #include <bits/cpp_type_traits.h>
 
 _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
@@ -182,12 +179,12 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
     struct __numeric_traits_floating
     {
       // Only floating point types. See N1822. 
-      static const std::streamsize __max_digits10 =
+      static const int __max_digits10 =
        2 + std::numeric_limits<_Value>::digits * 3010/10000;
     };
 
   template<typename _Value>
-    const std::streamsize __numeric_traits_floating<_Value>::__max_digits10;
+    const int __numeric_traits_floating<_Value>::__max_digits10;
 
   template<typename _Value>
     struct __numeric_traits 
index 7ffbf97..d579bbd 100644 (file)
@@ -1,6 +1,7 @@
 // <algorithm> -*- C++ -*-
 
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+// 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
@@ -63,8 +64,6 @@
 #pragma GCC system_header
 
 #include <bits/stl_algobase.h>
-#include <bits/stl_construct.h>
-#include <bits/stl_uninitialized.h>
 #include <bits/stl_algo.h>
 
 #endif /* _GLIBCXX_ALGORITHM */
index 57c6e43..93ca4ca 100644 (file)
@@ -1,6 +1,7 @@
 // <deque> -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+// 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
@@ -62,7 +63,6 @@
 
 #pragma GCC system_header
 
-#include <bits/functexcept.h>
 #include <bits/stl_algobase.h>
 #include <bits/allocator.h>
 #include <bits/stl_construct.h>
index 0a1ce13..10461a1 100644 (file)
 
 #pragma GCC system_header
 
-#include <bits/functexcept.h>
 #include <bits/stl_algobase.h>
 #include <bits/allocator.h>
-#include <bits/stl_construct.h>
 #include <bits/stl_list.h>
 
 #ifndef _GLIBCXX_EXPORT_TEMPLATE
index c47d49c..f604ac9 100644 (file)
@@ -1,6 +1,6 @@
 // <memory> -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -54,7 +54,6 @@
 #include <bits/stl_algobase.h>
 #include <bits/allocator.h>
 #include <bits/stl_construct.h>
-#include <bits/stl_iterator_base_types.h> //for iterator_traits
 #include <bits/stl_uninitialized.h>
 #include <bits/stl_raw_storage_iter.h>
 #include <debug/debug.h>
index 1242a06..2d919d0 100644 (file)
@@ -1,6 +1,7 @@
 // <queue> -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+// 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
 
 #pragma GCC system_header
 
-#include <bits/c++config.h>
-#include <bits/functexcept.h>
-#include <bits/stl_algobase.h>
-#include <bits/allocator.h>
-#include <bits/stl_construct.h>
-#include <bits/stl_uninitialized.h>
-#include <bits/stl_heap.h>
-#include <bits/stl_function.h>
 #include <deque>
 #include <vector>
+#include <bits/stl_heap.h>
+#include <bits/stl_function.h>
 #include <bits/stl_queue.h>
 
 #endif /* _GLIBCXX_QUEUE */
index 396f62e..b51155e 100644 (file)
@@ -1,6 +1,7 @@
 // <stack> -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+// 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
 
 #pragma GCC system_header
 
-#include <bits/stl_algobase.h>
-#include <bits/allocator.h>
-#include <bits/stl_construct.h>
-#include <bits/stl_uninitialized.h>
 #include <deque>
 #include <bits/stl_stack.h>
 
index a4a527e..d7aba96 100644 (file)
@@ -1,6 +1,7 @@
 // <vector> -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+// 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
@@ -62,7 +63,6 @@
 
 #pragma GCC system_header
 
-#include <bits/functexcept.h>
 #include <bits/stl_algobase.h>
 #include <bits/allocator.h>
 #include <bits/stl_construct.h>
index be5ba01..4129f68 100644 (file)
@@ -1,6 +1,6 @@
 // Debugging mode support code -*- C++ -*-
 
-// Copyright (C) 2003, 2004, 2005, 2006
+// Copyright (C) 2003, 2004, 2005, 2006, 2007
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -35,6 +35,7 @@
 #include <cassert>
 #include <cstring>
 #include <cctype>
+#include <cstdio>
 
 using namespace std;
 
index 4ae7acf..1c78672 100644 (file)
@@ -1,6 +1,6 @@
 // { dg-do compile }
 
-// Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation
+// Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 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
@@ -46,5 +46,5 @@ main()
   test01();
   return 0;
 }
-// { dg-error "candidates" "" { target *-*-* } 224 } 
-// { dg-error "::auto_ptr" "" { target *-*-* } 354 } 
+// { dg-error "candidates" "" { target *-*-* } 223 } 
+// { dg-error "::auto_ptr" "" { target *-*-* } 353 } 
index 54e7414..7d66059 100644 (file)
@@ -1,6 +1,6 @@
 // { dg-do compile }
 
-// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
+// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -42,5 +42,5 @@ void test01()
   test &= itr == mapByName.end(); // { dg-error "no" } 
 }
  
-// { dg-error "candidates are" "" { target *-*-* } 211 }
-// { dg-error "candidates are" "" { target *-*-* } 215 }
+// { dg-error "candidates are" "" { target *-*-* } 210 }
+// { dg-error "candidates are" "" { target *-*-* } 214 }
index 48f6ae6..a999e5b 100644 (file)
@@ -1,6 +1,6 @@
 // { dg-do compile }
 
-// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
+// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -40,5 +40,5 @@ void test01()
   test &= itr == setByName.end(); // { dg-error "no" } 
 }
 
-// { dg-error "candidates are" "" { target *-*-* } 286 }
-// { dg-error "candidates are" "" { target *-*-* } 290 }
+// { dg-error "candidates are" "" { target *-*-* } 285 }
+// { dg-error "candidates are" "" { target *-*-* } 289 }
index 992056c..2769699 100644 (file)
@@ -1,7 +1,7 @@
 // { dg-do compile }
 // -*- C++ -*-
 
-// Copyright (C) 2006 Free Software Foundation, Inc.
+// Copyright (C) 2006, 2007 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
@@ -36,5 +36,5 @@ int main()
 }
 
 // { dg-error "instantiated from" "" { target *-*-* } 29 } 
-// { dg-error "no type" "" { target *-*-* } 76 } 
+// { dg-error "no type" "" { target *-*-* } 73 } 
 // { dg-excess-errors "In instantiation of" }
index 311db92..2b42e41 100644 (file)
@@ -1,7 +1,7 @@
 // { dg-do compile }
 // -*- C++ -*-
 
-// Copyright (C) 2006 Free Software Foundation, Inc.
+// Copyright (C) 2006, 2007 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
@@ -37,4 +37,4 @@ int main()
 }
 
 // { dg-error "invalid use of incomplete" "" { target *-*-* } 29 } 
-// { dg-error "declaration of" "" { target *-*-* } 71 } 
+// { dg-error "declaration of" "" { target *-*-* } 68 } 
index b2dd0e3..7e655f8 100644 (file)
@@ -1,7 +1,7 @@
 // { dg-do compile }
 // -*- C++ -*-
 
-// Copyright (C) 2006 Free Software Foundation, Inc.
+// Copyright (C) 2006, 2007 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
@@ -36,5 +36,5 @@ int main()
 }
 
 // { dg-error "instantiated from" "" { target *-*-* } 29 }
-// { dg-error "no type" "" { target *-*-* } 119 }
+// { dg-error "no type" "" { target *-*-* } 116 }
 // { dg-excess-errors "In instantiation of" }
index 752125e..50a0b14 100644 (file)
@@ -1,7 +1,7 @@
 // { dg-do compile }
 // -*- C++ -*-
 
-// Copyright (C) 2006 Free Software Foundation, Inc.
+// Copyright (C) 2006, 2007 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
@@ -37,4 +37,4 @@ int main()
 }
 
 // { dg-error "invalid use of incomplete" "" { target *-*-* } 29 } 
-// { dg-error "declaration of" "" { target *-*-* } 114 } 
+// { dg-error "declaration of" "" { target *-*-* } 111 } 
index bb63f68..50347f8 100644 (file)
 #include <sys/time.h>
 #include <sys/resource.h>
 #endif
+
 #include <list>
 #include <string>
 #include <stdexcept>
+#include <cstddef>
 #include <clocale>
 #include <locale>
 #include <cxxabi.h>
index 764c09e..8e22ec0 100644 (file)
@@ -58,7 +58,6 @@
 
 #include <bits/c++config.h>
 #include <bits/functexcept.h>
-#include <cstddef>
 #include <ctime>
 
 #ifdef _GLIBCXX_HAVE_SYS_STAT_H