https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89241
Bug ID: 89241 Summary: ICE in enclosing_instantiation_of, at cp/pt.c:13380 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: larsbj at gullik dot net Target Milestone: --- Created attachment 45635 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45635&action=edit Reduced sources showing ICE With the attached reduced from code using Boost.Asio I get this ICE: g++ -v Using built-in specs. COLLECT_GCC=/opt/gcc/gcc-9/bin/g++ COLLECT_LTO_WRAPPER=/opt/gcc/gcc-9/libexec/gcc/x86_64-pc-linux-gnu/9.0.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc/configure --prefix=/opt/gcc/gcc-9 --enable-checking=release --enable-languages=c,c++ Thread model: posix gcc version 9.0.1 20190207 (experimental) (GCC) /opt/gcc/gcc-9/bin/g++ -c bug3.cpp bug3.cpp: In instantiation of ‘o< <template-parameter-1-1> >::m_fn3() [with <template-parameter-1-1> = int]::<lambda(auto:1, auto:2)> [with auto:1 = int; auto:2 = int]’: bug3.cpp:4:27: required by substitution of ‘template<class e> decltype (g(1, 2)) ag(e) [with e = o< <template-parameter-1-1> >::m_fn3() [with <template-parameter-1-1> = int]::<lambda(auto:1, auto:2)>]’ bug3.cpp:8:7: required from ‘void l< <template-parameter-1-1> >::m(al) [with al = o< <template-parameter-1-1> >::m_fn3() [with <template-parameter-1-1> = int]::<lambda(auto:1, auto:2)>; <template-parameter-1-1> = int]’ bug3.cpp:30:5: required from ‘void o< <template-parameter-1-1> >::m_fn3() [with <template-parameter-1-1> = int]’ bug3.cpp:33:16: required from here bug3.cpp:30:39: internal compiler error: in enclosing_instantiation_of, at cp/pt.c:13380 30 | av[0]->m_fn2().m([](auto, auto) { __PRETTY_FUNCTION__; }); | ^~~~~~~~~~~~~~~~~~~ 0x5ccba9 enclosing_instantiation_of ../../gcc/gcc/cp/pt.c:13380 0x702ff9 tsubst_copy ../../gcc/gcc/cp/pt.c:15543 0x703a08 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:19345 0x7038f6 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:19475 0x6ff724 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:17805 0x6ff23a tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:16925 0x6ff07c tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:17212 0x6fef08 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:16911 0x6ff07c tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:17212 0x6ff07c tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:17212 0x6fde6d tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) ../../gcc/gcc/cp/pt.c:16896 0x6fde6d instantiate_decl(tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:24584 0x677823 maybe_instantiate_decl ../../gcc/gcc/cp/decl2.c:5281 0x677823 maybe_instantiate_decl ../../gcc/gcc/cp/decl2.c:5265 0x678e08 mark_used(tree_node*, int) ../../gcc/gcc/cp/decl2.c:5437 0x61afde build_over_call ../../gcc/gcc/cp/call.c:8543 0x61de1e build_op_call_1 ../../gcc/gcc/cp/call.c:4671 0x61de1e build_op_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, int) ../../gcc/gcc/cp/call.c:4700 0x72f16f finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool, bool, int) ../../gcc/gcc/cp/semantics.c:2585 0x705cb7 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) ../../gcc/gcc/cp/pt.c:18970