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

            Bug ID: 90218
           Summary: [PDT] ICE: tree check: expected array_type, have
                    record_type in gfc_conv_array_initializer, at
                    fortran/trans-array.c:6071
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

Created attachment 46236
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46236&action=edit
Testcase

gfortran-9.0.0-alpha20190421 snapshot (r270485) ICEs, and 8.2 demonstrates a
memory hog when compiling the attached testcase copied from [1]:

% powerpc-e300c3-linux-gnu-gfortran-9.0.0-alpha20190421 -c nag-20180205a.f90
nag-20180205a.f90:21:0:

   21 | end
      | 
internal compiler error: tree check: expected array_type, have record_type in
gfc_conv_array_initializer, at fortran/trans-array.c:6071
0x6a3d1c tree_check_failed(tree_node const*, char const*, int, char const*,
...)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/tree.c:9900
0x56293c tree_check(tree_node*, char const*, int, char const*, tree_code)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/tree.h:3176
0x56293c gfc_conv_array_initializer(tree_node*, gfc_expr*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/fortran/trans-array.c:6068
0x88a342 gfc_conv_initializer(gfc_expr*, gfc_typespec*, tree_node*, bool, bool,
bool)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/fortran/trans-expr.c:7384
0x88a823 gfc_conv_structure(gfc_se*, gfc_expr*, int)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/fortran/trans-expr.c:8286
0x88a317 gfc_conv_initializer(gfc_expr*, gfc_typespec*, tree_node*, bool, bool,
bool)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/fortran/trans-expr.c:7419
0x866499 gfc_emit_parameter_debug_info
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/fortran/trans-decl.c:5409
0x866499 gfc_emit_parameter_debug_info
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/fortran/trans-decl.c:5341
0x82a652 do_traverse_symtree
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/fortran/symbol.c:4166
0x8741b2 gfc_generate_function_code(gfc_namespace*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/fortran/trans-decl.c:6821
0x7f2714 translate_all_program_units
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/fortran/parse.c:6134
0x7f2714 gfc_parse_file()
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/fortran/parse.c:6337
0x84064e gfc_be_parse_file
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190421/work/gcc-9-20190421/gcc/fortran/f95-lang.c:204

(While my target is powerpc here, the ICE is not target-specific.)

[1]
https://github.com/nncarlson/fortran-compiler-tests/blob/bee34a692422e8c6dba49d3e7ac3fd9629fda068/nag-bugs/nag-20180205a.f90

Reply via email to