aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog11
-rw-r--r--libstdc++-v3/include/bits/istream.tcc6
-rw-r--r--libstdc++-v3/testsuite/27_io/streambuf.cc11
3 files changed, 25 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 0c73017..62af63c 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,14 @@
+2001-03-09 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
+
+ * include/bits/istream.tcc ( basic_istream<_CharT, _Traits>&
+ operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)):
+ Use streamsize, not int_type.
+
+2001-03-08 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/27_io/streambuf.cc (test06): New test, disabled at the
+ moment.
+
2001-03-08 Andreas Schwab <schwab@suse.de>
* acinclude.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Fix syntax in test
diff --git a/libstdc++-v3/include/bits/istream.tcc b/libstdc++-v3/include/bits/istream.tcc
index faee226..0ea81cf 100644
--- a/libstdc++-v3/include/bits/istream.tcc
+++ b/libstdc++-v3/include/bits/istream.tcc
@@ -984,9 +984,9 @@ namespace std {
{
try {
// Figure out how many characters to extract.
- int_type __num = static_cast<int_type>(__in.width());
- if (__num <= 0)
- __num = basic_string<_CharT, _Traits>::npos;
+ streamsize __num = __in.width();
+ if (__num == 0)
+ __num = numeric_limits<streamsize>::max();
__streambuf_type* __sb = __in.rdbuf();
const __ctype_type* __ctype = __in._M_get_fctype_ios();
diff --git a/libstdc++-v3/testsuite/27_io/streambuf.cc b/libstdc++-v3/testsuite/27_io/streambuf.cc
index 4aaa895..30a4499 100644
--- a/libstdc++-v3/testsuite/27_io/streambuf.cc
+++ b/libstdc++-v3/testsuite/27_io/streambuf.cc
@@ -326,6 +326,17 @@ void test05()
nsp.sputc('a');
}
+// test06
+// XXX this should work, doesn't due to compiler limitations.
+#if 0
+namespace gnu
+{
+ class something_derived;
+}
+
+class gnu::something_derived : std::streambuf { };
+#endif
+
int main()
{
test01();