https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87277
Bug ID: 87277 Summary: [8/9 regression] Segfault on using array component of class scalar pointer as an actual argument Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: pault at gcc dot gnu.org Reporter: pault at gcc dot gnu.org Target Milestone: --- Reported by Andrew Baldwin on clf. This segfaults in 8- and 9-branches. MODULE INTS_TYPE_MODULE TYPE INTS_TYPE INTEGER, ALLOCATABLE :: INTS(:) END TYPE INTS_TYPE CONTAINS SUBROUTINE ALLOCATE_INTS_TYPE (IT_OBJ) CLASS (INTS_TYPE), POINTER, INTENT (OUT) :: IT_OBJ ALLOCATE (INTS_TYPE :: IT_OBJ) SELECT TYPE (IT_OBJ) TYPE IS (INTS_TYPE) CALL ALLOCATE_ARRAY (IT_OBJ%INTS) END SELECT RETURN END SUBROUTINE ALLOCATE_INTS_TYPE SUBROUTINE ALLOCATE_ARRAY (ALLOC_ARR) INTEGER, ALLOCATABLE, INTENT (OUT) :: ALLOC_ARR(:) INTEGER :: I ALLOCATE (ALLOC_ARR(4)) DO I = 1, SIZE(ALLOC_ARR) ALLOC_ARR(I) = I END DO RETURN END SUBROUTINE ALLOCATE_ARRAY END MODULE INTS_TYPE_MODULE PROGRAM MFE USE INTS_TYPE_MODULE IMPLICIT NONE CLASS (INTS_TYPE), POINTER :: IT_OBJ CALL ALLOCATE_INTS_TYPE (IT_OBJ) END PROGRAM MFE The fix is regtesting and will be committed tonight as obvious. Paul