Boost logo

Boost :

Subject: Re: [boost] [1.41.0] Beta 1 release candidate
From: Phil Richards (news_at_[hidden])
Date: 2009-11-03 15:29:00


On Mon, 2009-11-02 at 18:45 -0500, Stefan Seefeld wrote:
> On 11/02/2009 04:47 PM, Phil Richards wrote:
> > Beman Dawes wrote:
> >
> >> 1.41.0 beta 1 release candidates are available at http://boost.cowic.de/rc/
> >>
> >> Before pushing the beta out to SourceForge, I'd appreciate it if
> >> several people would try the release candidate and report success or
> >> problems.
> >>
> >> Thanks,
> >>
> >> --Beman
> >>
> > Platform: Ubuntu 9.10 (x86)
> > Compiler: gcc 4.4.1
> >
> > Built successfully.
> > (Quite a lot of strict-aliasing rules warnings thrown up.)
> >
>
> I take it these are all related to boost.python ?

Some are in python, e.g.:

gcc.compile.c++ bin.v2/libs/python/build/gcc-4.4.1/release/threading-multi/dict.o

./boost/python/detail/destroy.hpp: In member function ‘bool boost::python::detail::dict_base::has_key(const boost::python::api::object&) const’:
./boost/python/detail/destroy.hpp:33: warning: dereferencing pointer ‘p.190’ does break strict-aliasing rules
./boost/python/detail/destroy.hpp:90: note: initialized from here
[...]

A number pop up from wave, e.g.:

gcc.compile.c++ bin.v2/libs/wave/build/gcc-4.4.1/release/threading-multi/instantiate_cpp_exprgrammar.o
In file included from ./boost/wave/wave_config.hpp:217,
                 from libs/wave/src/instantiate_cpp_exprgrammar.cpp:11:
./boost/wave/util/flex_string.hpp: In member function ‘Storage& boost::wave::util::CowString<Storage, Align>::Data() const [with Storage = boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, Align = char*]’:
./boost/wave/util/flex_string.hpp:1312: instantiated from ‘boost::wave::util::CowString<Storage, Align>::~CowString() [with Storage = boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, Align = char*]’
./boost/wave/util/flex_string.hpp:1519: instantiated from ‘boost::wave::util::flex_string<E, T, A, Storage>::~flex_string() [with E = char, T = std::char_traits<char>, A = std::allocator<char>, Storage = boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, char*>]’
./boost/wave/grammars/cpp_expression_grammar.hpp:769: instantiated from ‘static bool boost::wave::grammars::expression_grammar_gen<TokenT>::evaluate(const typename std::list<TokenT, boost::fast_pool_allocator<TokenT, boost::default_user_allocator_new_delete, boost::details::pool::pthread_mutex, 32u> >::const_iterator&, const typename std::list<TokenT, boost::fast_pool_allocator<TokenT, boost::default_user_allocator_new_delete, boost::details::pool::pthread_mutex, 32u> >::const_iterator&, const typename TokenT::position_type&, bool, boost::wave::grammars::value_error&) [with TokenT = boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::char_traits<char>, std::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, char*> > > >]’
libs/wave/src/instantiate_cpp_exprgrammar.cpp:41: instantiated from here
./boost/wave/util/flex_string.hpp:1214: warning: dereferencing type-punned pointer will break strict-aliasing rules
./boost/wave/util/flex_string.hpp: In member function ‘void boost::wave::util::CowString<Storage, Align>::MakeUnique() const [with Storage = boost::wave::util::AllocatorStringStorage<char, std::allocator<char> >, Align = char*]’:
./boost/wave/util/flex_string.hpp:653: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
./boost/wave/util/flex_string.hpp:584: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
./boost/wave/util/flex_string.hpp:583: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
./boost/wave/util/flex_string.hpp:581: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
./boost/wave/util/flex_string.hpp:576: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
./boost/wave/util/flex_string.hpp:1243: note: initialized from here
./boost/wave/util/flex_string.hpp:611: warning: dereferencing pointer ‘<anonymous>’ does break strict-aliasing rules
./boost/wave/util/flex_string.hpp:1243: note: initialized from here
[... and so on...]

This is one of shorter warning messages: one of them is a little over
8000 characters.

I have no idea whether these warnings are bogus or not, or whether they
actually indicate a real or potential problem...

Phil

-- 
Phil Richards, <news_at_[hidden]>

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