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

Reply via email to