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

            Bug ID: 114024
           Summary: ICE allocate statement with source=cmp%re and z an
                    array
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kargl at gcc dot gnu.org
  Target Milestone: ---

Found with the Fujitsu testsuite.
The complex part%ref is a rank-1 array with dimension=3.
xx should be allocated and assigned [3.45,3.45, 3.45]

!
! https://github.com/fujitsu/compiler-test-suite
! Modified from Fortran/0093/0093_0130.f90
!
implicit none
complex:: cmp(3)
real, allocatable::xx(:)
cmp = (3.45,6.78)

allocate (xx, source = cmp%re)

end

 gfcx -c 0093/0093_0130.f90
0093/0093_0130.f90:10:36:

   10 |  allocate (xx, source = cmp(1:3)%re)
      |                                    1
internal compiler error: in retrieve_last_ref, at fortran/trans-array.cc:6197
0x6e889a retrieve_last_ref(gfc_ref**, gfc_ref**)
        ../../gccx/gcc/fortran/trans-array.cc:6197
0xa34c20 gfc_array_allocate(gfc_se*, gfc_expr*, tree_node*, tree_node*,
tree_node*, tree_node*, tree_node*, tree_node**, gfc_expr*, tree_node*, bool,
gfc_omp_namelist*)
        ../../gccx/gcc/fortran/trans-array.cc:6290
0xacce0b gfc_trans_allocate(gfc_code*, gfc_omp_namelist*)
        ../../gccx/gcc/fortran/trans-stmt.cc:6850
0xa25b49 trans_code
        ../../gccx/gcc/fortran/trans.cc:2535
0xa5ca15 gfc_generate_function_code(gfc_namespace*)
        ../../gccx/gcc/fortran/trans-decl.cc:7875
0x9cc496 translate_all_program_units
        ../../gccx/gcc/fortran/parse.cc:7073
0x9cc496 gfc_parse_file()

Reply via email to