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

Reply via email to