From mboxrd@z Thu Jan 1 00:00:00 1970 From: vakatov@ncbi.nlm.nih.gov To: gcc-gnats@gcc.gnu.org Cc: cpp-build@ncbi.nlm.nih.gov Subject: libstdc++/3272: ostream::operator<<(streambuf*) sets EOFBIT to output stream Date: Tue, 19 Jun 2001 15:26:00 -0000 Message-id: <20010619222322.6088.qmail@sourceware.cygnus.com> X-SW-Source: 2001-06/msg00800.html List-Id: >Number: 3272 >Category: libstdc++ >Synopsis: ostream::operator<<(streambuf*) sets EOFBIT to output stream >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Tue Jun 19 15:26:00 PDT 2001 >Closed-Date: >Last-Modified: >Originator: vakatov@ncbi.nlm.nih.gov >Release: 3.0 >Organization: >Environment: Linux linus 2.2.19 #7 SMP Tue Jun 5 10:28:30 EDT 2001 i686 unknown >Description: ostream::operator<<(streambuf*) sets EOFBIT to output stream A more detailed description, with example and an excerpt from the stdc++-v3 headers where the bug is located is attached ("this_file.cpp"). >How-To-Repeat: See instructions in the attached file >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="this_file.cpp" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="this_file.cpp" Ly8gIFdIRVJFOiAgb3N0cmVhbTo6b3BlcmF0b3I8PCAoc3RyZWFtYnVmKikKLy8gIFdIQVQ6ICAg ZXJyb25lb3VzbHkgc2V0cyBFT0ZCSVQgdG8gdGhlIG91dHB1dCBzdHJlYW0KCgovLyBMaW51eCBs aW51cyAyLjIuMTkgIzcgU01QIFR1ZSBKdW4gNSAxMDoyODozMCBFRFQgMjAwMSBpNjg2IHVua25v d24KLy8gYysrIC0tdmVyc2lvbgovLyAzLjAKCgovLyBjKysgdGhpc19maWxlLmNwcCAgJiYgIC4v YS5vdXQKLy8KLy8gQkVHSU4KLy8gTUlERExFCi8vIFN1cnByaXNlISBFT0ZCSVQgaXMgc2V0IHRv IHRoZSBPVVRQVVQgc3RyZWFtLi4uCgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxzc3Ry ZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKHZvaWQpCnsKICBjb3V0IDw8ICJC RUdJTiIgPDwgZW5kbDsKCiAgaXN0cmluZ3N0cmVhbSBpc3RyKCJNSURETEUiKTsKICBjb3V0IDw8 IGlzdHIucmRidWYoKSA8PCBlbmRsOwoKICBpZiAoKGNvdXQucmRzdGF0ZSgpICYgaW9zX2Jhc2U6 OmVvZmJpdCkgIT0gMCkgewogICAgY2VyciA8PCBlbmRsIDw8ICJTdXJwcmlzZSEgRU9GQklUIGlz IHNldCB0byB0aGUgT1VUUFVUIHN0cmVhbS4uLiIgPDwgZW5kbDsKICB9CgogIGNvdXQgPDwgIkVO RCIgPDwgZW5kbDsKICByZXR1cm4gMDsKfQoKCgojaWZkZWYgSEVSRV9JU19USEVfQlVHCiAgLy8g Q29uY2VpdmFibHksIHRoaXMgY291bGQgYmUgdXNlZCB0byBpbXBsZW1lbnQgYnVmZmVyLXRvLWJ1 ZmZlcgogIC8vIGNvcGllcywgaWYgdGhpcyB3YXMgZXZlciBkZXNpcmVkIGluIGFuIHVuLWFtYmln dW91cyB3YXkgYnkgdGhlCiAgLy8gc3RhbmRhcmQuIElmIHNvLCB0aGVuIGNoZWNrcyBmb3IgX19p b3MgYmVpbmcgemVybyB3b3VsZCBiZQogIC8vIG5lY2Vzc2FyeS4KICB0ZW1wbGF0ZTx0eXBlbmFt ZSBfQ2hhclQsIHR5cGVuYW1lIF9UcmFpdHM+CiAgICBzdHJlYW1zaXplCiAgICBfX2NvcHlfc3Ry ZWFtYnVmcyhiYXNpY19pb3M8X0NoYXJULCBfVHJhaXRzPiYgX19pb3MsCiAgICAJCSAgICAgIGJh c2ljX3N0cmVhbWJ1ZjxfQ2hhclQsIF9UcmFpdHM+KiBfX3NiaW4sCiAgICAJCSAgICAgIGJhc2lj X3N0cmVhbWJ1ZjxfQ2hhclQsIF9UcmFpdHM+KiBfX3Nib3V0KSAKICB7CiAgICAgIHR5cGVkZWYg dHlwZW5hbWUgX1RyYWl0czo6aW50X3R5cGUJaW50X3R5cGU7CiAgICAKICAgICAgc3RyZWFtc2l6 ZSBfX3JldCA9IDA7CiAgICAgIHN0cmVhbXNpemUgX19idWZzaXplID0gX19zYmluLT5pbl9hdmFp bCgpOwogICAgICBzdHJlYW1zaXplIF9feHRyY3Q7CiAgICAgIGJvb2wgX190ZXN0cHV0ID0gX19z Ym91dC0+X01fbW9kZSAmIGlvc19iYXNlOjpvdXQ7CiAgICAgIHRyeSB7CiAgICAJd2hpbGUgKF9f dGVzdHB1dCAmJiBfX2J1ZnNpemUgIT0gLTEpCiAgICAJICB7CiAgICAJICAgIF9feHRyY3QgPSBf X3Nib3V0LT5zcHV0bihfX3NiaW4tPmdwdHIoKSwgX19idWZzaXplKTsKICAgIAkgICAgX19yZXQg Kz0gX194dHJjdDsKICAgIAkgICAgX19zYmluLT5fTV9pbl9jdXJfbW92ZShfX3h0cmN0KTsKICAg IAkgICAgaWYgKF9feHRyY3QgPT0gX19idWZzaXplKQogICAgCSAgICAgIHsKICAgIAkJaW50X3R5 cGUgX19jID0gX19zYmluLT5zZ2V0YygpOwogICAgCQlpZiAoX19jID09IF9UcmFpdHM6OmVvZigp KQogICAgCQkgIHsKCgoJCSAgICA8PDw8PDw8PDwgIEhFUkUgISEhICA+Pj4+Pj4+PgppbmNsdWRl L2crKy12My9iaXRzL3N0cmVhbWJ1Zi50Y2M6MjEyCiAgICAJCSAgICBfX2lvcy5zZXRzdGF0ZShp b3NfYmFzZTo6ZW9mYml0KTsKCgogICAgCQkgICAgYnJlYWs7CiAgICAJCSAgfQogICAgCQlfX2J1 ZnNpemUgPSBfX3NiaW4tPmluX2F2YWlsKCk7CiAgICAJICAgICAgfQogICAgCSAgICBlbHNlCiAg ICAJICAgICAgYnJlYWs7CiAgICAJICB9CiAgICAgIH0KICAgICAgY2F0Y2goZXhjZXB0aW9uJiBf X2ZhaWwpIHsKICAgIAlpZiAoKF9faW9zLmV4Y2VwdGlvbnMoKSAmIGlvc19iYXNlOjpmYWlsYml0 KSAhPSAwKQogICAgCSAgX190aHJvd19leGNlcHRpb25fYWdhaW47CiAgICAgIH0KICAgICAgcmV0 dXJuIF9fcmV0OwogICAgfQp9IC8vIG5hbWVzcGFjZSBzdGQKI2VuZGlmIC8vIEhFUkVfSVNfVEhF X0JVRwo=