summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/include
diff options
context:
space:
mode:
authorjlquinn <jlquinn@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-07 14:14:11 +0000
committerjlquinn <jlquinn@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-07 14:14:11 +0000
commit517d2931c17d48c81c620bca857f06290b09f727 (patch)
tree25cff5182a787e32d4f8cdd84649260989f1232b /libstdc++-v3/include
parent604f3a0a141f70ae2779c731573ddf13325c5e12 (diff)
downloadppe42-gcc-517d2931c17d48c81c620bca857f06290b09f727.tar.gz
ppe42-gcc-517d2931c17d48c81c620bca857f06290b09f727.zip
2003-03-07 Jerry Quinn <jlquinn@optonline.net>
* include/bits/streambuf_iterator.h (_M_put): Set _M_failed if sputn fails. * testsuite/27_io/ostream_fail.cc: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@63944 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include')
-rw-r--r--libstdc++-v3/include/bits/streambuf_iterator.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/libstdc++-v3/include/bits/streambuf_iterator.h b/libstdc++-v3/include/bits/streambuf_iterator.h
index c2dee887c4b..95def0b7e4d 100644
--- a/libstdc++-v3/include/bits/streambuf_iterator.h
+++ b/libstdc++-v3/include/bits/streambuf_iterator.h
@@ -202,7 +202,9 @@ namespace std
ostreambuf_iterator&
_M_put(const _CharT* __ws, streamsize __len)
{
- this->_M_sbuf->sputn(__ws, __len);
+ if (__builtin_expect(!_M_failed, true)
+ && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, false))
+ _M_failed = true;
return *this;
}
};
OpenPOWER on IntegriCloud