Building with "/usr/local/gcc-4.1.1/bin/g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -g --save-temps -DBOOST_ALL_NO_LIB=1 -I"../../.." -I"/home/ericne/boost/cvs/boost" -c -o "C:\cygwin\home\ericne\boost\cvs\boost\bin.v2\libs\xpressive\scratch\gcc-4.1\debug\main.o" "main.cpp" Error: ../../../boost/mpl/aux_/has_tag.hpp: In instantiation of 'boost::mpl::aux::has_tag<T2, mpl_::bool_<f alse> >': ../../../boost/mpl/sequence_tag.hpp:115: instantiated from 'boost::mpl::sequence_tag<T2>' ../../../boost/mpl/size.hpp:34: instantiated from 'boost::mpl::size<T2>' ../../../boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:85: instantiated from 'const int boost ::mpl::aux::template_arity_impl<boost::proto::basic_expr<boost::proto::right_shift_tag, boost::mpl:: vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<b oost::space_tag>, 1l> >, boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boos t::mpl::vector1<boost::space_tag>, 1l> > >, 2l>, 1>::value' ../../../boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:93: instantiated from 'const int boost ::mpl::aux::template_arity<boost::proto::basic_expr<boost::proto::right_shift_tag, boost::mpl::vecto r2<boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost: :space_tag>, 1l> >, boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mp l::vector1<boost::space_tag>, 1l> > >, 2l> >::value' ../../../boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:98: instantiated from 'boost::mpl::aux ::template_arity<boost::proto::basic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost:: proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag >, 1l> >, boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1 <boost::space_tag>, 1l> > >, 2l> >' ../../../boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp:282: instantiated from 'boost::mpl::lambd a<boost::proto::pass_through_transformer<boost::proto::basic_expr<boost::proto::right_shift_tag, boo st::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl:: vector1<boost::space_tag>, 1l> >, boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_ tag, boost::mpl::vector1<boost::space_tag>, 1l> > >, 2l>, mpl_::void_, boost::spirit2::skipper_tag>, mpl_::void_, mpl_::int_<3> >' ../../../boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp:124: instantiated from 'boost::mpl::lambd a<boost::fusion::detail::apply_transform_result<boost::proto::pass_through_transformer<boost::proto: :basic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic _expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> >, boost::proto::ref<bo ost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> > >, 2 l>, mpl_::void_, boost::spirit2::skipper_tag> >, mpl_::void_, mpl_::int_<1> >' ../../../boost/mpl/aux_/preprocessed/gcc/apply.hpp:48: instantiated from 'boost::mpl::apply1<boost ::fusion::detail::apply_transform_result<boost::proto::pass_through_transformer<boost::proto::basic_ expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<b oost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> >, boost::proto::ref<boost::pr oto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> > >, 2l>, mpl _::void_, boost::spirit2::skipper_tag> >, boost::proto::ref<boost::proto::basic_expr<boost::proto::r ight_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::right_s hift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::function_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::m pl::vector1<boost::char_tag>, 1l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl ::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vect or1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<ch ar>, 1l> >, 2l> > >' ../../../boost/mpl/aux_/preprocessed/gcc/apply.hpp:165: instantiated from 'boost::mpl::apply<boost ::fusion::detail::apply_transform_result<boost::proto::pass_through_transformer<boost::proto::basic_ expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<b oost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> >, boost::proto::ref<boost::pr oto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> > >, 2l>, mpl _::void_, boost::spirit2::skipper_tag> >, boost::proto::ref<boost::proto::basic_expr<boost::proto::r ight_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::right_s hift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::function_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::m pl::vector1<boost::char_tag>, 1l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl ::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vect or1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<ch ar>, 1l> >, 2l> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na>' ../../../boost/fusion/sequence/view/transform_view/detail/deref_impl.hpp:38: instantiated from 'bo ost::fusion::extension::deref_impl<boost::fusion::transform_view_iterator_tag>::apply<boost::fusion: :transform_view_iterator<boost::proto::detail::ref_iterator<const boost::proto::ref<boost::proto::ba sic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_ex pr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boo st::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::pr oto::function_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::term inal_tag, boost::mpl::vector1<boost::char_tag>, 1l> >, boost::proto::basic_expr<boost::proto::termin al_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag , boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boos t::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl ::vector1<char>, 1l> >, 2l> >, 0>, boost::proto::pass_through_transformer<boost::proto::basic_expr<b oost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost:: proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> >, boost::proto::ref<boost::proto::b asic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> > >, 2l>, mpl_::voi d_, boost::spirit2::skipper_tag> > >' ../../../boost/fusion/iterator/deref.hpp:54: instantiated from 'boost::fusion::result_of::deref<bo ost::fusion::transform_view_iterator<boost::proto::detail::ref_iterator<const boost::proto::ref<boos t::proto::basic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::pro to::basic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::ba sic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_ex pr<boost::proto::function_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost: :proto::terminal_tag, boost::mpl::vector1<boost::char_tag>, 1l> >, boost::proto::basic_expr<boost::p roto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto:: terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::termin al_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag , boost::mpl::vector1<char>, 1l> >, 2l> >, 0>, boost::proto::pass_through_transformer<boost::proto:: basic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_ expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> >, boost::proto::ref<boo st::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> > >, 2l >, mpl_::void_, boost::spirit2::skipper_tag> > >' ../../../boost/fusion/sequence/utility/unpack_args.hpp:152: instantiated from 'boost::fusion::deta il::unpack_args_impl<boost::proto::detail::make_expr_impl<boost::proto::right_shift_tag, 2l>, boost: :fusion::transform_view<const boost::proto::ref<boost::proto::basic_expr<boost::proto::right_shift_t ag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::right_shift_tag, bo ost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::right_shift_tag, boost::m pl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::function_tag, boost::mpl::vecto r2<boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost: :char_tag>, 1l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1 l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost ::proto::pass_through_transformer<boost::proto::basic_expr<boost::proto::right_shift_tag, boost::mpl ::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1 <boost::space_tag>, 1l> >, boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, bo ost::mpl::vector1<boost::space_tag>, 1l> > >, 2l>, mpl_::void_, boost::spirit2::skipper_tag>, boost: :fusion::void_>, boost::proto::detail::make_expr_impl<boost::proto::right_shift_tag, 2l>, mpl_::int_ <2> >' ../../../boost/fusion/sequence/utility/unpack_args.hpp:109: instantiated from 'boost::fusion::resu lt_of::unpack_args<boost::proto::detail::make_expr_impl<boost::proto::right_shift_tag, 2l>, boost::f usion::transform_view<const boost::proto::ref<boost::proto::basic_expr<boost::proto::right_shift_tag , boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::right_shift_tag, boos t::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::right_shift_tag, boost::mpl ::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::function_tag, boost::mpl::vector2 <boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::c har_tag>, 1l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l > >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, b oost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost:: proto::pass_through_transformer<boost::proto::basic_expr<boost::proto::right_shift_tag, boost::mpl:: vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<b oost::space_tag>, 1l> >, boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boos t::mpl::vector1<boost::space_tag>, 1l> > >, 2l>, mpl_::void_, boost::spirit2::skipper_tag>, boost::f usion::void_> >' ../../../boost/xpressive/proto/make_expr.hpp:60: instantiated from 'boost::proto::meta::unpack_exp r<boost::proto::right_shift_tag, boost::fusion::transform_view<const boost::proto::ref<boost::proto: :basic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic _expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr< boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost: :proto::function_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::t erminal_tag, boost::mpl::vector1<boost::char_tag>, 1l> >, boost::proto::basic_expr<boost::proto::ter minal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_ tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, b oost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost:: mpl::vector1<char>, 1l> >, 2l> >, boost::proto::pass_through_transformer<boost::proto::basic_expr<bo ost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::p roto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> >, boost::proto::ref<boost::proto::ba sic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> > >, 2l>, mpl_::void _, boost::spirit2::skipper_tag>, boost::fusion::void_> >' ../../../boost/xpressive/proto/compiler/pass_through.hpp:60: instantiated from 'boost::proto::pass _through_compiler<boost::spirit2::skipper_tag>::apply<boost::proto::basic_expr<boost::proto::right_s hift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::right_shift_t ag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::right_shift_tag, bo ost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::function_tag, boost::mpl: :vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1< boost::char_tag>, 1l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<ch ar>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1 l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l>, b oost::proto::basic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost:: proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> >, boost::p roto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag> , 1l> > >, 2l>, mpl_::void_, boost::proto::right_shift_tag>' ../../../boost/xpressive/proto/compiler/conditional.hpp:40: instantiated from 'boost::proto::condi tional_compiler<boost::spirit2::parser::is_primitive_predicate, boost::spirit2::skipper::skipper_com piler, boost::proto::pass_through_compiler<boost::spirit2::skipper_tag> >::apply<boost::proto::basic _expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr< boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost: :proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto ::function_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::termina l_tag, boost::mpl::vector1<boost::char_tag>, 1l> >, boost::proto::basic_expr<boost::proto::terminal_ tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, b oost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost:: mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::v ector1<char>, 1l> >, 2l>, boost::proto::basic_expr<boost::proto::right_shift_tag, boost::mpl::vector 2<boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost:: space_tag>, 1l> >, boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl ::vector1<boost::space_tag>, 1l> > >, 2l>, mpl_::void_>' ../../../boost/xpressive/proto/compile.hpp:25: instantiated from 'boost::proto::meta::compile<boos t::proto::basic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::pro to::basic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::ba sic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_ex pr<boost::proto::function_tag, boost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost: :proto::terminal_tag, boost::mpl::vector1<boost::char_tag>, 1l> >, boost::proto::basic_expr<boost::p roto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto:: terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::termin al_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag , boost::mpl::vector1<char>, 1l> >, 2l>, boost::proto::basic_expr<boost::proto::right_shift_tag, boo st::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl:: vector1<boost::space_tag>, 1l> >, boost::proto::ref<boost::proto::basic_expr<boost::proto::terminal_ tag, boost::mpl::vector1<boost::space_tag>, 1l> > >, 2l>, mpl_::void_, boost::spirit2::skipper_tag>' main.cpp:605: instantiated from 'bool boost::spirit2::parse(FwdIter, FwdIter, const Rule&, const S kipper&) [with FwdIter = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_trait s<char>, std::allocator<char> > >, Rule = boost::proto::basic_expr<boost::proto::right_shift_tag, bo ost::mpl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::right_shift_tag, boost::m pl::vector2<boost::proto::ref<boost::proto::basic_expr<boost::proto::right_shift_tag, boost::mpl::ve ctor2<boost::proto::ref<boost::proto::basic_expr<boost::proto::function_tag, boost::mpl::vector2<boo st::proto::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::char_ tag>, 1l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l> >, boost ::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<char>, 1l> >, 2l>, Skipper = boo st::proto::basic_expr<boost::proto::right_shift_tag, boost::mpl::vector2<boost::proto::ref<boost::pr oto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> >, boost::pro to::ref<boost::proto::basic_expr<boost::proto::terminal_tag, boost::mpl::vector1<boost::space_tag>, 1l> > >, 2l>]' main.cpp:692: instantiated from here ../../../boost/mpl/aux_/has_tag.hpp:20: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Created attachment 12513 [details] preprocessed input file preprocessed input file, compressed because of file size restrictions
Reducing ...
(In reply to comment #2) > Reducing ... This is still reducing, well I got distracted for a little bit also.
Reduced testcase: template< typename T> struct has_begin {static const bool value =0;}; template<bool a> struct sequence_tag_impl{}; template< typename Sequence> struct sequence_tag : sequence_tag_impl<has_begin<Sequence>::value >{}; template<typename T>struct lambda{}; template<template< typename P1 > class F, typename T1 >struct lambda<F< T1 > >{}; template< typename Tag >struct size_impl; template<typename Tag, long Arity = size_impl< typename sequence_tag<Tag>::type >::value> struct basic_expr{}; int main() { lambda<basic_expr<short, 2> > a; } ------ This looks like it was caused by an extension which was removed in 4.2.0. Also I think there might be a dup of this bug filed already.
(In reply to comment #4) > This looks like it was caused by an extension which was removed in 4.2.0. > Also I think there might be a dup of this bug filed already. That would be PR 28088. *** This bug has been marked as a duplicate of 28088 ***