Boost logo

Boost :

From: Jens Maurer (Jens.Maurer_at_[hidden])
Date: 2004-01-05 07:56:38


Beman Dawes wrote:
> As far as the Boost regression tests go, there hasn't be a lot of
> progress with GCC. The same Boost tests have been failing for the last
> four or five GCC releases, regardless of operating system.

There are also some warnings showing up with recent gcc's, for example:

function - lambda_test - gcc-3.4-cvs
Compiler output:

In file included from /home/BOOST/head-regression/boost/boost/lambda/core.hpp:58,
                  from /home/BOOST/head-regression/boost/boost/lambda/lambda.hpp:19,
                  from /home/BOOST/head-regression/boost/libs/function/test/lambda_test.cpp:14:
/home/BOOST/head-regression/boost/boost/lambda/detail/lambda_functor_base.hpp: In member function `RET boost::lambda::lambda_functor_base<boost::lambda::do_nothing_action, Args>::call(A&, B&, C&, Env&) const':
/home/BOOST/head-regression/boost/boost/lambda/detail/lambda_functor_base.hpp:319: warning: no return statement in function returning non-void
In file included from /home/BOOST/head-regression/boost/boost/lambda/core.hpp:62,
                  from /home/BOOST/head-regression/boost/boost/lambda/lambda.hpp:19,
                  from /home/BOOST/head-regression/boost/libs/function/test/lambda_test.cpp:14:
/home/BOOST/head-regression/boost/boost/lambda/detail/ret.hpp: In static member function `static Ret boost::lambda::voidifier_action::apply(A&)':
/home/BOOST/head-regression/boost/boost/lambda/detail/ret.hpp:260: warning: no return statement in function returning non-void

variant - recursive_variant_test - gcc-3.4-cvs
Compiler output:

In file included from /home/BOOST/head-regression/boost/boost/variant.hpp:29,
                  from /home/BOOST/head-regression/boost/libs/variant/test/recursive_variant_test.cpp:18:
/home/BOOST/head-regression/boost/boost/variant/visitor_ptr.hpp: In member function `R boost::visitor_ptr_t<T, R>::operator()(const U&) const':
/home/BOOST/head-regression/boost/boost/variant/visitor_ptr.hpp:72: warning: no return statement in function returning non-void

The code in question does look like we're doing something strange.
A question to the author(s):
It might be that the return value is never used in the caller, but
can we probably replace the return type of the functions in question
with "void", or will that break other parts of the framework?
Can we probably return a dummy, without requiring a ctor for the
return type,
e.g. "return *static_cast<R*)(0);"
(That's not good, because it's undefined, but you get the idea.)

Jens Maurer


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