| ! { 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 |