40 lines · plain
1! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic2! Test BLOCK DATA subprogram (14.3)3block data foo4 !ERROR: IMPORT is not allowed in a BLOCK DATA subprogram5 import6 real :: pi = asin(-1.0) ! ok7 !ERROR: An initialized variable in BLOCK DATA must be in a COMMON block8 integer :: notInCommon = 19 integer :: uninitialized ! ok10 !PORTABILITY: Procedure pointer 'q' should not have an ELEMENTAL intrinsic as its interface [-Wportability]11 !ERROR: 'q' may not appear in a BLOCK DATA subprogram12 procedure(sin), pointer :: q => cos13 !ERROR: 'p' may not be a procedure as it is in a COMMON block14 procedure(sin), pointer :: p => cos15 common /block/ p, pi16 !ERROR: An initialized variable in BLOCK DATA must be in a COMMON block17 integer :: inDataButNotCommon18 data inDataButNotCommon /1/19 integer :: inCommonA, inCommonB20 !ERROR: 'incommona' in COMMON block /a/ must not be storage associated with 'incommonb' in COMMON block /b/ by EQUIVALENCE21 common /a/ inCommonA, /b/ inCommonB22 equivalence(inCommonA, inCommonB)23 integer :: inCommonD, initialized ! ok24 common /d/ inCommonD25 equivalence(inCommonD, initialized)26 data initialized /2/27 integer :: inCommonE, jarr(2)28 equivalence(inCommonE, jarr(2))29 !ERROR: 'incommone' cannot backward-extend COMMON block /e/ via EQUIVALENCE with 'jarr'30 common /e/ inCommonE31 equivalence(inCommonF1, inCommonF2)32 integer :: inCommonF1, inCommonF233 !ERROR: 'incommonf1' is storage associated with 'incommonf2' by EQUIVALENCE elsewhere in COMMON block /f/34 common /f/ inCommonF1, inCommonF235 !Regression test for llvm-project/issues/65922 - no error expected36 common /g/ inCommonG1, inCommonG237 real inCommonG1(-9:10), inCommonG2(10), otherG(11)38 equivalence (inCommonG1(1), otherG), (otherG(11), inCommonG2)39end block data40