Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $ cat testcase.best
- typedef int size_t;
- template <typename...> struct typelist;
- template <typename Type> Type &&declval();
- template <typename Type, Type...> struct integer_sequence {};
- template <typename...> class tuple {};
- template <size_t, class> class tuple_element;
- template <typename Head, typename... Tail>
- struct tuple_element<0, tuple<Head, Tail...> > {
- typedef Head type;
- };
- template <typename... Elements> tuple<Elements...> make_tuple(Elements...);
- template <typename Functor, typename... Args>
- int invoke(Functor functor,
- Args &&... args) noexcept(noexcept(functor(args...)));
- template <typename...> struct result;
- template <typename Functor, typename Tuple, int... Indices,
- typename = decltype(invoke(
- declval<Functor>(),
- declval<typename tuple_element<Indices, Tuple>::type>()...))>
- typename result<typename tuple_element<Indices, Tuple>::type...>::type
- uncurry(Functor, Tuple, integer_sequence<int, Indices...>);
- template <int, typename... Tuples>
- tuple<typename tuple_element<0, Tuples>::type...> slice_many(Tuples...);
- template <
- int... ElementIndices, typename Functor, typename... Tuples,
- typename = typelist<decltype(uncurry(
- declval<Functor>(), slice_many<ElementIndices>(declval<Tuples>()...),
- integer_sequence<int, 0, 0>()))...> >
- void zip_with(Functor, Tuples...);
- struct plus_assign {
- template <typename Lhs, typename Rhs>
- constexpr int operator()(Lhs &&lhs, Rhs &&rhs) {
- lhs = 0;
- }
- };
- auto rvalues = make_tuple(0);
- auto incr = zip_with<0>(plus_assign{}, rvalues)
- $ g++-trunk -x c++ -std=c++14 testcase.best
- testcase.best: In instantiation of 'int invoke(Functor, Args&& ...) [with Functor = plus_assign; Args = {int, int}]':
- testcase.best:18:37: required by substitution of 'template<class Functor, class Tuple, int ...Indices, class> typename result<typename tuple_element<Indices, Tuple>::type ...>::type uncurry(Functor, Tuple, integer_sequence<int, Indices ...>) [with Functor = plus_assign; Tuple = tuple<int>; int ...Indices = {0, 0}; <template-parameter-1-4> = <missing>]'
- testcase.best:27:41: required by substitution of 'template<int ...ElementIndices, class Functor, class ... Tuples, class> void zip_with(Functor, Tuples ...) [with int ...ElementIndices = 0; Functor = plus_assign; Tuples = {tuple<int>}; <template-parameter-1-4> = <missing>]'
- testcase.best:38:47: required from here
- testcase.best:15:54: in constexpr expansion of 'functor.plus_assign::operator()<int&, int&>((* & args#0), (* & args#1))'
- testcase.best:14:5: internal compiler error: in cxx_eval_store_expression, at cp/constexpr.c:2492
- int invoke(Functor functor,
- ^
- 0x6d9fdd cxx_eval_store_expression
- ../../gcc/gcc/cp/constexpr.c:2492
- 0x6d7916 cxx_eval_constant_expression
- ../../gcc/gcc/cp/constexpr.c:2961
- 0x6d7653 cxx_eval_constant_expression
- ../../gcc/gcc/cp/constexpr.c:3192
- 0x6d795c cxx_eval_constant_expression
- ../../gcc/gcc/cp/constexpr.c:3066
- 0x6d795c cxx_eval_constant_expression
- ../../gcc/gcc/cp/constexpr.c:3066
- 0x6d7173 cxx_eval_call_expression
- ../../gcc/gcc/cp/constexpr.c:1335
- 0x6d8018 cxx_eval_constant_expression
- ../../gcc/gcc/cp/constexpr.c:2877
- 0x6d9857 is_sub_constant_expr(tree_node*)
- ../../gcc/gcc/cp/constexpr.c:3436
- 0x67e92d check_noexcept_r
- ../../gcc/gcc/cp/except.c:1168
- 0xc5b6e4 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, default_hashset_traits>*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, default_hashset_traits>*))
- ../../gcc/gcc/tree.c:11022
- 0xc5ce08 walk_tree_without_duplicates_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, default_hashset_traits>*))
- ../../gcc/gcc/tree.c:11335
- 0x67e64f expr_noexcept_p(tree_node*, int)
- ../../gcc/gcc/cp/except.c:1245
- 0x67e7b2 finish_noexcept_expr(tree_node*, int)
- ../../gcc/gcc/cp/except.c:1230
- 0x5f7f48 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
- ../../gcc/gcc/cp/pt.c:14832
- 0x61154d maybe_instantiate_noexcept(tree_node*)
- ../../gcc/gcc/cp/pt.c:19899
- 0x62c01f mark_used(tree_node*, int)
- ../../gcc/gcc/cp/decl2.c:4879
- 0x5c6079 build_over_call
- ../../gcc/gcc/cp/call.c:7434
- 0x5cee51 build_new_function_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool, int)
- ../../gcc/gcc/cp/call.c:4081
- 0x693cf9 finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool, bool, int)
- ../../gcc/gcc/cp/semantics.c:2392
- 0x5f9595 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
- ../../gcc/gcc/cp/pt.c:15148
- Please submit a full bug report,
- with preprocessed source if appropriate.
- Please include the complete backtrace with any bug report.
- See <http://gcc.gnu.org/bugs.html> for instructions.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement