1*1c91d9bdSPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic 2a20d48d7Speter klausler! DATA statement errors 3a20d48d7Speter klauslersubroutine s1 4a20d48d7Speter klausler type :: t1 5a20d48d7Speter klausler integer :: j = 666 6a20d48d7Speter klausler end type t1 7a20d48d7Speter klausler type(t1) :: t1x 8a20d48d7Speter klausler !ERROR: Default-initialized 't1x' must not be initialized in a DATA statement 9a20d48d7Speter klausler data t1x%j / 777 / 10c4f67ea1SPeter Klausler type :: t2 11c4f67ea1SPeter Klausler integer, allocatable :: j 12c4f67ea1SPeter Klausler integer :: k 13c4f67ea1SPeter Klausler end type t2 14c4f67ea1SPeter Klausler type(t2) :: t2x 15c4f67ea1SPeter Klausler data t2x%k / 777 / ! allocatable component is ok 16a20d48d7Speter klausler integer :: ja = 888 17a20d48d7Speter klausler !ERROR: Default-initialized 'ja' must not be initialized in a DATA statement 18a20d48d7Speter klausler data ja / 999 / 19a20d48d7Speter klausler integer :: a1(10) 20a20d48d7Speter klausler !ERROR: DATA statement set has more values than objects 21a20d48d7Speter klausler data a1(1:9:2) / 6 * 1 / 22a20d48d7Speter klausler integer :: a2(10) 23a20d48d7Speter klausler !ERROR: DATA statement set has no value for 'a2(2_8)' 24a20d48d7Speter klausler data (a2(k),k=10,1,-2) / 4 * 1 / 25a20d48d7Speter klausler integer :: a3(2) 26a20d48d7Speter klausler !ERROR: DATA statement implied DO loop has a step value of zero 27a20d48d7Speter klausler data (a3(j),j=1,2,0)/2*333/ 28a20d48d7Speter klausler integer :: a4(3) 29a20d48d7Speter klausler !ERROR: DATA statement designator 'a4(5_8)' is out of range 30a20d48d7Speter klausler data (a4(j),j=1,5,2) /3*222/ 31ba038a30SMike Kashkarov integer :: a5(3) 32ba038a30SMike Kashkarov !ERROR: DATA statement designator 'a5(-2_8)' is out of range 33ba038a30SMike Kashkarov data a5(-2) / 1 / 34a20d48d7Speter klausler interface 35a20d48d7Speter klausler real function rfunc(x) 36a20d48d7Speter klausler real, intent(in) :: x 37a20d48d7Speter klausler end function 38a20d48d7Speter klausler end interface 39a20d48d7Speter klausler real, pointer :: rp 40a20d48d7Speter klausler !ERROR: Procedure 'rfunc' may not be used to initialize 'rp', which is not a procedure pointer 41a20d48d7Speter klausler data rp/rfunc/ 42a20d48d7Speter klausler procedure(rfunc), pointer :: rpp 43a20d48d7Speter klausler real, target :: rt 4493dca9fbSEmil Kieri !WARNING: Procedure pointer 'rpp' in a DATA statement is not standard 45a20d48d7Speter klausler !ERROR: Data object 'rt' may not be used to initialize 'rpp', which is a procedure pointer 46a20d48d7Speter klausler data rpp/rt/ 47a20d48d7Speter klausler !ERROR: Initializer for 'rt' must not be a pointer 48a20d48d7Speter klausler data rt/null()/ 49a20d48d7Speter klausler !ERROR: Initializer for 'rt' must not be a procedure 50a20d48d7Speter klausler data rt/rfunc/ 51a20d48d7Speter klausler integer :: jx, jy 5243b304b0Speter klausler !WARNING: DATA statement value initializes 'jx' of type 'INTEGER(4)' with CHARACTER 53a20d48d7Speter klausler data jx/'abc'/ 54a20d48d7Speter klausler !ERROR: DATA statement value could not be converted to the type 'INTEGER(4)' of the object 'jx' 55a20d48d7Speter klausler data jx/t1()/ 569a883bfaSpeter klausler !ERROR: DATA statement value 'jy' for 'jx' is not a constant 57a20d48d7Speter klausler data jx/jy/ 58a20d48d7Speter klauslerend subroutine 59