Commit 4650947d by Tobias Burnus Committed by Tobias Burnus

gfortran.texi (Fortran 2008 status, [...]): Update implementation status, change…

gfortran.texi (Fortran 2008 status, [...]): Update implementation status, change references from TR 29113 to TS 29113.

2011-10-15  Tobias Burnus  <burnus@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-15  Tobias Burnus  <burnus@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.

From-SVN: r180024
parent a0bd60d1
2011-10-15 Tobias Burnus <burnus@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-14 Janus Weil <janus@gcc.gnu.org> 2011-10-14 Janus Weil <janus@gcc.gnu.org>
PR fortran/50570 PR fortran/50570
......
...@@ -1069,7 +1069,7 @@ verify_c_interop_param (gfc_symbol *sym) ...@@ -1069,7 +1069,7 @@ verify_c_interop_param (gfc_symbol *sym)
retval = FAILURE; retval = FAILURE;
} }
else if (sym->attr.optional == 1 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 " "at %L with OPTIONAL attribute in "
"procedure '%s' which is BIND(C)", "procedure '%s' which is BIND(C)",
sym->name, &(sym->declared_at), sym->name, &(sym->declared_at),
......
...@@ -772,7 +772,7 @@ compile option was used. ...@@ -772,7 +772,7 @@ compile option was used.
@menu @menu
* Fortran 2003 status:: * Fortran 2003 status::
* Fortran 2008 status:: * Fortran 2008 status::
* TR 29113 status:: * TS 29113 status::
@end menu @end menu
@node Fortran 2003 status @node Fortran 2003 status
...@@ -1003,8 +1003,11 @@ the intrinsic module @code{ISO_FORTRAN_ENV}. ...@@ -1003,8 +1003,11 @@ the intrinsic module @code{ISO_FORTRAN_ENV}.
@code{ISO_C_BINDINGS} and @code{COMPILER_VERSION} and @code{COMPILER_OPTIONS} @code{ISO_C_BINDINGS} and @code{COMPILER_VERSION} and @code{COMPILER_OPTIONS}
of @code{ISO_FORTRAN_ENV}. of @code{ISO_FORTRAN_ENV}.
@item Experimental coarray, use the @option{-fcoarray=single} or @item Coarray support for serial programs with @option{-fcoarray=single} flag
@option{-fcoarray=lib} flag to enable it. 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. @item The @code{BLOCK} construct is supported.
...@@ -1049,19 +1052,25 @@ arrays are supported for named constants (@code{PARAMETER}). ...@@ -1049,19 +1052,25 @@ arrays are supported for named constants (@code{PARAMETER}).
@node TR 29113 status @node TS 29113 status
@section Fortran 29113 status @section Technical Specification 29113 Status
GNU Fortran supports some of the new features of the technical report (TR) GNU Fortran supports some of the new features of the Technical
29113 on Further Interoperability of Fortran with C. Specification (TS) 29113 on Further Interoperability of Fortran with C.
@uref{http://gcc.gnu.org/wiki/Fortran2008Status, wiki} has some information The @uref{http://gcc.gnu.org/wiki/TS29113Status, wiki} has some information
about the current TR 29113 implementation status. In particular, the about the current TS 29113 implementation status. In particular, the
following is implemented. following is implemented.
@itemize @itemize
@item The @option{-std=f2008} option. @item The @option{-std=f2008ts} option.
@item The OPTIONAL attribute is now allowed for dummy arguments of
BIND(C) procedures. @item The @code{OPTIONAL} attribute is allowed for dummy arguments
of @code{BIND(C) procedures.}
@item The RANK intrinsic is supported.
@item GNU Fortran's implementation for variables with @code{ASYNCHRONOUS}
attribute is compatible with TS 29113.
@end itemize @end itemize
...@@ -2446,15 +2455,13 @@ END MODULE m ...@@ -2446,15 +2455,13 @@ END MODULE m
Assumed-shape and allocatable arrays are passed using an array descriptor Assumed-shape and allocatable arrays are passed using an array descriptor
(dope vector). The internal structure of the array descriptor used (dope vector). The internal structure of the array descriptor used
by GNU Fortran is not yet documented and will change. There will also be by GNU Fortran is not yet documented and will change. There will also be
a Technical Report (TR 29113) which standardizes an interoperable a Technical Specification (TS 29113) which standardizes an interoperable
array descriptor. Until then, you can use the Chasm Language array descriptor. Until then, you can use the Chasm Language
Interoperability Tools, @url{http://chasm-interop.sourceforge.net/}, Interoperability Tools, @url{http://chasm-interop.sourceforge.net/},
which provide an interface to GNU Fortran's array descriptor. which provide an interface to GNU Fortran's array descriptor.
The technical report 29113 will presumably also include support for GNU Fortran already supports the C-interoperable @code{OPTIONAL}
C-interoperable @code{OPTIONAL} and for assumed-rank and assumed-type attribute; for absent arguments, a @code{NULL} pointer is passed.
dummy arguments. However, the TR has neither been approved nor implemented
in GNU Fortran; therefore, these features are not yet available.
...@@ -2620,9 +2627,9 @@ Possible values are (bitwise or-ed) @code{GFC_STD_F77} (1), ...@@ -2620,9 +2627,9 @@ Possible values are (bitwise or-ed) @code{GFC_STD_F77} (1),
@code{GFC_STD_F95_OBS} (2), @code{GFC_STD_F95_DEL} (4), @code{GFC_STD_F95} @code{GFC_STD_F95_OBS} (2), @code{GFC_STD_F95_DEL} (4), @code{GFC_STD_F95}
(8), @code{GFC_STD_F2003} (16), @code{GFC_STD_GNU} (32), (8), @code{GFC_STD_F2003} (16), @code{GFC_STD_GNU} (32),
@code{GFC_STD_LEGACY} (64), @code{GFC_STD_F2008} (128), @code{GFC_STD_LEGACY} (64), @code{GFC_STD_F2008} (128),
@code{GFC_STD_F2008_OBS} (256) and GFC_STD_F2008_TR (512). Default: @code{GFC_STD_F2008_OBS} (256) and GFC_STD_F2008_TS (512). Default:
@code{GFC_STD_F95_OBS | GFC_STD_F95_DEL | GFC_STD_F95 | GFC_STD_F2003 @code{GFC_STD_F95_OBS | GFC_STD_F95_DEL | GFC_STD_F95 | GFC_STD_F2003
| GFC_STD_F2008 | GFC_STD_F2008_TR | GFC_STD_F2008_OBS | GFC_STD_F77 | GFC_STD_F2008 | GFC_STD_F2008_TS | GFC_STD_F2008_OBS | GFC_STD_F77
| GFC_STD_GNU | GFC_STD_LEGACY}. | GFC_STD_GNU | GFC_STD_LEGACY}.
@item @var{option}[1] @tab Standard-warning flag; prints a warning to @item @var{option}[1] @tab Standard-warning flag; prints a warning to
standard error. Default: @code{GFC_STD_F95_DEL | GFC_STD_LEGACY}. standard error. Default: @code{GFC_STD_F95_DEL | GFC_STD_LEGACY}.
......
...@@ -2434,9 +2434,9 @@ add_functions (void) ...@@ -2434,9 +2434,9 @@ add_functions (void)
make_generic ("range", GFC_ISYM_RANGE, GFC_STD_F95); make_generic ("range", GFC_ISYM_RANGE, GFC_STD_F95);
add_sym_1 ("rank", GFC_ISYM_RANK, CLASS_INQUIRY, ACTUAL_NO, BT_INTEGER, di, add_sym_1 ("rank", GFC_ISYM_RANK, CLASS_INQUIRY, ACTUAL_NO, BT_INTEGER, di,
GFC_STD_F2008_TR, gfc_check_rank, gfc_simplify_rank, NULL, GFC_STD_F2008_TS, gfc_check_rank, gfc_simplify_rank, NULL,
a, BT_REAL, dr, REQUIRED); a, BT_REAL, dr, REQUIRED);
make_generic ("rank", GFC_ISYM_RANK, GFC_STD_F2008_TR); make_generic ("rank", GFC_ISYM_RANK, GFC_STD_F2008_TS);
add_sym_2 ("real", GFC_ISYM_REAL, CLASS_ELEMENTAL, ACTUAL_NO, BT_REAL, dr, GFC_STD_F77, add_sym_2 ("real", GFC_ISYM_REAL, CLASS_ELEMENTAL, ACTUAL_NO, BT_REAL, dr, GFC_STD_F77,
gfc_check_real, gfc_simplify_real, gfc_resolve_real, gfc_check_real, gfc_simplify_real, gfc_resolve_real,
...@@ -3989,8 +3989,8 @@ gfc_check_intrinsic_standard (const gfc_intrinsic_sym* isym, ...@@ -3989,8 +3989,8 @@ gfc_check_intrinsic_standard (const gfc_intrinsic_sym* isym,
symstd_msg = "new in Fortran 2008"; symstd_msg = "new in Fortran 2008";
break; break;
case GFC_STD_F2008_TR: case GFC_STD_F2008_TS:
symstd_msg = "new in TR 29113"; symstd_msg = "new in TS 29113";
break; break;
case GFC_STD_GNU: case GFC_STD_GNU:
......
...@@ -10222,7 +10222,7 @@ See @code{PRECISION} for an example. ...@@ -10222,7 +10222,7 @@ See @code{PRECISION} for an example.
@code{RANK(A)} returns the rank of a scalar or array data object. @code{RANK(A)} returns the rank of a scalar or array data object.
@item @emph{Standard}: @item @emph{Standard}:
Technical Report (TR) 29113 Technical Specification (TS) 29113
@item @emph{Class}: @item @emph{Class}:
Inquiry function Inquiry function
......
...@@ -368,9 +368,10 @@ extensions, and may be useful for old non-standard programs. The ...@@ -368,9 +368,10 @@ extensions, and may be useful for old non-standard programs. The
conformance to the Fortran 95, Fortran 2003 and Fortran 2008 standards, conformance to the Fortran 95, Fortran 2003 and Fortran 2008 standards,
respectively; errors are given for all extensions beyond the relevant respectively; errors are given for all extensions beyond the relevant
language standard, and warnings are given for the Fortran 77 features language standard, and warnings are given for the Fortran 77 features
that are permitted but obsolescent in later standards. @samp{-std=f2008tr} that are permitted but obsolescent in later standards. @samp{-std=f2008ts}
allows the Fortran 2008 standard including the additions of the allows the Fortran 2008 standard including the additions of the
technical report (TR) 29113. Technical Specification (TS) 29113 on Further Interoperability of Fortran
with C.
@end table @end table
......
...@@ -590,9 +590,9 @@ std=f2008 ...@@ -590,9 +590,9 @@ std=f2008
Fortran Fortran
Conform to the ISO Fortran 2008 standard Conform to the ISO Fortran 2008 standard
std=f2008tr std=f2008ts
Fortran Fortran
Conform to the ISO Fortran 2008 standard including TR 29113 Conform to the ISO Fortran 2008 standard including TS 29113
std=f95 std=f95
Fortran Fortran
......
...@@ -23,7 +23,7 @@ along with GCC; see the file COPYING3. If not see ...@@ -23,7 +23,7 @@ along with GCC; see the file COPYING3. If not see
Note that no features were obsoleted nor deleted in F2003. Note that no features were obsoleted nor deleted in F2003.
Please remember to keep those definitions in sync with Please remember to keep those definitions in sync with
gfortran.texi. */ gfortran.texi. */
#define GFC_STD_F2008_TR (1<<9) /* POST-F2008 technical reports. */ #define GFC_STD_F2008_TS (1<<9) /* POST-F2008 technical reports. */
#define GFC_STD_F2008_OBS (1<<8) /* Obsolescent in F2008. */ #define GFC_STD_F2008_OBS (1<<8) /* Obsolescent in F2008. */
#define GFC_STD_F2008 (1<<7) /* New in F2008. */ #define GFC_STD_F2008 (1<<7) /* New in F2008. */
#define GFC_STD_LEGACY (1<<6) /* Backward compatibility. */ #define GFC_STD_LEGACY (1<<6) /* Backward compatibility. */
......
...@@ -49,7 +49,7 @@ set_default_std_flags (void) ...@@ -49,7 +49,7 @@ set_default_std_flags (void)
{ {
gfc_option.allow_std = GFC_STD_F95_OBS | GFC_STD_F95_DEL gfc_option.allow_std = GFC_STD_F95_OBS | GFC_STD_F95_DEL
| GFC_STD_F2003 | GFC_STD_F2008 | GFC_STD_F95 | GFC_STD_F77 | GFC_STD_F2003 | GFC_STD_F2008 | GFC_STD_F95 | GFC_STD_F77
| GFC_STD_F2008_OBS | GFC_STD_F2008_TR | GFC_STD_GNU | GFC_STD_LEGACY; | GFC_STD_F2008_OBS | GFC_STD_F2008_TS | GFC_STD_GNU | GFC_STD_LEGACY;
gfc_option.warn_std = GFC_STD_F95_DEL | GFC_STD_LEGACY; gfc_option.warn_std = GFC_STD_F95_DEL | GFC_STD_LEGACY;
} }
...@@ -945,10 +945,10 @@ gfc_handle_option (size_t scode, const char *arg, int value, ...@@ -945,10 +945,10 @@ gfc_handle_option (size_t scode, const char *arg, int value,
gfc_option.warn_tabs = 0; gfc_option.warn_tabs = 0;
break; break;
case OPT_std_f2008tr: case OPT_std_f2008ts:
gfc_option.allow_std = GFC_STD_F95_OBS | GFC_STD_F77 gfc_option.allow_std = GFC_STD_F95_OBS | GFC_STD_F77
| GFC_STD_F2003 | GFC_STD_F95 | GFC_STD_F2008 | GFC_STD_F2008_OBS | GFC_STD_F2003 | GFC_STD_F95 | GFC_STD_F2008 | GFC_STD_F2008_OBS
| GFC_STD_F2008_TR; | GFC_STD_F2008_TS;
gfc_option.warn_std = GFC_STD_F95_OBS | GFC_STD_F2008_OBS; gfc_option.warn_std = GFC_STD_F95_OBS | GFC_STD_F2008_OBS;
gfc_option.max_identifier_length = 63; gfc_option.max_identifier_length = 63;
gfc_option.warn_ampersand = 1; gfc_option.warn_ampersand = 1;
......
2011-10-15 Tobias Burnus <burnus@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.
2011-10-15 Oleg Endo <oleg.endo@t-online.de> 2011-10-15 Oleg Endo <oleg.endo@t-online.de>
PR target/49263 PR target/49263
......
! { dg-do compile } ! { dg-do compile }
! { dg-options "-std=f2008tr" } ! { dg-options "-std=f2008ts" }
! !
! PR fortran/48858 ! PR fortran/48858
! PR fortran/48820 ! PR fortran/48820
! !
! OPTIONAL + BIND(C) is allowed since TR 29113 ! OPTIONAL + BIND(C) is allowed since TS 29113
! !
! VALID ! VALID
...@@ -13,20 +13,20 @@ subroutine sub(z) bind(C) ...@@ -13,20 +13,20 @@ subroutine sub(z) bind(C)
integer(c_int), value :: z integer(c_int), value :: z
end subroutine sub end subroutine sub
! VALID since TR29113 ! VALID since TS29113
subroutine sub2(z) bind(C) subroutine sub2(z) bind(C)
use iso_c_binding use iso_c_binding
integer(c_int), optional :: z integer(c_int), optional :: z
end subroutine sub2 end subroutine sub2
! VALID since TR29113 ! VALID since TS29113
subroutine sub2a(z) bind(C) subroutine sub2a(z) bind(C)
use iso_c_binding use iso_c_binding
integer(c_int) :: z integer(c_int) :: z
optional :: z optional :: z
end subroutine sub2a end subroutine sub2a
! VALID since TR29113 ! VALID since TS29113
subroutine sub2b(z) bind(C) subroutine sub2b(z) bind(C)
use iso_c_binding use iso_c_binding
optional :: z optional :: z
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
! PR fortran/48858 ! PR fortran/48858
! PR fortran/48820 ! PR fortran/48820
! !
! OPTIONAL + BIND(C) is allowed since TR 29113 ! OPTIONAL + BIND(C) is allowed since TS 29113
! !
! VALID ! VALID
...@@ -13,20 +13,20 @@ subroutine sub(z) bind(C) ...@@ -13,20 +13,20 @@ subroutine sub(z) bind(C)
integer(c_int), value :: z integer(c_int), value :: z
end subroutine sub end subroutine sub
! VALID since TR29113 ! VALID since TS29113
subroutine sub2(z) bind(C) ! { dg-error "with OPTIONAL attribute in procedure" } subroutine sub2(z) bind(C) ! { dg-error "with OPTIONAL attribute in procedure" }
use iso_c_binding use iso_c_binding
integer(c_int), optional :: z integer(c_int), optional :: z
end subroutine sub2 end subroutine sub2
! VALID since TR29113 ! VALID since TS29113
subroutine sub2a(z) bind(C) ! { dg-error "with OPTIONAL attribute in procedure" } subroutine sub2a(z) bind(C) ! { dg-error "with OPTIONAL attribute in procedure" }
use iso_c_binding use iso_c_binding
integer(c_int) :: z integer(c_int) :: z
optional :: z optional :: z
end subroutine sub2a end subroutine sub2a
! VALID since TR29113 ! VALID since TS29113
subroutine sub2b(z) bind(C) ! { dg-error "with OPTIONAL attribute in procedure" } subroutine sub2b(z) bind(C) ! { dg-error "with OPTIONAL attribute in procedure" }
use iso_c_binding use iso_c_binding
optional :: z optional :: z
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
! PR fortran/48858 ! PR fortran/48858
! PR fortran/48820 ! PR fortran/48820
! !
! TR 29113: BIND(C) with OPTIONAL ! TS 29113: BIND(C) with OPTIONAL
! !
module m module m
use iso_c_binding use iso_c_binding
......
...@@ -3,5 +3,5 @@ ...@@ -3,5 +3,5 @@
! !
! PR fortran/48820 ! PR fortran/48820
! !
intrinsic :: rank ! { dg-error "new in TR 29113" } intrinsic :: rank ! { dg-error "new in TS 29113" }
end end
! { dg-do compile } ! { dg-do compile }
! { dg-options "-std=f2008tr -fdump-tree-original" } ! { dg-options "-std=f2008ts -fdump-tree-original" }
! !
! PR fortran/48820 ! PR fortran/48820
! !
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment