aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2007-02-27 17:48:09 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2007-02-27 17:48:09 +0000
commitf4e39278b3325b745acf5d70eb2c7800544dd87f (patch)
treec8b8ecb18ca1d3b7426df2cb41bbc6ca3ab50618
parent01e7cd6e292e62d5b21500deb06cc11843ec4be0 (diff)
downloadgcc-f4e39278b3325b745acf5d70eb2c7800544dd87f.zip
gcc-f4e39278b3325b745acf5d70eb2c7800544dd87f.tar.gz
gcc-f4e39278b3325b745acf5d70eb2c7800544dd87f.tar.bz2
PR libstdc++/28080 (partial)
2007-02-27 Paolo Carlini <pcarlini@suse.de> PR libstdc++/28080 (partial) * include/std/bitset: Do not include <ios>, <iosfwd> is enough. (operator>>(std::basic_istream<>&, bitset<>&)): Tweak, refer to ios_base as a base of basic_istream. * include/std/iomanip: Do not include <ios>, <iosfwd> + <bits/ios_base.h> is enough. * include/std/iosfwd: Do not include <cctype> here... * include/bits/locale_facets.h: ... do it here, when needed. * include/bits/ostream.tcc: Clean up, do not include <locale> here... * include/std/ostream: ... here instead. * include/bits/istream.tcc: Likewise for <locale> and <ostream>... * include/std/istream: ... here. * include/bits/sstream.tcc: Do not include <sstream>. From-SVN: r122380
-rw-r--r--libstdc++-v3/ChangeLog16
-rw-r--r--libstdc++-v3/include/bits/istream.tcc3
-rw-r--r--libstdc++-v3/include/bits/locale_facets.h1
-rw-r--r--libstdc++-v3/include/bits/ostream.tcc5
-rw-r--r--libstdc++-v3/include/bits/sstream.tcc5
-rw-r--r--libstdc++-v3/include/std/bitset19
-rw-r--r--libstdc++-v3/include/std/iomanip5
-rw-r--r--libstdc++-v3/include/std/iosfwd4
-rw-r--r--libstdc++-v3/include/std/istream5
-rw-r--r--libstdc++-v3/include/std/ostream4
10 files changed, 44 insertions, 23 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 38a930b..983c782 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,19 @@
+2007-02-27 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/28080 (partial)
+ * include/std/bitset: Do not include <ios>, <iosfwd> is enough.
+ (operator>>(std::basic_istream<>&, bitset<>&)): Tweak, refer to
+ ios_base as a base of basic_istream.
+ * include/std/iomanip: Do not include <ios>, <iosfwd> +
+ <bits/ios_base.h> is enough.
+ * include/std/iosfwd: Do not include <cctype> here...
+ * include/bits/locale_facets.h: ... do it here, when needed.
+ * include/bits/ostream.tcc: Clean up, do not include <locale> here...
+ * include/std/ostream: ... here instead.
+ * include/bits/istream.tcc: Likewise for <locale> and <ostream>...
+ * include/std/istream: ... here.
+ * include/bits/sstream.tcc: Do not include <sstream>.
+
2007-02-27 Richard Guenther <rguenther@suse.de>
* 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 c6a8846..8714c9f 100644
--- a/libstdc++-v3/include/bits/istream.tcc
+++ b/libstdc++-v3/include/bits/istream.tcc
@@ -43,9 +43,6 @@
#pragma GCC system_header
-#include <locale>
-#include <ostream> // For flush()
-
_GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _CharT, typename _Traits>
diff --git a/libstdc++-v3/include/bits/locale_facets.h b/libstdc++-v3/include/bits/locale_facets.h
index 0f7cdd3..7746d1d 100644
--- a/libstdc++-v3/include/bits/locale_facets.h
+++ b/libstdc++-v3/include/bits/locale_facets.h
@@ -45,6 +45,7 @@
#include <ctime> // For struct tm
#include <cwctype> // For wctype_t
+#include <cctype>
#include <bits/ctype_base.h>
#include <iosfwd>
#include <bits/ios_base.h> // For ios_base, ios_base::iostate
diff --git a/libstdc++-v3/include/bits/ostream.tcc b/libstdc++-v3/include/bits/ostream.tcc
index db09d0a..382f018 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 <locale>
-
_GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _CharT, typename _Traits>
diff --git a/libstdc++-v3/include/bits/sstream.tcc b/libstdc++-v3/include/bits/sstream.tcc
index 4de1c81..2e64239 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 <sstream>
-
_GLIBCXX_BEGIN_NAMESPACE(std)
template <class _CharT, class _Traits, class _Alloc>
diff --git a/libstdc++-v3/include/std/bitset b/libstdc++-v3/include/std/bitset
index ec09817..b0bc555 100644
--- a/libstdc++-v3/include/std/bitset
+++ b/libstdc++-v3/include/std/bitset
@@ -55,7 +55,7 @@
#include <string>
#include <bits/functexcept.h> // For invalid_argument, out_of_range,
// overflow_error
-#include <ios>
+#include <iosfwd>
#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<size_t>(0), _Nb);
if (__state)
diff --git a/libstdc++-v3/include/std/iomanip b/libstdc++-v3/include/std/iomanip
index a1bb414..13079e4 100644
--- a/libstdc++-v3/include/std/iomanip
+++ b/libstdc++-v3/include/std/iomanip
@@ -43,7 +43,8 @@
#pragma GCC system_header
#include <bits/c++config.h>
-#include <ios>
+#include <iosfwd>
+#include <bits/ios_base.h>
_GLIBCXX_BEGIN_NAMESPACE(std)
@@ -111,7 +112,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _CharT, typename _Traits>
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 a4d0c3f..d2da12b 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 <bits/c++config.h>
#include <bits/c++locale.h>
#include <bits/c++io.h>
-#include <cctype> // For isspace, etc.
#include <bits/stringfwd.h> // For string forward declarations.
#include <bits/postypes.h>
#include <bits/functexcept.h>
diff --git a/libstdc++-v3/include/std/istream b/libstdc++-v3/include/std/istream
index e81c9cd..d6b0dfb 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 <ios>
+#include <locale>
+#include <ostream>
#include <limits> // For numeric_limits
_GLIBCXX_BEGIN_NAMESPACE(std)
diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream
index e97b7a4..2a84f80 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 <ios>
+#include <locale>
_GLIBCXX_BEGIN_NAMESPACE(std)