
Hi, Clang 2.9 just pointed out what's probably an error in fusion in boost-trunk, the same one I ran into during the Conversion review yesterday it seems. Note that GCC doesn't complain even with -Wall -Wextra -pedantic. The error: In file included from fusion.cpp:1: In file included from boost-trunk/boost/fusion/include/vector.hpp:10: In file included from boost-trunk/boost/fusion/container/vector.hpp:11: In file included from boost-trunk/boost/fusion/container/vector/vector10.hpp:15: In file included from boost-trunk/boost/fusion/sequence/intrinsic/begin.hpp:17: In file included from boost-trunk/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp:11: In file included from boost-trunk/boost/fusion/iterator/segmented_iterator.hpp:13: In file included from boost-trunk/boost/fusion/container/list/cons.hpp:14: In file included from boost-trunk/boost/fusion/sequence/intrinsic/end.hpp:17: boost-trunk/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp:33:70: error: invalid use of incomplete type 'fusion::nil' segmented_end_impl<Sequence, fusion::nil>::call(seq, fusion::nil())); ^~~~~~~~~~~~~ In file included from fusion.cpp:1: In file included from boost-trunk/boost/fusion/include/vector.hpp:10: In file included from boost-trunk/boost/fusion/container/vector.hpp:11: In file included from boost-trunk/boost/fusion/container/vector/vector10.hpp:15: In file included from boost-trunk/boost/fusion/sequence/intrinsic/begin.hpp:17: In file included from boost-trunk/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp:10: In file included from boost-trunk/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp:11: boost-trunk/boost/fusion/container/list/cons_fwd.hpp:13:12: note: forward declaration of 'boost::fusion::nil' struct nil; ^ 1 error generated. The code to reproduce the error: #include <boost/fusion/include/vector.hpp> int main(int, char*[]) { return 0; } It seems nil is either only forward-declared or the include with the declaration is missing. Kind regards, Jeroen Habraken

On 8/21/2011 6:03 AM, Jeroen Habraken wrote:
boost-trunk/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp:33:70: error: invalid use of incomplete type 'fusion::nil' segmented_end_impl<Sequence, fusion::nil>::call(seq, fusion::nil()));
This is my bug. I'll see about fixing it. -- Eric Niebler BoostPro Computing http://www.boostpro.com

On 8/21/2011 10:00 PM, Eric Niebler wrote:
On 8/21/2011 6:03 AM, Jeroen Habraken wrote:
boost-trunk/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp:33:70: error: invalid use of incomplete type 'fusion::nil' segmented_end_impl<Sequence, fusion::nil>::call(seq, fusion::nil()));
This is my bug. I'll see about fixing it.
OK, I've fixed this on trunk. Jeroen, I'm having difficulty running regression tests with clang. Can you run Fusion's test suite and tell me if everything is ok? -- Eric Niebler BoostPro Computing http://www.boostpro.com

