From mboxrd@z Thu Jan 1 00:00:00 1970 From: kenny.simpson@gs.com To: gcc-gnats@gcc.gnu.org Cc: theonetruekenny@yahoo.com Subject: libstdc++/3129: std::ios_base::_M_grow_words vs. DR 41 Date: Mon, 11 Jun 2001 14:36:00 -0000 Message-id: <20010611212844.2266.qmail@sourceware.cygnus.com> X-SW-Source: 2001-06/msg00440.html List-Id: >Number: 3129 >Category: libstdc++ >Synopsis: std::ios_base::_M_grow_words vs. DR 41 >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Mon Jun 11 14:36:01 PDT 2001 >Closed-Date: >Last-Modified: >Originator: kenny.simpson@gs.com >Release: 20010604 snapshot >Organization: >Environment: source >Description: according to: http://anubis.dkhttp://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html#41uug.dk/jtc1/sc22/wg21/docs/lwg-defects.html#41 iword/pword should set badbit if they fail and if *this is an object of type basic_ios<>. However, in include/bits/ios_base.h, iword and pword can only fail if _M_grow_words fails. In src/ios.cc, _M_grow_words only returns an empty structure when it fails. There are comments suggesting that this issue was known, but the implementation was not completed. >How-To-Repeat: look at line 223 of src/ios.cc. >Fix: ??? wild suggestion: class ios_base { private: virtual void _M_secret() {} } template class basic_ios : public ios_base { private: void _M_secret() { this->setstate(badbit);} }; line 223 of src/ios.cc: _M_secret(); // DR 41: may throw >Release-Note: >Audit-Trail: >Unformatted: