diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index bd20ce0c1ac..55f3ce745db 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,38 @@ +2007-03-03 Paolo Carlini + + PR libstdc++/28080 (partial) + * include/bits/stl_algobase.h: Do not include , + is enough; adjust __copy_aux declarations; + remove declaration of copy overload for istreambuf_iterator / + ostreambuf_iterator. + * src/debug.cc: Include . + * include/ext/rope: Include . + * include/bits/char_traits.h: Include and . + * 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 . + * testsuite/util/testsuite_hooks.cc: Do it here. + 2007-03-02 Paolo Carlini * testsuite/27_io/objects/wchar_t/9661-1.cc: Include . diff --git a/libstdc++-v3/include/bits/char_traits.h b/libstdc++-v3/include/bits/char_traits.h index 58cddf6ec5b..03d744c643a 100644 --- a/libstdc++-v3/include/bits/char_traits.h +++ b/libstdc++-v3/include/bits/char_traits.h @@ -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 @@ -42,9 +43,11 @@ #pragma GCC system_header -#include // For memmove, memset, memchr -#include // For copy, lexicographical_compare, fill_n -#include // For streampos +#include // For memmove, memset, memchr +#include // For copy, fill_n +#include // For streampos +#include // For EOF +#include // For WEOF, wmemmove, wmemset, etc. _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h index cf3cd71851a..75a89b78ae6 100644 --- a/libstdc++-v3/include/bits/stl_algo.h +++ b/libstdc++-v3/include/bits/stl_algo.h @@ -63,7 +63,7 @@ #define _ALGO_H 1 #include -#include // for _Temporary_buffer +#include // for _Temporary_buffer #include // See concept_check.h for the __glibcxx_*_requires macros. @@ -294,17 +294,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) } } - /** - * @if maint - * This is an overload of find() for streambuf iterators. - * @endif - */ - template - 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. diff --git a/libstdc++-v3/include/bits/stl_algobase.h b/libstdc++-v3/include/bits/stl_algobase.h index 35a8a0383d8..a6d155a95a4 100644 --- a/libstdc++-v3/include/bits/stl_algobase.h +++ b/libstdc++-v3/include/bits/stl_algobase.h @@ -67,7 +67,7 @@ #include #include #include -#include +#include #include #include #include @@ -317,21 +317,33 @@ _GLIBCXX_BEGIN_NAMESPACE(std) } // Helpers for streambuf iterators (either istream or ostream). + // NB: avoid including , relatively large. template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - ostreambuf_iterator<_CharT> >::__type - __copy_aux(_CharT*, _CharT*, ostreambuf_iterator<_CharT>); + struct char_traits; + + template + class istreambuf_iterator; + + template + class ostreambuf_iterator; template 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(_CharT*, _CharT*, + ostreambuf_iterator<_CharT, char_traits<_CharT> >); + + template + typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, + ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type + __copy_aux(const _CharT*, const _CharT*, + ostreambuf_iterator<_CharT, char_traits<_CharT> >); template 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 struct __copy_normal @@ -403,13 +415,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std) __result); } - // Overload for streambuf iterators. - template - typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, - ostreambuf_iterator<_CharT> >::__type - copy(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>, - ostreambuf_iterator<_CharT>); - template struct __copy_backward { diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h index bbfb252143d..0bb65394718 100644 --- a/libstdc++-v3/include/bits/stl_tree.h +++ b/libstdc++-v3/include/bits/stl_tree.h @@ -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 #include -#include #include #include diff --git a/libstdc++-v3/include/ext/rope b/libstdc++-v3/include/ext/rope index 389fd0958d8..45c5de85dad 100644 --- a/libstdc++-v3/include/ext/rope +++ b/libstdc++-v3/include/ext/rope @@ -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 #include #include +#include # ifdef __GC # define __GC_CONST const diff --git a/libstdc++-v3/include/ext/type_traits.h b/libstdc++-v3/include/ext/type_traits.h index 1d931ff7d9d..a4ea1ce48cf 100644 --- a/libstdc++-v3/include/ext/type_traits.h +++ b/libstdc++-v3/include/ext/type_traits.h @@ -37,10 +37,7 @@ #pragma GCC system_header -#include -#include #include -#include // std::streamsize #include _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 - const std::streamsize __numeric_traits_floating<_Value>::__max_digits10; + const int __numeric_traits_floating<_Value>::__max_digits10; template struct __numeric_traits diff --git a/libstdc++-v3/include/std/algorithm b/libstdc++-v3/include/std/algorithm index 7ffbf97369e..d579bbd1b8d 100644 --- a/libstdc++-v3/include/std/algorithm +++ b/libstdc++-v3/include/std/algorithm @@ -1,6 +1,7 @@ // -*- 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 -#include -#include #include #endif /* _GLIBCXX_ALGORITHM */ diff --git a/libstdc++-v3/include/std/deque b/libstdc++-v3/include/std/deque index 57c6e4347ad..93ca4caa776 100644 --- a/libstdc++-v3/include/std/deque +++ b/libstdc++-v3/include/std/deque @@ -1,6 +1,7 @@ // -*- 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 #include #include #include diff --git a/libstdc++-v3/include/std/list b/libstdc++-v3/include/std/list index 0a1ce137615..10461a18317 100644 --- a/libstdc++-v3/include/std/list +++ b/libstdc++-v3/include/std/list @@ -63,10 +63,8 @@ #pragma GCC system_header -#include #include #include -#include #include #ifndef _GLIBCXX_EXPORT_TEMPLATE diff --git a/libstdc++-v3/include/std/memory b/libstdc++-v3/include/std/memory index c47d49c034d..f604ac9f39e 100644 --- a/libstdc++-v3/include/std/memory +++ b/libstdc++-v3/include/std/memory @@ -1,6 +1,6 @@ // -*- 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 #include #include -#include //for iterator_traits #include #include #include diff --git a/libstdc++-v3/include/std/queue b/libstdc++-v3/include/std/queue index 1242a06160b..2d919d0dfdc 100644 --- a/libstdc++-v3/include/std/queue +++ b/libstdc++-v3/include/std/queue @@ -1,6 +1,7 @@ // -*- 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,16 +63,10 @@ #pragma GCC system_header -#include -#include -#include -#include -#include -#include -#include -#include #include #include +#include +#include #include #endif /* _GLIBCXX_QUEUE */ diff --git a/libstdc++-v3/include/std/stack b/libstdc++-v3/include/std/stack index 396f62e6100..b51155e64a3 100644 --- a/libstdc++-v3/include/std/stack +++ b/libstdc++-v3/include/std/stack @@ -1,6 +1,7 @@ // -*- 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,10 +63,6 @@ #pragma GCC system_header -#include -#include -#include -#include #include #include diff --git a/libstdc++-v3/include/std/vector b/libstdc++-v3/include/std/vector index a4a527eea03..d7aba96e0bf 100644 --- a/libstdc++-v3/include/std/vector +++ b/libstdc++-v3/include/std/vector @@ -1,6 +1,7 @@ // -*- 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 #include #include #include diff --git a/libstdc++-v3/src/debug.cc b/libstdc++-v3/src/debug.cc index be5ba01b7ea..4129f686667 100644 --- a/libstdc++-v3/src/debug.cc +++ b/libstdc++-v3/src/debug.cc @@ -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 #include #include +#include using namespace std; diff --git a/libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc b/libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc index 4ae7acfd5c4..1c78672b70c 100644 --- a/libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc +++ b/libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc @@ -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 } diff --git a/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc b/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc index 54e741425de..7d66059b1fd 100644 --- a/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc @@ -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 } diff --git a/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc b/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc index 48f6ae68f69..a999e5b9697 100644 --- a/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc @@ -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 } diff --git a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc index 992056cf9a2..27696998f65 100644 --- a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc +++ b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc @@ -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" } diff --git a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc index 311db92c99b..2b42e41ff93 100644 --- a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc +++ b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc @@ -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 } diff --git a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc index b2dd0e3bc9f..7e655f88b4e 100644 --- a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc +++ b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc @@ -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" } diff --git a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc index 752125ed25f..50a0b14fab5 100644 --- a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc +++ b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc @@ -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 } diff --git a/libstdc++-v3/testsuite/util/testsuite_hooks.cc b/libstdc++-v3/testsuite/util/testsuite_hooks.cc index bb63f68cd06..50347f82dd8 100644 --- a/libstdc++-v3/testsuite/util/testsuite_hooks.cc +++ b/libstdc++-v3/testsuite/util/testsuite_hooks.cc @@ -37,9 +37,11 @@ #include #include #endif + #include #include #include +#include #include #include #include diff --git a/libstdc++-v3/testsuite/util/testsuite_hooks.h b/libstdc++-v3/testsuite/util/testsuite_hooks.h index 764c09ece31..8e22ec0c2b1 100644 --- a/libstdc++-v3/testsuite/util/testsuite_hooks.h +++ b/libstdc++-v3/testsuite/util/testsuite_hooks.h @@ -58,7 +58,6 @@ #include #include -#include #include #ifdef _GLIBCXX_HAVE_SYS_STAT_H