1! { dg-do run }
2! { dg-options "-std=f2008 -fall-intrinsics" }
3
4! Basic Fortran 2008 BLOCK construct test.
5
6PROGRAM main
7  IMPLICIT NONE
8  INTEGER :: i
9
10  i = 42
11
12  ! Empty block.
13  BLOCK
14  END BLOCK
15
16  ! Block without local variables but name.
17  BLOCK
18    IF (i /= 42) CALL abort ()
19    i = 5
20  END BLOCK
21  IF (i /= 5) CALL abort ()
22
23  ! Named block with local variable and nested block.
24  myblock: BLOCK
25    INTEGER :: i
26    i = -1
27    BLOCK
28      IF (i /= -1) CALL abort ()
29      i = -2
30    END BLOCK
31    IF (i /= -2) CALL abort ()
32  END BLOCK myblock ! Matching end-label.
33  IF (i /= 5) CALL abort ()
34END PROGRAM main
35