1 ! RUN: %python %S/test_errors.py %s %flang_fc1
2 ! Test BLOCK DATA subprogram (14.3)
4 !ERROR: IMPORT is not allowed in a BLOCK DATA subprogram
6 real :: pi
= asin(-1.0) ! ok
7 !ERROR: An initialized variable in BLOCK DATA must be in a COMMON block
8 integer :: notInCommon
= 1
9 integer :: uninitialized
! ok
10 !PORTABILITY: Procedure pointer 'q' should not have an ELEMENTAL intrinsic as its interface
11 !ERROR: 'q' may not appear in a BLOCK DATA subprogram
12 procedure(sin
), pointer :: q
=> cos
13 !ERROR: 'p' may not be a procedure as it is in a COMMON block
14 procedure(sin
), pointer :: p
=> cos
16 !ERROR: An initialized variable in BLOCK DATA must be in a COMMON block
17 integer :: inDataButNotCommon
18 data inDataButNotCommon
/1/
19 integer :: inCommonA
, inCommonB
20 !ERROR: 'incommona' in COMMON block /a/ must not be storage associated with 'incommonb' in COMMON block /b/ by EQUIVALENCE
21 common /a
/ inCommonA
, /b
/ inCommonB
22 equivalence(inCommonA
, inCommonB
)
23 integer :: inCommonD
, initialized
! ok
25 equivalence(inCommonD
, initialized
)
27 integer :: inCommonE
, jarr(2)
28 equivalence(inCommonE
, jarr(2))
29 !ERROR: 'incommone' cannot backward-extend COMMON block /e/ via EQUIVALENCE with 'jarr'
31 equivalence(inCommonF1
, inCommonF2
)
32 integer :: inCommonF1
, inCommonF2
33 !ERROR: 'incommonf1' is storage associated with 'incommonf2' by EQUIVALENCE elsewhere in COMMON block /f/
34 common /f
/ inCommonF1
, inCommonF2
35 !Regression test for llvm-project/issues/65922 - no error expected
36 common /g
/ inCommonG1
, inCommonG2
37 real inCommonG1(-9:10), inCommonG2(10), otherG(11)
38 equivalence (inCommonG1(1), otherG
), (otherG(11), inCommonG2
)