From f4e39278b3325b745acf5d70eb2c7800544dd87f Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Tue, 27 Feb 2007 17:48:09 +0000 Subject: [PATCH] PR libstdc++/28080 (partial) 2007-02-27 Paolo Carlini PR libstdc++/28080 (partial) * include/std/bitset: Do not include , is enough. (operator>>(std::basic_istream<>&, bitset<>&)): Tweak, refer to ios_base as a base of basic_istream. * include/std/iomanip: Do not include , + is enough. * include/std/iosfwd: Do not include here... * include/bits/locale_facets.h: ... do it here, when needed. * include/bits/ostream.tcc: Clean up, do not include here... * include/std/ostream: ... here instead. * include/bits/istream.tcc: Likewise for and ... * include/std/istream: ... here. * include/bits/sstream.tcc: Do not include . From-SVN: r122380 --- libstdc++-v3/ChangeLog | 16 ++++++++++++++++ libstdc++-v3/include/bits/istream.tcc | 3 --- libstdc++-v3/include/bits/locale_facets.h | 1 + libstdc++-v3/include/bits/ostream.tcc | 5 ++--- libstdc++-v3/include/bits/sstream.tcc | 5 ++--- libstdc++-v3/include/std/bitset | 19 +++++++++++-------- libstdc++-v3/include/std/iomanip | 5 +++-- libstdc++-v3/include/std/iosfwd | 4 ++-- libstdc++-v3/include/std/istream | 5 ++++- libstdc++-v3/include/std/ostream | 4 +++- 10 files changed, 44 insertions(+), 23 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 38a930be54e..983c782ffec 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,19 @@ +2007-02-27 Paolo Carlini + + PR libstdc++/28080 (partial) + * include/std/bitset: Do not include , is enough. + (operator>>(std::basic_istream<>&, bitset<>&)): Tweak, refer to + ios_base as a base of basic_istream. + * include/std/iomanip: Do not include , + + is enough. + * include/std/iosfwd: Do not include here... + * include/bits/locale_facets.h: ... do it here, when needed. + * include/bits/ostream.tcc: Clean up, do not include here... + * include/std/ostream: ... here instead. + * include/bits/istream.tcc: Likewise for and ... + * include/std/istream: ... here. + * include/bits/sstream.tcc: Do not include . + 2007-02-27 Richard Guenther * acinclude.m4: Adjust regular expression for ld version extraction. diff --git a/libstdc++-v3/include/bits/istream.tcc b/libstdc++-v3/include/bits/istream.tcc index c6a884650dd..8714c9f2f65 100644 --- a/libstdc++-v3/include/bits/istream.tcc +++ b/libstdc++-v3/include/bits/istream.tcc @@ -43,9 +43,6 @@ #pragma GCC system_header -#include -#include // For flush() - _GLIBCXX_BEGIN_NAMESPACE(std) template diff --git a/libstdc++-v3/include/bits/locale_facets.h b/libstdc++-v3/include/bits/locale_facets.h index 0f7cdd3a3ff..7746d1dc7a1 100644 --- a/libstdc++-v3/include/bits/locale_facets.h +++ b/libstdc++-v3/include/bits/locale_facets.h @@ -45,6 +45,7 @@ #include // For struct tm #include // For wctype_t +#include #include #include #include // For ios_base, ios_base::iostate diff --git a/libstdc++-v3/include/bits/ostream.tcc b/libstdc++-v3/include/bits/ostream.tcc index db09d0a99e5..382f0181493 100644 --- a/libstdc++-v3/include/bits/ostream.tcc +++ b/libstdc++-v3/include/bits/ostream.tcc @@ -1,6 +1,7 @@ // ostream classes -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +// 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,8 +43,6 @@ #pragma GCC system_header -#include - _GLIBCXX_BEGIN_NAMESPACE(std) template diff --git a/libstdc++-v3/include/bits/sstream.tcc b/libstdc++-v3/include/bits/sstream.tcc index 4de1c8124b5..2e642390f5c 100644 --- a/libstdc++-v3/include/bits/sstream.tcc +++ b/libstdc++-v3/include/bits/sstream.tcc @@ -1,6 +1,7 @@ // String based streams -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +// 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,8 +43,6 @@ #pragma GCC system_header -#include - _GLIBCXX_BEGIN_NAMESPACE(std) template diff --git a/libstdc++-v3/include/std/bitset b/libstdc++-v3/include/std/bitset index ec098175012..b0bc55545f5 100644 --- a/libstdc++-v3/include/std/bitset +++ b/libstdc++-v3/include/std/bitset @@ -55,7 +55,7 @@ #include #include // For invalid_argument, out_of_range, // overflow_error -#include +#include #define _GLIBCXX_BITSET_BITS_PER_WORD (__CHAR_BIT__ * sizeof(unsigned long)) #define _GLIBCXX_BITSET_WORDS(__n) \ @@ -1227,12 +1227,15 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) std::basic_istream<_CharT, _Traits>& operator>>(std::basic_istream<_CharT, _Traits>& __is, bitset<_Nb>& __x) { - typedef typename _Traits::char_type char_type; + typedef typename _Traits::char_type char_type; + typedef std::basic_istream<_CharT, _Traits> __istream_type; + typedef typename __istream_type::ios_base __ios_base; + std::basic_string<_CharT, _Traits> __tmp; __tmp.reserve(_Nb); - std::ios_base::iostate __state = std::ios_base::goodbit; - typename std::basic_istream<_CharT, _Traits>::sentry __sentry(__is); + typename __ios_base::iostate __state = __ios_base::goodbit; + typename __istream_type::sentry __sentry(__is); if (__sentry) { try @@ -1249,7 +1252,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) typename _Traits::int_type __c1 = __buf->sbumpc(); if (_Traits::eq_int_type(__c1, __eof)) { - __state |= std::ios_base::eofbit; + __state |= __ios_base::eofbit; break; } else @@ -1262,18 +1265,18 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD) else if (_Traits::eq_int_type(__buf->sputbackc(__c2), __eof)) { - __state |= std::ios_base::failbit; + __state |= __ios_base::failbit; break; } } } } catch(...) - { __is._M_setstate(std::ios_base::badbit); } + { __is._M_setstate(__ios_base::badbit); } } if (__tmp.empty() && _Nb) - __state |= std::ios_base::failbit; + __state |= __ios_base::failbit; else __x._M_copy_from_string(__tmp, static_cast(0), _Nb); if (__state) diff --git a/libstdc++-v3/include/std/iomanip b/libstdc++-v3/include/std/iomanip index a1bb4149304..13079e4fb04 100644 --- a/libstdc++-v3/include/std/iomanip +++ b/libstdc++-v3/include/std/iomanip @@ -43,7 +43,8 @@ #pragma GCC system_header #include -#include +#include +#include _GLIBCXX_BEGIN_NAMESPACE(std) @@ -111,7 +112,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) template inline basic_ostream<_CharT, _Traits>& - operator<<(basic_ostream<_CharT,_Traits>& __os, _Setiosflags __f) + operator<<(basic_ostream<_CharT, _Traits>& __os, _Setiosflags __f) { __os.setf(__f._M_mask); return __os; diff --git a/libstdc++-v3/include/std/iosfwd b/libstdc++-v3/include/std/iosfwd index a4d0c3fdf19..d2da12bf6a3 100644 --- a/libstdc++-v3/include/std/iosfwd +++ b/libstdc++-v3/include/std/iosfwd @@ -1,6 +1,7 @@ // Forwarding declarations -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 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 @@ -44,7 +45,6 @@ #include #include #include -#include // For isspace, etc. #include // For string forward declarations. #include #include diff --git a/libstdc++-v3/include/std/istream b/libstdc++-v3/include/std/istream index e81c9cd9252..d6b0dfb0816 100644 --- a/libstdc++-v3/include/std/istream +++ b/libstdc++-v3/include/std/istream @@ -1,6 +1,7 @@ // Input streams -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +// 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,6 +43,8 @@ #pragma GCC system_header #include +#include +#include #include // For numeric_limits _GLIBCXX_BEGIN_NAMESPACE(std) diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream index e97b7a4b410..2a84f808d7e 100644 --- a/libstdc++-v3/include/std/ostream +++ b/libstdc++-v3/include/std/ostream @@ -1,6 +1,7 @@ // Output streams -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 +// 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,6 +43,7 @@ #pragma GCC system_header #include +#include _GLIBCXX_BEGIN_NAMESPACE(std)