2016-11-10 Jakub Jelinek <jakub@redhat.com>
+ * cpp.c (cpp_define_builtins): Define _OPENMP to 201511 instead
+ of 201307.
+ * gfortran.texi: Mention partial OpenMP 4.5 support.
+ * intrinsic.texi: Update for OpenMP 4.5.
+
* openmp.c (gfc_free_omp_clauses): Free critical_name, grainsize,
hint, num_tasks, priority and if_exprs.
(gfc_match_omp_to_link, gfc_match_omp_depend_sink): New functions.
cpp_define (pfile, "_OPENACC=201306");
if (flag_openmp)
- cpp_define (pfile, "_OPENMP=201307");
+ cpp_define (pfile, "_OPENMP=201511");
/* The defines below are necessary for the TARGET_* macros.
and @ref{TS 18508 status} sections of the documentation.
Additionally, the GNU Fortran compilers supports the OpenMP specification
-(version 4.0, @url{http://openmp.org/@/wp/@/openmp-specifications/}).
+(version 4.0 and most of the features of the 4.5 version,
+@url{http://openmp.org/@/wp/@/openmp-specifications/}).
There also is initial support for the OpenACC specification (targeting
version 2.0, @uref{http://www.openacc.org/}).
Note that this is an experimental feature, incomplete, and subject to
GNU Fortran strives to be compatible to the
@uref{http://openmp.org/wp/openmp-specifications/,
-OpenMP Application Program Interface v4.0}.
+OpenMP Application Program Interface v4.5}.
To enable the processing of the OpenMP directive @code{!$omp} in
free-form source code; the @code{c$omp}, @code{*$omp} and @code{!$omp}
@section OpenMP Modules @code{OMP_LIB} and @code{OMP_LIB_KINDS}
@table @asis
@item @emph{Standard}:
-OpenMP Application Program Interface v4.0
+OpenMP Application Program Interface v4.5
@end table
below.
For details refer to the actual
-@uref{http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf,
-OpenMP Application Program Interface v4.0}.
+@uref{http://www.openmp.org/wp-content/uploads/openmp-4.5.pdf,
+OpenMP Application Program Interface v4.5}.
@code{OMP_LIB_KINDS} provides the following scalar default-integer
named constants:
@code{OMP_LIB} provides the scalar default-integer
named constant @code{openmp_version} with a value of the form
@var{yyyymm}, where @code{yyyy} is the year and @var{mm} the month
-of the OpenMP version; for OpenMP v4.0 the value is @code{201307}.
+of the OpenMP version; for OpenMP v4.5 the value is @code{201511}.
The following scalar integer named constants of the
kind @code{omp_sched_kind}:
2016-11-10 Jakub Jelinek <jakub@redhat.com>
+ * gfortran.dg/openmp-define-3.f90: Expect 201511 instead of
+ 201307.
+
* g++.dg/cpp1z/noexcept-type14.C: New test.
* g++.dg/asan/asan_test.C: Remove -Wno-c++1z-compat from dg-options.
# error _OPENMP not defined
#endif
-#if _OPENMP != 201307
+#if _OPENMP != 201511
# error _OPENMP defined to wrong value
#endif
2016-11-10 Jakub Jelinek <jakub@redhat.com>
+ * omp_lib.f90.in (openmp_version): Change to 201511 from 201307.
+ * omp_lib.h.in (openmp_version): Likewise.
+ * testsuite/libgomp.fortran/openmp_version-1.f: Expect 201511 instead
+ of 201307.
+ * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
+
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90
(fib_wrapper): Add map(from: x) clause.
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90
module omp_lib
use omp_lib_kinds
implicit none
- integer, parameter :: openmp_version = 201307
+ integer, parameter :: openmp_version = 201511
interface
subroutine omp_init_lock (svar)
parameter (omp_lock_hint_contended = 2)
parameter (omp_lock_hint_nonspeculative = 4)
parameter (omp_lock_hint_speculative = 8)
- parameter (openmp_version = 201307)
+ parameter (openmp_version = 201511)
external omp_init_lock, omp_init_nest_lock
external omp_init_lock_with_hint
implicit none
include "omp_lib.h"
- if (openmp_version .ne. 201307) call abort;
+ if (openmp_version .ne. 201511) call abort;
end program main
use omp_lib
implicit none
- if (openmp_version .ne. 201307) call abort;
+ if (openmp_version .ne. 201511) call abort;
end program main