From: Jonathan Brandmeyer (jbrandmeyer_at_[hidden])
Date: 2005-02-03 22:54:13
On Thu, 2005-02-03 at 22:23 -0500, Jonathan Brandmeyer wrote:
> On Thu, 2005-02-03 at 15:48 +0000, John Maddock wrote:
> > >> I attach the valgrind output for one of the Boost.Python tests.
> > >> Does this ring any bells?
> > >
> > > I started to do a test run with GCC 3.3.5, and noticed this warning in
> > > the output (should be an error, IMO...):
> > > /home/jonathan/src/boost-CVS-HEAD/boost/boost/preprocessor/iteration/detail/local.hpp:37:
> > > instantiated from here
> > > /home/jonathan/src/boost-CVS-HEAD/boost/boost/python/object_core.hpp:285:
> > > warning: cannot
> > > pass objects of non-POD type `struct boost::integral_constant<bool,
> > > true>'
> > > through `...'; call will abort at runtime
> > Initially, I thought this might be related to the recent type traits
> > changes, but if it is, I can't see how (integral_constant<bool,v> inherits
> > from mpl::true_ / mpl::false_ so the usual conversions should apply and do
> > the right thing here.
> > Anyone else?
> > John.
> GCC at least doesn't think that the conversion applies, as this test
> The compiler's output:
> /home/jonathan/Desktop/mpl_crash.cpp: In function `int main()':
> /home/jonathan/Desktop/mpl_crash.cpp:19: warning: cannot pass objects of
> non-POD type `struct derived' through `...'; call will abort at
> /home/jonathan/Desktop/mpl_crash.cpp:21: warning: cannot pass objects of
> non-POD type `struct boost::integral_constant<bool, true>' through
The attached patch solves the problem for GCC. The attached test
program was used to test this change.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk