https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102312
Bug ID: 102312
Summary: [12 Regression] ICE in gfc_get_dtype_rank_type, at
fortran/trans-types.c:1558
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: [email protected]
Target Milestone: ---
Changed between 20210530 and 20210606 :
$ cat z1.f90
program p
print *, f(null())
contains
integer function f(x) bind(c)
use iso_c_binding
integer(kind=c_int), pointer, intent(in) :: x(..)
f = 0
end
end
$ cat z3.f90
recursive function f(x) result(z) bind(c)
use iso_c_binding
integer(kind=c_int), pointer, intent(in) :: x(..)
real :: z
z = f(null())
end
$ gfortran-11 -c z1.f90
$
$ gfortran-12-20210905 -c z1.f90
z1.f90:2:21:
2 | print *, f(null())
| 1
internal compiler error: in gfc_get_dtype_rank_type, at
fortran/trans-types.c:1558
0x89872f gfc_get_dtype_rank_type(int, tree_node*)
../../gcc/fortran/trans-types.c:1558
0x83f65a gfc_conv_scalar_to_descriptor(gfc_se*, tree_node*, symbol_attribute)
../../gcc/fortran/trans-expr.c:126
0x849ae8 gfc_conv_gfc_desc_to_cfi_desc
../../gcc/fortran/trans-expr.c:5577
0x84d9a7 gfc_conv_procedure_call(gfc_se*, gfc_symbol*, gfc_actual_arglist*,
gfc_expr*, vec<tree_node*, va_gc, vl_embed>*)
../../gcc/fortran/trans-expr.c:6009
0x8445ea gfc_conv_expr(gfc_se*, gfc_expr*)
../../gcc/fortran/trans-expr.c:9020
0x84b402 gfc_conv_expr_reference(gfc_se*, gfc_expr*, bool)
../../gcc/fortran/trans-expr.c:9166
0x875597 gfc_trans_transfer(gfc_code*)
../../gcc/fortran/trans-io.c:2582
0x816527 trans_code
../../gcc/fortran/trans.c:2138
0x87307e build_dt
../../gcc/fortran/trans-io.c:2026
0x816507 trans_code
../../gcc/fortran/trans.c:2110
0x83cb64 gfc_generate_function_code(gfc_namespace*)
../../gcc/fortran/trans-decl.c:6918
0x7c2ee6 translate_all_program_units
../../gcc/fortran/parse.c:6569
0x7c2ee6 gfc_parse_file()
../../gcc/fortran/parse.c:6838
0x80f57f gfc_be_parse_file
../../gcc/fortran/f95-lang.c:216