File: associate_57.f90

package info (click to toggle)
gcc-arm-none-eabi 15%3A12.2.rel1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 959,712 kB
  • sloc: cpp: 3,275,382; ansic: 2,061,766; ada: 840,956; f90: 208,513; makefile: 76,132; asm: 73,433; xml: 50,448; exp: 34,146; sh: 32,436; objc: 15,637; fortran: 14,012; python: 11,991; pascal: 6,787; awk: 4,779; perl: 3,054; yacc: 338; ml: 285; lex: 201; haskell: 122
file content (47 lines) | stat: -rw-r--r-- 1,031 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
! { 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