libstdc++/3129: std::ios_base::_M_grow_words vs. DR 41
kenny.simpson@gs.com
kenny.simpson@gs.com
Mon Jun 11 14:36:00 GMT 2001
>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 <typename charT, typename traits>
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:
More information about the Gcc-bugs
mailing list