public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "jpalecek at web dot de" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/53486] New: ICE compiling code using lambdas as default argument Date: Fri, 25 May 2012 15:56:00 -0000 [thread overview] Message-ID: <bug-53486-4@http.gcc.gnu.org/bugzilla/> (raw) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53486 Bug #: 53486 Summary: ICE compiling code using lambdas as default argument Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned@gcc.gnu.org ReportedBy: jpalecek@web.de When compiling the attached file with g++-4.7, (or the last snapshot available in Debian, that is from 20120501), I get the following internal compiler error: benchmark_test.cpp:424:26: internal compiler error: in tsubst_copy, at cp/pt.c:12077 simple_regression<dim> reg; ^ The full output is: -*- mode: compilation; default-directory: "~/benchmark/" -*- Compilation started at Fri May 25 16:18:54 LD_LIBRARY_PATH=/usr/lib/gcc-snapshot/lib:$LD_LIBRARY_PATH PATH=/usr/lib/gcc-snapshot/bin:$PATH g++ -g --std=c++0x benchmark_test.cpp benchmark_test.cpp: In instantiation of 'ResultType boost_param_default_415benchmark_regress(ResultType (*)(), const Args&, int, func_type&, data_vector_type&, timer_type&, error_type&, variable_function_type&, random_type&) [with ResultType = std::vector<double>; Args = boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::variable_function, const main()::<lambda(int)> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::data_vector, const boost::assign_detail::generic_list<int> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::func, const main()::<lambda(int)> >, boost::parameter::aux::empty_arg_list> > >; func_type = const main()::<lambda(int)>; data_vector_type = const boost::assign_detail::generic_list<int>; timer_type = const clock_timer; error_type = const double; variable_function_type = const main()::<lambda(int)>; random_type = const boost::random::xor_combine_engine<boost::random::xor_combine_engine<boost::random::linear_feedback_shift_engine<unsigned int, 32, 31, 13, 12>, 0, boost::random::linear_feedback_shift_engine<unsigned int, 32, 29, 2, 4>, 0>, 0, boost::random::linear_feedback_shift_engine<unsigned int, 32, 28, 3, 17>, 0>]': benchmark_test.cpp:404:1: required from 'ResultType boost_param_default_415benchmark_regress(ResultType (*)(), const Args&, long int, func_type&, data_vector_type&, timer_type&, error_type&, variable_function_type&, boost::parameter::aux::use_default_tag) [with ResultType = std::vector<double>; Args = boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::variable_function, const main()::<lambda(int)> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::data_vector, const boost::assign_detail::generic_list<int> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::func, const main()::<lambda(int)> >, boost::parameter::aux::empty_arg_list> > >; func_type = const main()::<lambda(int)>; data_vector_type = const boost::assign_detail::generic_list<int>; timer_type = const clock_timer; error_type = const double; variable_function_type = const main()::<lambda(int)>]' benchmark_test.cpp:404:1: required from 'ResultType boost_param_default_415benchmark_regress(ResultType (*)(), const Args&, int, func_type&, data_vector_type&, timer_type&, error_type&, variable_function_type&) [with ResultType = std::vector<double>; Args = boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::variable_function, const main()::<lambda(int)> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::data_vector, const boost::assign_detail::generic_list<int> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::func, const main()::<lambda(int)> >, boost::parameter::aux::empty_arg_list> > >; func_type = const main()::<lambda(int)>; data_vector_type = const boost::assign_detail::generic_list<int>; timer_type = const clock_timer; error_type = const double; variable_function_type = const main()::<lambda(int)>]' benchmark_test.cpp:404:1: required from 'ResultType boost_param_default_415benchmark_regress(ResultType (*)(), const Args&, int, func_type&, data_vector_type&, timer_type&, error_type&) [with ResultType = std::vector<double>; Args = boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::variable_function, const main()::<lambda(int)> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::data_vector, const boost::assign_detail::generic_list<int> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::func, const main()::<lambda(int)> >, boost::parameter::aux::empty_arg_list> > >; func_type = const main()::<lambda(int)>; data_vector_type = const boost::assign_detail::generic_list<int>; timer_type = const clock_timer; error_type = const double]' benchmark_test.cpp:404:1: required from 'ResultType boost_param_default_415benchmark_regress(ResultType (*)(), const Args&, long int, func_type&, data_vector_type&, timer_type&, boost::parameter::aux::use_default_tag) [with ResultType = std::vector<double>; Args = boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::variable_function, const main()::<lambda(int)> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::data_vector, const boost::assign_detail::generic_list<int> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::func, const main()::<lambda(int)> >, boost::parameter::aux::empty_arg_list> > >; func_type = const main()::<lambda(int)>; data_vector_type = const boost::assign_detail::generic_list<int>; timer_type = const clock_timer]' benchmark_test.cpp:404:1: required from 'ResultType boost_param_default_415benchmark_regress(ResultType (*)(), const Args&, int, func_type&, data_vector_type&, timer_type&) [with ResultType = std::vector<double>; Args = boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::variable_function, const main()::<lambda(int)> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::data_vector, const boost::assign_detail::generic_list<int> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::func, const main()::<lambda(int)> >, boost::parameter::aux::empty_arg_list> > >; func_type = const main()::<lambda(int)>; data_vector_type = const boost::assign_detail::generic_list<int>; timer_type = const clock_timer]' benchmark_test.cpp:404:1: required from 'ResultType boost_param_default_415benchmark_regress(ResultType (*)(), const Args&, long int, func_type&, data_vector_type&, boost::parameter::aux::use_default_tag) [with ResultType = std::vector<double>; Args = boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::variable_function, const main()::<lambda(int)> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::data_vector, const boost::assign_detail::generic_list<int> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::func, const main()::<lambda(int)> >, boost::parameter::aux::empty_arg_list> > >; func_type = const main()::<lambda(int)>; data_vector_type = const boost::assign_detail::generic_list<int>]' benchmark_test.cpp:404:1: required from 'ResultType boost_param_default_415benchmark_regress(ResultType (*)(), const Args&, int, func_type&, data_vector_type&) [with ResultType = std::vector<double>; Args = boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::variable_function, const main()::<lambda(int)> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::data_vector, const boost::assign_detail::generic_list<int> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::func, const main()::<lambda(int)> >, boost::parameter::aux::empty_arg_list> > >; func_type = const main()::<lambda(int)>; data_vector_type = const boost::assign_detail::generic_list<int>]' benchmark_test.cpp:404:1: required from 'typename boost_param_result_415benchmark_regress<Args>::type boost_param_implbenchmark_regress(const Args&) [with Args = boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::variable_function, const main()::<lambda(int)> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::data_vector, const boost::assign_detail::generic_list<int> >, boost::parameter::aux::arg_list<const boost::parameter::aux::tagged_argument<tag::func, const main()::<lambda(int)> >, boost::parameter::aux::empty_arg_list> > >; typename boost_param_result_415benchmark_regress<Args>::type = std::vector<double>]' benchmark_test.cpp:404:1: required from 'typename boost_param_result_415benchmark_regress<typename boost::parameter::aux::argument_pack<boost_param_params_415benchmark_regress<int>, const ParameterArgumentType0, const ParameterArgumentType1, const ParameterArgumentType2>::type>::type benchmark_regress(const ParameterArgumentType0&, const ParameterArgumentType1&, const ParameterArgumentType2&, typename boost::parameter::aux::match<boost_param_params_415benchmark_regress<int>, ParameterArgumentType0, ParameterArgumentType1, ParameterArgumentType2>::type) [with ParameterArgumentType0 = boost::parameter::aux::tagged_argument<tag::func, const main()::<lambda(int)> >; ParameterArgumentType1 = boost::parameter::aux::tagged_argument<tag::data_vector, const boost::assign_detail::generic_list<int> >; ParameterArgumentType2 = boost::parameter::aux::tagged_argument<tag::variable_function, const main()::<lambda(int)> >; typename boost_param_result_415benchmark_regress<typename boost::parameter::aux::argument_pack<boost_param_params_415benchmark_regress<int>, const ParameterArgumentType0, const ParameterArgumentType1, const ParameterArgumentType2>::type>::type = std::vector<double>; typename boost::parameter::aux::match<boost_param_params_415benchmark_regress<int>, ParameterArgumentType0, ParameterArgumentType1, ParameterArgumentType2>::type = boost::parameter::parameters<boost::parameter::required<tag::func, boost::mpl::always<mpl_::bool_<true> > >, boost::parameter::required<tag::data_vector, boost::mpl::always<mpl_::bool_<true> > >, boost::parameter::optional<tag::timer, boost::mpl::always<mpl_::bool_<true> > >, boost::parameter::optional<tag::error, boost::mpl::always<mpl_::bool_<true> > >, boost::parameter::optional<tag::variable_function, boost::mpl::always<mpl_::bool_<true> > >, boost::parameter::optional<tag::random, boost::mpl::always<mpl_::bool_<true> > > >]' benchmark_test.cpp:474:167: required from here benchmark_test.cpp:424:26: internal compiler error: in tsubst_copy, at cp/pt.c:12077 simple_regression<dim> reg; ^ Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-snapshot/README.Bugs> for instructions. Preprocessed source stored into /home/jirka/tmp/cccYhoSw.out file, please attach this to your bugreport. Compilation exited abnormally with code 1 at Fri May 25 16:19:13
next reply other threads:[~2012-05-25 15:54 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-05-25 15:56 jpalecek at web dot de [this message] 2012-05-25 16:22 ` [Bug c++/53486] " redi at gcc dot gnu.org 2012-05-25 17:59 ` jpalecek at web dot de 2012-05-25 18:13 ` jpalecek at web dot de 2012-05-25 18:16 ` redi at gcc dot gnu.org 2012-05-25 18:32 ` jpalecek at web dot de 2012-05-26 21:00 ` jpalecek at web dot de 2012-05-29 10:34 ` rguenth at gcc dot gnu.org 2013-02-15 12:05 ` paolo.carlini at oracle dot com
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-53486-4@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).