diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 3165b3ea651..c4058b2c239 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2007-11-15 Paolo Carlini + + * include/bits/istream.tcc (basic_istream<>::sentry:: + sentry(basic_istream<>&, bool)): Explicitely convert to bool. + * include/bits/locale_facets.tcc (num_put<>::_M_insert_int(_OutIter, + ios_base&, _CharT, _ValueT)): Likewise. + * include/std/ostream (basic_ostream<>::sentry::~sentry): Likewise. + 2007-11-15 Paolo Carlini PR libstdc++/34105 diff --git a/libstdc++-v3/include/bits/istream.tcc b/libstdc++-v3/include/bits/istream.tcc index 2e65b4847b9..440d234023e 100644 --- a/libstdc++-v3/include/bits/istream.tcc +++ b/libstdc++-v3/include/bits/istream.tcc @@ -56,7 +56,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) { if (__in.tie()) __in.tie()->flush(); - if (!__noskip && (__in.flags() & ios_base::skipws)) + if (!__noskip && bool(__in.flags() & ios_base::skipws)) { const __int_type __eof = traits_type::eof(); __streambuf_type* __sb = __in.rdbuf(); diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc index 1b714adf8fe..000d6fb9d62 100644 --- a/libstdc++-v3/include/bits/locale_facets.tcc +++ b/libstdc++-v3/include/bits/locale_facets.tcc @@ -876,14 +876,14 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE // Decimal. if (__v > 0) { - if (__flags & ios_base::showpos + if (bool(__flags & ios_base::showpos) && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) *--__cs = __lit[__num_base::_S_oplus], ++__len; } else if (__v) *--__cs = __lit[__num_base::_S_ominus], ++__len; } - else if (__flags & ios_base::showbase && __v) + else if (bool(__flags & ios_base::showbase) && __v) { if (__basefield == ios_base::oct) *--__cs = __lit[__num_base::_S_odigits], ++__len; diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream index 4fb6d19b7fc..db9c9116060 100644 --- a/libstdc++-v3/include/std/ostream +++ b/libstdc++-v3/include/std/ostream @@ -416,7 +416,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ~sentry() { // XXX MT - if (_M_os.flags() & ios_base::unitbuf && !uncaught_exception()) + if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) { // Can't call flush directly or else will get into recursive lock. if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1)