Hello all,
this patch does two things:
a) It updates the Fortran 2003 and TR/TS 29113 status in the GNU Fortran
manual.
b) It changes all references to Technical Report 29113 to Technical
Specification 29113
c) It changes -std=f2008tr to -std=f2008ts
(a) is obvious.
Regarding (b): For some reason, ISO's SC22 thinks that one should not
use Technical Reports (TR) but a Technical Specification (TS) for the
Further //Interoperability of Fortran with C document - and later also
for the coarray extensions. Glancing at the documentation, I think they
are right that a TS is better; there are procedural differences, but for
us the main difference is the name. As the final word is TS, I think
gfortran should use TS and not TR throughout for the post-F2008
technical documents.
Cf. ftp://ftp.nag.co.uk/sc22wg5/N1851-N1900/N1879.txt : JTC 1/SC 22
instructs the JTC 1/SC 22/WG 5 Convenor to submit future drafts of TR
29113, Further Interoperability of Fortran with C as Technical
Specifications
For the difference between TS and TR, see also
http://www.iso.org/iso/standards_development/processes_and_procedures/deliverables.htm;
for the different approval scheme also the following flow chart
(clickable):
http://www.iso.org/iso/standards_development/it_tools/flowchart_main.htm
Regarding (c): If we switch to TS everywhere, I think it makes sense to
also call the flag -std=f2008ts; the flag stands for: Follow the
standard according to Fortran 2008 with the extensions defined in the
post-F2008 (pre-F2013) standard. Namely, TS 29113 on further
interoperability of Fortran with C and the coarray TS, which is in a
rather early stage. (TS 29113 is already past a PDTS voting and a DTS
should be submitted until June 2012.
Given that -std=f2008tr was never included in a released GCC version and
given that it currently only allows very few features, I think no one
actually uses it. Hence, I decided that one can simply change it without
taking care of still accepting the f2008tr version.
(Currently supported TS 29113 features: OPTIONAL with BIND(C) - absent
arguments are indicated as NULL pointer, matching the internal
implementation. RANK() intrinsic - which is boring without assumed-rank
arrays. ASYNCHRONOUS - well, only the semantic has changed a bit since
F2003/GCC 4.6; however, GCC's middle end uses by default ASYNCHRONOUS
semantic; turning it off is a missed-optimization bug.)
The patch was build and regtested on x86-64-linux.
OK for the trunk?
Tobias
PS: I will also update the release notes after the patch has been committed.
2011-10-12 Tobias Burnus bur...@net-b.de
* gfortran.texi (Fortran 2008 status, TS 29113 status,
Further Interoperability of Fortran with C): Update implementation
status, change references from TR 29113 to TS 29113.
* intrinsic.texi (RANK): Change TR 29113 to TS 29113.
* invoke.text (-std=): Ditto, change -std=f2008tr to -std=f2008ts.
* lang.opt (std=): Ditto.
* options.c (gfc_handle_option, set_default_std_flags): Ditto and
change GFC_STD_F2008_TR to GFC_STD_F2008_TS.
* libgfortran.h: Ditto.
* intrinsic.c (add_functions, gfc_check_intrinsic_standard): Ditto.
* decl.c (verify_c_interop_param): Ditto.
2011-10-12 Tobias Burnus bur...@net-b.de
* gfortran.dg/bind_c_usage_23.f90: Change TR 29113 to TS 29113 in
the comments.
* gfortran.dg/bind_c_usage_24.f90: Ditto.
* gfortran.dg/rank_3.f90: Ditto.
* gfortran.dg/bind_c_usage_22.f90: Ditto, change -std=f2008tr to
-std=f2008ts in dg-options.
* gfortran.dg/rank_4.f90: Ditto.
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 0ee2575..9f3a39e 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -1069,7 +1069,7 @@ verify_c_interop_param (gfc_symbol *sym)
retval = FAILURE;
}
else if (sym-attr.optional == 1
- gfc_notify_std (GFC_STD_F2008_TR, TR29113: Variable '%s'
+ gfc_notify_std (GFC_STD_F2008_TS, TS29113: Variable '%s'
at %L with OPTIONAL attribute in
procedure '%s' which is BIND(C),
sym-name, (sym-declared_at),
diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi
index 389c05b..f847df3 100644
--- a/gcc/fortran/gfortran.texi
+++ b/gcc/fortran/gfortran.texi
@@ -772,7 +772,7 @@ compile option was used.
@menu
* Fortran 2003 status::
* Fortran 2008 status::
-* TR 29113 status::
+* TS 29113 status::
@end menu
@node Fortran 2003 status
@@ -1003,8 +1003,11 @@ the intrinsic module @code{ISO_FORTRAN_ENV}.
@code{ISO_C_BINDINGS} and @code{COMPILER_VERSION} and @code{COMPILER_OPTIONS}
of @code{ISO_FORTRAN_ENV}.
-@item Experimental coarray, use the @option{-fcoarray=single} or
-@option{-fcoarray=lib} flag to enable it.
+@item Coarray support for serial programs with @option{-fcoarray=single} flag
+and experimental support for multiple images with the @option{-fcoarray=lib}
+flag.
+
+@item The @code{DO CONCURRENT} construct is supported.
@item The @code{BLOCK} construct is supported.
@@ -1049,19