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