https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97186

            Bug ID: 97186
           Summary: [11 Regression] ICE: Segmentation fault (in
                    maybe_instantiate_noexcept)
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

g++-11.0.0-alpha20200920 snapshot (g:363e7755f227656684c8e284307ceee451503ca4)
ICEs when compiling the following testcase:

template <class GG>
struct no {
  static void
  tg ()
  {
    void
    hk () noexcept (tg);

    hk ();
  }
};

void
os ()
{
  no<int> ().tg ();
}

% g++-11.0.0 -c n8bpixef.cc
n8bpixef.cc: In instantiation of 'void hk()':
n8bpixef.cc:9:8:   required from 'static void no<GG>::tg() [with GG = int]'
n8bpixef.cc:16:18:   required from here
n8bpixef.cc:7:5: internal compiler error: Segmentation fault
    7 |     hk () noexcept (tg);
      |     ^~
0x100af6f crash_signal
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/toplev.c:327
0xa1ca2f maybe_instantiate_noexcept(tree_node*, int)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/tree.h:3298
0x95054a mark_used(tree_node*, int)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/decl2.c:5549
0xa6c9eb finish_id_expression_1
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/semantics.c:3999
0xa6cb17 finish_id_expression(tree_node*, tree_node*, tree_node*, cp_id_kind*,
bool, bool, bool*, bool, bool, bool, bool, char const**, unsigned int)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/semantics.c:4063
0xa18554 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:19326
0xa18cbd tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:19885
0xa2386f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:18889
0xa25bc9 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:17991
0xa25fa1 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:17961
0xa24f2e tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:18281
0xa2c70f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:17946
0xa2c70f instantiate_body
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:25577
0xa2d88f instantiate_decl(tree_node*, bool, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:25865
0xa4ff9b instantiate_pending_templates(int)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:25944
0x95175b c_parse_final_cleanups()
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/decl2.c:4920

clang 10.0.1 accepts it.

Reply via email to