Bug 90218 - [PDT] ICE: tree check: expected array_type, have record_type in gfc_conv_array_initializer, at fortran/trans-array.c:6071
Summary: [PDT] ICE: tree check: expected array_type, have record_type in gfc_conv_arra...
Status: NEW
Alias: None
Product: gcc
Classification: Unclassified
Component: fortran (show other bugs)
Version: 9.0
: P4 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-checking, ice-on-valid-code
Depends on:
Blocks: PDT
  Show dependency treegraph
 
Reported: 2019-04-24 03:15 UTC by Arseny Solokha
Modified: 2021-12-17 23:08 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2021-12-17 00:00:00


Attachments
Testcase (323 bytes, text/plain)
2019-04-24 03:15 UTC, Arseny Solokha
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Arseny Solokha 2019-04-24 03:15:46 UTC
Created attachment 46236 [details]
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
Comment 1 Dominique d'Humieres 2019-04-30 09:32:53 UTC
Confirmed from 8.3.0 up to trunk (10.0).