This PR changes the build system to use use the sources for the module `omp_lib` and the `omp_lib.h` include file from the `openmp` runtime project and not from a separate copy of these files. This will greatly reduce potential for inconsistencies when adding features to the OpenMP runtime implementation. When the OpenMP subproject is not configured, this PR also disables the corresponding LIT tests with a "REQUIRES" directive at the beginning of the OpenMP test files. --------- Co-authored-by: Valentin Clement (バレンタイン クレメン) <clementval@gmail.com>
28 lines
1005 B
Fortran
28 lines
1005 B
Fortran
! REQUIRES: openmp_runtime
|
|
|
|
! Verify that the omp_lib.h header is found and included correctly. This header file should be available at a path:
|
|
! * relative to the driver, that's
|
|
! * known the driver.
|
|
! This is taken care of at the CMake and the driver levels. Note that when searching for header files, the directory of the current
|
|
! source file takes precedence over other search paths. Hence adding omp_lib.h in the current directory will make Flang use that
|
|
! header file instead of the one shipped with Flang.
|
|
|
|
! This should just work
|
|
! RUN: not rm omp_lib.h
|
|
! RUN: %flang -cpp -fsyntax-only -fopenmp %s 2>&1
|
|
|
|
! Create an empty omp_lib.h header that _does not_ define omp_default_mem_alloc - this should lead to semantic errors
|
|
! RUN: touch omp_lib.h
|
|
! RUN: not %flang -cpp -fsyntax-only -fopenmp %s 2>&1 | FileCheck %s
|
|
! RUN: rm omp_lib.h
|
|
|
|
! CHECK: error: Must have INTEGER type, but is REAL(4)
|
|
|
|
include "omp_lib.h"
|
|
|
|
integer :: x, y
|
|
|
|
!$omp allocate(x, y) allocator(omp_default_mem_alloc)
|
|
|
|
end
|