Boost logo

Boost :

From: John Maddock (john_maddock_at_[hidden])
Date: 2002-05-22 07:06:04


> boost-1.28.0
> gcc-3.1
> linux-pc-gnu

Thanks,

> gcc-C++-action
libs/regex/build/bin/libboost_regex.so/gcc/release/runtime-link-dynamic/shar
ed-linkable-true/cpp_regex_traits.o
> libs/regex/src/cpp_regex_traits.cpp: In member function
> `std::basic_streambuf<_CharT, _Traits>::pos_type
> <unnamed>::parser_buf<charT,
traits>::seekoff(std::basic_streambuf<_CharT,
> _Traits>::off_type, std::_Ios_Seekdir, std::_Ios_Openmode) [with charT
=
> wchar_t, traits = std::char_traits<wchar_t>]':
> /usr/include/g++-v3/bits/locale_facets.h:108: instantiated from here
> libs/regex/src/cpp_regex_traits.cpp:143: warning: enumeration value `
> _M_ios_seekdir_end' not handled in switch
> libs/regex/src/cpp_regex_traits.cpp:143: warning: case value `0' not in
> enumerated type `_Ios_Seekdir'
> libs/regex/src/cpp_regex_traits.cpp:143: warning: case value `1' not in
> enumerated type `_Ios_Seekdir'
> libs/regex/src/cpp_regex_traits.cpp:143: warning: case value `2' not in
> enumerated type `_Ios_Seekdir'
> libs/regex/src/cpp_regex_traits.cpp: In member function
> `std::basic_streambuf<_CharT, _Traits>::pos_type
> <unnamed>::parser_buf<charT,
traits>::seekoff(std::basic_streambuf<_CharT,
> _Traits>::off_type, std::_Ios_Seekdir, std::_Ios_Openmode) [with charT
=
> char, traits = std::char_traits<char>]':
> /usr/include/g++-v3/bits/locale_facets.h:108: instantiated from here
> libs/regex/src/cpp_regex_traits.cpp:143: warning: enumeration value `
> _M_ios_seekdir_end' not handled in switch
> libs/regex/src/cpp_regex_traits.cpp:143: warning: case value `0' not in
> enumerated type `_Ios_Seekdir'
> libs/regex/src/cpp_regex_traits.cpp:143: warning: case value `1' not in
> enumerated type `_Ios_Seekdir'
> libs/regex/src/cpp_regex_traits.cpp:143: warning: case value `2' not in
> enumerated type `_Ios_Seekdir'

Those warnings are actually pretty worrying, but they also look to be just
plain wrong, the switch in the code is on type std::ios_base::seekdir which
according to the standard has three members only: beg, cur, end, all of
which are present in the switch statement. However none of them seem to be
legal values for gcc3.1!!!
How is std::ios_base declared in 3.1? This looks like a bug in 3.1's
standard lib to me.

John Maddock
http://ourworld.compuserve.com/homepages/john_maddock/index.htm


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk