| ! 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 |