Bug 29653 - [4.1 Regression] boost/mpl/aux_/has_tag.hpp:20: internal compiler error: Segmentation fault
Summary: [4.1 Regression] boost/mpl/aux_/has_tag.hpp:20: internal compiler error: Segm...
Status: RESOLVED DUPLICATE of bug 28088
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 4.1.1
: P3 normal
Target Milestone: 4.1.2
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2006-10-30 15:36 UTC by Eric Niebler
Modified: 2006-11-08 09:49 UTC (History)
11 users (show)

See Also:
Host:
Target: i686-*-*
Build:
Known to work: 4.0.4 4.2.0
Known to fail: 4.1.2
Last reconfirmed: 2006-11-08 09:45:32


Attachments
preprocessed input file (137.20 KB, application/octet-stream)
2006-10-30 15:42 UTC, Eric Niebler
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Eric Niebler 2006-10-30 15:36:23 UTC
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.
Comment 1 Eric Niebler 2006-10-30 15:42:47 UTC
Created attachment 12513 [details]
preprocessed input file

preprocessed input file, compressed because of file size restrictions
Comment 2 Andrew Pinski 2006-10-30 16:24:20 UTC
Reducing ...
Comment 3 Andrew Pinski 2006-11-06 20:28:23 UTC
(In reply to comment #2)
> Reducing ...
This is still reducing, well I got distracted for a little bit also.
Comment 4 Andrew Pinski 2006-11-08 09:45:31 UTC
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.
Comment 5 Andrew Pinski 2006-11-08 09:49:00 UTC
(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 ***