xref: /llvm-project/flang/test/Semantics/OpenMP/requires05.f90 (revision 00ab44ee66dbcf0d32819dbc6e4eefd1b7c48dfa)
1! RUN: %python %S/../test_errors.py %s %flang -fopenmp -fopenmp-version=52
2! OpenMP Version 5.0
3! 2.4 Requires directive
4! Target-related clauses in 'requires' directives must come strictly before any
5! device constructs, such as declare target with 'to' clause and no device_type.
6
7subroutine f
8  !WARNING: The usage of TO clause on DECLARE TARGET directive has been deprecated. Use ENTER clause instead.
9  !$omp declare target to(f)
10  !$omp declare target enter(f)
11end subroutine f
12
13subroutine g
14  !ERROR: REQUIRES directive with 'DYNAMIC_ALLOCATORS' clause found lexically after device construct
15  !$omp requires dynamic_allocators
16  !ERROR: REQUIRES directive with 'REVERSE_OFFLOAD' clause found lexically after device construct
17  !$omp requires reverse_offload
18  !ERROR: REQUIRES directive with 'UNIFIED_ADDRESS' clause found lexically after device construct
19  !$omp requires unified_address
20  !ERROR: REQUIRES directive with 'UNIFIED_SHARED_MEMORY' clause found lexically after device construct
21  !$omp requires unified_shared_memory
22end subroutine g
23