diff options
author | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-04-16 20:54:21 +0000 |
---|---|---|
committer | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-04-16 20:54:21 +0000 |
commit | fa76a552a067d82135c0df88f5fcec226d8ae740 (patch) | |
tree | ae48f47ebf76afba5e32eeb6ff8fdc0fcb516a97 /gcc/fortran/gfortran.texi | |
parent | 9d66f5d55b4bd621b3e10d9bc31968f58afb2e70 (diff) | |
download | gcc-fa76a552a067d82135c0df88f5fcec226d8ae740.tar.gz |
2013-04-12 Tobias Burnus <burnus@net-b.de>
PR fortran/39505
* decl.c (ext_attr_list): Add EXT_ATTR_NO_ARG_CHECK.
* gfortran.h (ext_attr_id_t): Ditto.
* gfortran.texi (GNU Fortran Compiler Directives):
Document it.
* interface.c (compare_type_rank): Ignore rank for NO_ARG_CHECK.
(compare_parameter): Ditto - and regard as unlimited polymorphic.
* resolve.c (resolve_symbol, resolve_variable): Add same
* constraint
checks as for TYPE(*); turn dummy to TYPE(*),dimension(*).
(gfc_explicit_interface_required): Require explicit interface
for NO_ARG_CHECK.
2013-04-12 Tobias Burnus <burnus@net-b.de>
PR fortran/39505
* gfortran.dg/no_arg_check_1.f90: New.
* gfortran.dg/no_arg_check_2.f90: New.
* gfortran.dg/no_arg_check_3.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198011 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/gfortran.texi')
-rw-r--r-- | gcc/fortran/gfortran.texi | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi index 61cb3bb9746..f4bcdef69c4 100644 --- a/gcc/fortran/gfortran.texi +++ b/gcc/fortran/gfortran.texi @@ -2688,6 +2688,29 @@ are in a shared library. The following attributes are available: @item @code{DLLIMPORT} -- reference the function or variable using a global pointer @end itemize +For dummy arguments, the @code{NO_ARG_CHECK} attribute can be used; in +other compilers, it is also known as @code{IGNORE_TKR}. For dummy arguments +with this attribute actual arguments of any type and kind (similar to +@code{TYPE(*)}), scalars and arrays of any rank (no equivalent +in Fortran standard) are accepted. As with @code{TYPE(*)}, the argument +is unlimited polymorphic and no type information is available. +Additionally, the same restrictions apply, i.e. the argument may only be +passed to dummy arguments with the @code{NO_ARG_CHECK} attribute and as +argument to the @code{C_LOC} intrinsic function of the @code{ISO_C_BINDING} +module. + +Variables with @code{NO_ARG_CHECK} attribute shall be of assumed-type +(@code{TYPE(*)}; recommended) or of an intrinsic numeric type; they +shall not have the @code{ALLOCATE}, @code{CODIMENSION}, @code{INTENT(OUT)}, +@code{POINTER} or @code{VALUE} attribute; furthermore, they shall be +either scalar or of assumed-size (@code{dimension(*)}). As @code{TYPE(*)}, +the @code{NO_ARG_CHECK} attribute requires an explicit interface. + +@itemize +@item @code{NO_ARG_CHECK} -- disable the type, kind and rank checking +@end itemize + + The attributes are specified using the syntax @code{!GCC$ ATTRIBUTES} @var{attribute-list} @code{::} @var{variable-list} |