Created attachment 39820 [details] Preprocessed output as created by -freport-bug /home/jamrial/range-v3/include/range/v3/detail/variant.hpp:679:35: internal compiler error: in build_over_call, at cp/call.c:7847 detail::variant_visit_(var.index(), data, detail::get_fn<elem_t, N>{&elem}); ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0x646c0f build_over_call /home/jamrial/gcc-svn/gcc/cp/call.c:7844 0x650edf build_new_method_call_1 /home/jamrial/gcc-svn/gcc/cp/call.c:8661 0x650edf build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) /home/jamrial/gcc-svn/gcc/cp/call.c:8731 0x651eae build_special_member_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, int) /home/jamrial/gcc-svn/gcc/cp/call.c:8263 0x647d0d build_temp /home/jamrial/gcc-svn/gcc/cp/call.c:6395 0x647d0d convert_like_real /home/jamrial/gcc-svn/gcc/cp/call.c:6805 0x648f6c perform_implicit_conversion_flags(tree_node*, tree_node*, int, int) /home/jamrial/gcc-svn/gcc/cp/call.c:9887 0x643e6b convert_default_arg(tree_node*, tree_node*, tree_node*, int, int) /home/jamrial/gcc-svn/gcc/cp/call.c:7180 0x6447c0 build_over_call /home/jamrial/gcc-svn/gcc/cp/call.c:7748 0x6549af build_new_function_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool, int) /home/jamrial/gcc-svn/gcc/cp/call.c:4204 0x7eee4c finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool, bool, int) /home/jamrial/gcc-svn/gcc/cp/semantics.c:2440 0x6c0298 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /home/jamrial/gcc-svn/gcc/cp/pt.c:16786 0x6b4d45 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /home/jamrial/gcc-svn/gcc/cp/pt.c:15952 0x6b2d87 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /home/jamrial/gcc-svn/gcc/cp/pt.c:15258 0x6b45cc tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /home/jamrial/gcc-svn/gcc/cp/pt.c:15244 0x6b4410 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /home/jamrial/gcc-svn/gcc/cp/pt.c:15435 0x6b1875 instantiate_decl(tree_node*, int, bool) /home/jamrial/gcc-svn/gcc/cp/pt.c:22189 0x6fa71b instantiate_pending_templates(int) /home/jamrial/gcc-svn/gcc/cp/pt.c:22306 0x73e361 c_parse_final_cleanups() /home/jamrial/gcc-svn/gcc/cp/decl2.c:4506 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.
struct A; using variant_nil = int; template <typename Fun, typename Proj = A> void variant_visit_(int, variant_nil, Fun, Proj = {}); struct A {}; void get() { variant_visit_(0, 0, int{}); }
Probably started with r240845. commit ceab25e5373630b8c1d306e9baf9e56645b34be5 Author: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Thu Oct 6 21:24:40 2016 +0000 C++17 copy elision improvements.
Not that one, but r240889. -std=c++17 is all that is needed.
*** Bug 78137 has been marked as a duplicate of this bug. ***
Fixed in r242562.