llvm/flang/test/Semantics/data18.f90

! RUN: %python %S/test_errors.py %s %flang_fc1
! Test error message priorities for DATA problems
module m
  integer useAlloc
  allocatable useAlloc
  integer, pointer :: usePtr(:)
 contains
  subroutine useProc
  end
end
function f(hostDummy, hostProc) result(hostResult)
  integer hostDummy, hostResult
  external hostProc
  integer hostAuto(hostDummy)
  integer, allocatable :: hostAlloc
  integer :: hostInit = 1
  integer, pointer :: hostPtr(:)
 contains
  subroutine test(innerDummy, innerProc)
    use m
    external innerProc
    integer innerAuto(innerDummy)
    integer, allocatable :: innerAlloc
    integer :: innerInit = 1
    integer, pointer :: innerPtr(:)
    !ERROR: Procedure 'useproc' must not be initialized in a DATA statement
    data useProc/0/
    !ERROR: Procedure 'hostproc' must not be initialized in a DATA statement
    data hostProc/0/
    !ERROR: Procedure 'innerproc' must not be initialized in a DATA statement
    data innerProc/0/
    !ERROR: Host-associated object 'hostdummy' must not be initialized in a DATA statement
    data hostDummy/1/
    !ERROR: Host-associated object 'hostresult' must not be initialized in a DATA statement
    data hostResult/1/
    !ERROR: Host-associated object 'hostauto' must not be initialized in a DATA statement
    data hostAuto/1/
    !ERROR: Host-associated object 'hostalloc' must not be initialized in a DATA statement
    data hostAlloc/1/
    !ERROR: Host-associated object 'hostinit' must not be initialized in a DATA statement
    data hostInit/1/
    !ERROR: Host-associated object 'hostptr' must not be initialized in a DATA statement
    data hostPtr(1)/1/
    !ERROR: USE-associated object 'usealloc' must not be initialized in a DATA statement
    data useAlloc/1/
    !ERROR: USE-associated object 'useptr' must not be initialized in a DATA statement
    data usePtr(1)/1/
    !ERROR: Dummy argument 'innerdummy' must not be initialized in a DATA statement
    data innerDummy/1/
    !ERROR: Automatic variable 'innerauto' must not be initialized in a DATA statement
    data innerAuto/1/
    !ERROR: Allocatable 'inneralloc' must not be initialized in a DATA statement
    data innerAlloc/1/
    !ERROR: Default-initialized 'innerinit' must not be initialized in a DATA statement
    data innerInit/1/
    !ERROR: Target of pointer 'innerptr' must not be initialized in a DATA statement
    data innerptr(1)/1/
  end
end