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

            Bug ID: 97177
           Summary: [11 Regression] ICE in dependent_type_p, at
                    cp/pt.c:26475
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          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, reduced from
test/CXX/dcl.decl/dcl.meaning/dcl.array/p3.cpp from the clang 10.0.1 test
suite:

namespace
{
  template <typename WF>
  void
  ml ()
  {
    extern WF cr;

    static_assert (sizeof (cr) == 12, "");
  }

  void
  qc ()
  {
    ml<int[3]> ();
  }
}

% g++-11.0.0 -c zzrm4j0q.cpp
zzrm4j0q.cpp: In instantiation of 'void {anonymous}::ml() [with WF = int [3]]':
zzrm4j0q.cpp:15:17:   required from here
zzrm4j0q.cpp:9:20: internal compiler error: in dependent_type_p, at
cp/pt.c:26475
    9 |     static_assert (sizeof (cr) == 12, "");
      |                    ^~~~~~~~~~~
0x670229 dependent_type_p(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:26475
0xa9a66f cxx_sizeof_or_alignof_type(unsigned int, tree_node*, tree_code, bool,
bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/typeck.c:1713
0xa186dd 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:19668
0xa181b3 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:19579
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
0xa25d8d 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:18446
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

Reply via email to