* tree-loop-distribution.c (struct partition): New field recording
[official-gcc.git] / gcc / testsuite / gfortran.dg / associate_5.f03
blob64345d323f3216946c2e3815aee5904f71d57f9e
1 ! { dg-do compile }
2 ! { dg-options "-std=f2003" }
4 ! PR fortran/38936
5 ! Check for errors with ASSOCIATE during resolution.
7 PROGRAM main
8   IMPLICIT NONE
9   INTEGER :: nontarget
10   INTEGER :: arr(3)
11   INTEGER, POINTER :: ptr
13   ASSOCIATE (a => 5) ! { dg-error "is used as array" }
14     PRINT *, a(3)
15   END ASSOCIATE
17   ASSOCIATE (a => nontarget)
18     ptr => a ! { dg-error "neither TARGET nor POINTER" }
19   END ASSOCIATE
21   ASSOCIATE (a => 5, b => arr((/ 1, 3 /)))
22     a = 4 ! { dg-error "variable definition context" }
23     b = 7 ! { dg-error "variable definition context" }
24     CALL test2 (a) ! { dg-error "variable definition context" }
25     CALL test2 (b) ! { dg-error "variable definition context" }
26   END ASSOCIATE
28 CONTAINS
30   SUBROUTINE test (x)
31     INTEGER, INTENT(IN) :: x
32     ASSOCIATE (y => x) ! { dg-error "variable definition context" }
33       y = 5 ! { dg-error "variable definition context" }
34       CALL test2 (x) ! { dg-error "variable definition context" }
35     END ASSOCIATE
36   END SUBROUTINE test
38   ELEMENTAL SUBROUTINE test2 (x)
39     INTEGER, INTENT(OUT) :: x
40     x = 5
41   END SUBROUTINE test2
43 END PROGRAM main