https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93365
markeggleston at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |markeggleston at gcc dot gnu.org --- Comment #2 from markeggleston at gcc dot gnu.org --- f951: internal compiler error: in gfc_match_varspec, at fortran/primary.c:2389 0x727097 gfc_match_varspec(gfc_expr*, int, bool, bool) ../../gcc/gcc/fortran/primary.c:2389 0x728b35 gfc_match_rvalue(gfc_expr**) ../../gcc/gcc/fortran/primary.c:3496 0x6ae0f4 match_data_constant ../../gcc/gcc/fortran/decl.c:398 0x6ae356 top_val_list ../../gcc/gcc/fortran/decl.c:499 0x6ae691 gfc_match_data() ../../gcc/gcc/fortran/decl.c:712 0x7177b9 match_word_omp_simd ../../gcc/gcc/fortran/parse.c:93 0x71cbc6 match_word ../../gcc/gcc/fortran/parse.c:469 0x71cbc6 decode_statement ../../gcc/gcc/fortran/parse.c:469 0x71d6d4 next_free ../../gcc/gcc/fortran/parse.c:1279 0x71d6d4 next_statement ../../gcc/gcc/fortran/parse.c:1511 0x71efcc parse_spec ../../gcc/gcc/fortran/parse.c:3922 0x721728 parse_progunit ../../gcc/gcc/fortran/parse.c:5851 0x722d54 gfc_parse_file() ../../gcc/gcc/fortran/parse.c:6391 0x76e80f gfc_be_parse_file ../../gcc/gcc/fortran/f95-lang.c:210 on master https://gcc.gnu.org/g:7491c17fe01d8cf116f645532d46120029b26408 This occurs for: program p real, parameter :: a(0) = 0.5 write(\*,\*) a%kind end If the parameter attribute is removed or a non zero sized array is used, the ICE does not occur. The ICE occurs in gfc_match_varspec (primary.c) a temporary gfc_ref structure has been created and has the type REF_INQUIRY. If the primary expression has been passed in is EXPR_CONSTANT the check is done. When the ICE occurs the type is EXPR_STRUCTURE, so the value of the REF_INQUIRY taken from u.i is used for the inquiry type instead of being 2 (INQUIRY_KIND) it is random e.g.73176720.