blob: c870a2840d3ccc0ebb6dcc0b610097e00a47ee4b [file] [log] [blame]
subroutine bar
!$omp requires unified_shared_memory,unified_address,reverse_offload
end
module m
!$omp requires unified_shared_memory,unified_address,reverse_offload
end module m
subroutine foo
!$omp target
!$omp end target
! { dg-error "OpenMP device constructs/routines but does not set !.OMP REQUIRES REVERSE_OFFLOAD but other program units do" "" { target *-*-* } 9 }
! { dg-error "OpenMP device constructs/routines but does not set !.OMP REQUIRES UNIFIED_ADDRESS but other program units do" "" { target *-*-* } 9 }
! { dg-error "OpenMP device constructs/routines but does not set !.OMP REQUIRES UNIFIED_SHARED_MEMORY but other program units do" "" { target *-*-* } 9 }
end
subroutine foobar
i = 5 ! < execution statement
!$omp requires atomic_default_mem_order(seq_cst) ! { dg-error "Unexpected ..OMP REQUIRES statement" }
end
program main
!$omp requires dynamic_allocators ! OK
!$omp requires unified_shared_memory
!$omp requires unified_address
!$omp requires reverse_offload
contains
subroutine foo
!$omp target
!$omp end target
end subroutine
subroutine bar
!$omp requires unified_address ! { dg-error "must appear in the specification part of a program unit" }
end subroutine bar
end
! { dg-prune-output "not yet supported" }