Hi! I think it is better to announce 4.5 than 4.0 at the current state.
Bootstrapped/regtested on x86_64-linux and i686-linux, committed to trunk. 2016-11-10 Jakub Jelinek <ja...@redhat.com> gcc/fortran/ * 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. gcc/testsuite/ * gfortran.dg/openmp-define-3.f90: Expect 201511 instead of 201307. libgomp/ * 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. --- gcc/fortran/cpp.c.jj 2016-01-04 14:55:59.000000000 +0100 +++ gcc/fortran/cpp.c 2016-11-10 12:59:33.829477276 +0100 @@ -168,7 +168,7 @@ cpp_define_builtins (cpp_reader *pfile) 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. --- gcc/fortran/gfortran.texi.jj 2016-11-03 22:03:29.000000000 +0100 +++ gcc/fortran/gfortran.texi 2016-11-10 13:02:11.380466602 +0100 @@ -536,7 +536,8 @@ The current status of the support is can 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 @@ -1999,7 +2000,7 @@ and environment variables that influence 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} --- gcc/fortran/intrinsic.texi.jj 2016-10-31 13:28:11.000000000 +0100 +++ gcc/fortran/intrinsic.texi 2016-11-10 13:02:57.463880355 +0100 @@ -14769,7 +14769,7 @@ with the following options: @code{-fno-u @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 @@ -14783,8 +14783,8 @@ the named constants defined in the modul 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: @@ -14799,7 +14799,7 @@ 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}: --- gcc/testsuite/gfortran.dg/openmp-define-3.f90.jj 2014-06-18 09:11:57.000000000 +0200 +++ gcc/testsuite/gfortran.dg/openmp-define-3.f90 2016-11-10 13:04:12.381927290 +0100 @@ -6,6 +6,6 @@ # error _OPENMP not defined #endif -#if _OPENMP != 201307 +#if _OPENMP != 201511 # error _OPENMP defined to wrong value #endif --- libgomp/omp_lib.f90.in.jj 2016-01-04 14:38:59.000000000 +0100 +++ libgomp/omp_lib.f90.in 2016-11-10 13:04:30.704694198 +0100 @@ -59,7 +59,7 @@ 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) --- libgomp/omp_lib.h.in.jj 2016-01-04 14:38:59.000000000 +0100 +++ libgomp/omp_lib.h.in 2016-11-10 13:04:43.363533159 +0100 @@ -58,7 +58,7 @@ 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 --- libgomp/testsuite/libgomp.fortran/openmp_version-1.f.jj 2014-06-18 09:11:57.000000000 +0200 +++ libgomp/testsuite/libgomp.fortran/openmp_version-1.f 2016-11-10 13:05:04.255267386 +0100 @@ -4,6 +4,6 @@ implicit none include "omp_lib.h" - if (openmp_version .ne. 201307) call abort; + if (openmp_version .ne. 201511) call abort; end program main --- libgomp/testsuite/libgomp.fortran/openmp_version-2.f90.jj 2014-06-18 09:11:57.000000000 +0200 +++ libgomp/testsuite/libgomp.fortran/openmp_version-2.f90 2016-11-10 13:05:15.489124475 +0100 @@ -4,6 +4,6 @@ program main use omp_lib implicit none - if (openmp_version .ne. 201307) call abort; + if (openmp_version .ne. 201511) call abort; end program main Jakub