Le 23/08/11 17:19, Eric Niebler a écrit :
On 8/21/2011 10:00 PM, Eric Niebler wrote:
On 8/21/2011 6:03 AM, Jeroen Habraken wrote:
boost-trunk/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp:33:70: error: invalid use of incomplete type 'fusion::nil' segmented_end_impl<Sequence, fusion::nil>::call(seq, fusion::nil())); This is my bug. I'll see about fixing it. OK, I've fixed this on trunk. Jeroen, I'm having difficulty running regression tests with clang. Can you run Fusion's test suite and tell me if everything is ok?
Hi, I have reached to build Boost.Conversion and Boost.Fusion with clang-2.9 (03 and 0x) without any major trouble after updating the trunk. However I get a warning that could eassily be removed In file included from ../../../boost/fusion/algorithm/iteration/reverse_fold.hpp:14: ../../../boost/fusion/algorithm/iteration/detail/fold.hpp:189:48: warning: unused parameter 'it0' [-Wunused-parameter] call(State const& state,It0 const& it0,F f) ^ ../../../boost/fusion/algorithm/iteration/detail/fold.hpp:189:54: warning: unused parameter 'f' [-Wunused-parameter] call(State const& state,It0 const& it0,F f) with this patch iMac-de-Vicente-Botet-Escriba:fusion viboes$ svn diff algorithm/iteration/detail/fold.hpp Index: algorithm/iteration/detail/fold.hpp =================================================================== --- algorithm/iteration/detail/fold.hpp (revision 74020) +++ algorithm/iteration/detail/fold.hpp (working copy) @@ -186,7 +186,7 @@ { template<typename State, typename It0, typename F> static Result - call(State const& state,It0 const& it0,F f) + call(State const& state,It0 const&,F) { return static_cast<Result>(state); } Could you please commit this minor change? Best, Vicente

On 8/23/2011 12:46 PM, Vicente J. Botet Escriba wrote:
Le 23/08/11 17:19, Eric Niebler a écrit :
On 8/21/2011 10:00 PM, Eric Niebler wrote:
On 8/21/2011 6:03 AM, Jeroen Habraken wrote:
boost-trunk/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp:33:70:
error: invalid use of incomplete type 'fusion::nil' segmented_end_impl<Sequence, fusion::nil>::call(seq, fusion::nil())); This is my bug. I'll see about fixing it. OK, I've fixed this on trunk. Jeroen, I'm having difficulty running regression tests with clang. Can you run Fusion's test suite and tell me if everything is ok?
Hi,
I have reached to build Boost.Conversion and Boost.Fusion with clang-2.9 (03 and 0x) without any major trouble after updating the trunk. However I get a warning that could eassily be removed
In file included from ../../../boost/fusion/algorithm/iteration/reverse_fold.hpp:14: ../../../boost/fusion/algorithm/iteration/detail/fold.hpp:189:48: warning: unused parameter 'it0' [-Wunused-parameter] call(State const& state,It0 const& it0,F f) ^ ../../../boost/fusion/algorithm/iteration/detail/fold.hpp:189:54: warning: unused parameter 'f' [-Wunused-parameter] call(State const& state,It0 const& it0,F f)
This is unrelated to my recent changes, but I'd be happy to fix it if Joel agrees (and I don't see why he wouldn't). Joel? -- Eric Niebler BoostPro Computing http://www.boostpro.com

On 8/24/2011 3:42 AM, Eric Niebler wrote:
I have reached to build Boost.Conversion and Boost.Fusion with clang-2.9 (03 and 0x) without any major trouble after updating the trunk. However I get a warning that could eassily be removed
In file included from ../../../boost/fusion/algorithm/iteration/reverse_fold.hpp:14: ../../../boost/fusion/algorithm/iteration/detail/fold.hpp:189:48: warning: unused parameter 'it0' [-Wunused-parameter] call(State const& state,It0 const& it0,F f) ^ ../../../boost/fusion/algorithm/iteration/detail/fold.hpp:189:54: warning: unused parameter 'f' [-Wunused-parameter] call(State const& state,It0 const& it0,F f)
This is unrelated to my recent changes, but I'd be happy to fix it if Joel agrees (and I don't see why he wouldn't).
Joel?
Somehow, I missed this post. I applied the patch. Regards, -- Joel de Guzman http://www.boostpro.com http://boost-spirit.com

On 23 August 2011 17:19, Eric Niebler <eric@boostpro.com> wrote:
On 8/21/2011 10:00 PM, Eric Niebler wrote:
On 8/21/2011 6:03 AM, Jeroen Habraken wrote:
boost-trunk/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp:33:70: error: invalid use of incomplete type 'fusion::nil' segmented_end_impl<Sequence, fusion::nil>::call(seq, fusion::nil()));
This is my bug. I'll see about fixing it.
OK, I've fixed this on trunk. Jeroen, I'm having difficulty running regression tests with clang. Can you run Fusion's test suite and tell me if everything is ok?
-- Eric Niebler BoostPro Computing http://www.boostpro.com
I've run the Fusion test suite as well as the original test case with clang 2.9, both passed without a hitch. Thank you for looking into this. Jeroen
participants (4)
-
Eric Niebler
-
Jeroen Habraken
-
Joel de Guzman
-
Vicente J. Botet Escriba