llvm-project/flang/test/Semantics/omp-depend01.f90
Faris Rehman 6d48a1a53f [flang][driver] Add support for -fopenmp and -fopenacc
Add support for the following options:
* -fopenmp
* -fopenacc

Update OpenMP and OpenACC semantics tests to use the new driver if it is built, otherwise use f18.
OpenMP tests that include `use omp_lib` or run `test_symbols.sh` have not been updated as they require options `-intrinsic-module-directory` and `-funparse-with-symbols` which are currently not implemented in the new driver.
Similarly OpenACC tests that run `test_symbols.sh` have not been updated.

This patch also moves semanticsContext to CompilerInvocation and creates it in CompilerInvocation#setSemanticsOpts so that the semantics context can use Fortran::parser::Options#features.

Summary of changes:
- Move semanticsContext to CompilerInvocation.h
- Update OpenMP and OpenACC semantics tests that do not rely on `-intrinsic-module-directory` and `-funparse-with-symbols` to use %flang

Differential Revision: https://reviews.llvm.org/D96032
2021-02-10 09:59:35 +00:00

29 lines
708 B
Fortran

! RUN: %S/test_errors.sh %s %t %flang -fopenmp
! OpenMP Version 4.5
! 2.13.9 Depend Clause
! List items used in depend clauses cannot be zero-length array sections.
program omp_depend
integer :: a(10) , b(10,10)
a = 10
b = 20
!$omp parallel
!$omp single
!ERROR: 'a' in DEPEND clause is a zero size array section
!ERROR: 'b' in DEPEND clause is a zero size array section
!$omp task shared(a,b) depend(out: a(2:1), b(3:1, 1:-1))
a(2:1) = b(2, 2)
!$omp end task
!ERROR: Stride should not be specified for array section in DEPEND clause
!$omp task shared(x) depend(in: a(5:10:1))
print *, a(5:10), b
!$omp end task
!$omp end single
!$omp end parallel
end program omp_depend