blob: 80c7668417476cbe06cee2336f5e60b0fb25e2f7 [file] [log] [blame]
! { dg-do compile }
! PR 96386 - this used to cause an ICE.
! Test case by Menno Deij - van Rijswijk.
MODULE assoc
TYPE Level3
INTEGER :: someNumber
END TYPE Level3
TYPE Level2
INTEGER :: nLevel3
TYPE (Level3), ALLOCATABLE :: levels3(:)
END TYPE Level2
TYPE Level1
INTEGER :: nLevel2
TYPE (Level2), ALLOCATABLE :: levels2(:)
END TYPE Level1
TYPE outer_type
INTEGER :: nLevel1
TYPE (Level1), ALLOCATABLE :: levels1(:)
END TYPE outer_type
TYPE(outer_type), TARGET :: outer
CONTAINS
SUBROUTINE internal_compiler_error_repro()
INTEGER F,B,Z
ASSOCIATE(l1 => outer%levels1 ) ! <-- this gives an ICE
!ASSOCIATE(l1 => outer%levels1(:) ) ! <-- No ICE if array spec is added
DO F=1,outer%nLevel1
ASSOCIATE(l2 => l1(F)%levels2 )
DO B=1,l2(F)%nLevel3 ! <-- condition for ICE to be triggered
END DO
END ASSOCIATE
END DO
END ASSOCIATE
END SUBROUTINE internal_compiler_error_repro
end module