https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117188
Bug ID: 117188
Summary: ICE when OUT variable dimension is defined by a IN
variable member
Product: gcc
Version: 14.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: aluaces at udc dot es
Target Milestone: ---
This happens either with functions or subroutines. Both minimal cases are
attached:
--Example 1----
PROGRAM MAIN
IMPLICIT NONE
TYPE:: base_type
INTEGER:: i=0
END TYPE base_type
CLASS(base_type),POINTER:: e
REAL(8),ALLOCATABLE,DIMENSION(:,:)::f
CALL f_test(e,f)
CONTAINS
SUBROUTINE f_test(e,o)
IMPLICIT NONE
CLASS(base_type),POINTER::e
REAL(8),DIMENSION(3,e%i),INTENT(OUT):: o
o=0.d0
END SUBROUTINE f_test
END PROGRAM MAIN
---Example 2---
PROGRAM MAIN
IMPLICIT NONE
TYPE:: base_type
INTEGER:: i=0
END TYPE base_type
CLASS(base_type),POINTER:: e
REAL(8),ALLOCATABLE,DIMENSION(:,:)::f
f=f_test(e)
CONTAINS
FUNCTION f_test(e) RESULT(o)
IMPLICIT NONE
CLASS(base_type),POINTER::e
REAL(8),DIMENSION(3,e%i):: o
o=0.d0
END FUNCTION f_test
END PROGRAM MAIN