[PATCH] Fix handling of arguments in statement functions
Steve Kargl
sgk@troutmask.apl.washington.edu
Sat Feb 10 17:47:00 GMT 2018
All,
The attach patch address 3 issues with statement functions.
First, a dummy argument in a statement function declarations
acquires only its type and type parameters from the containing
scope. All attributes should be ignores. The first fix for
PR fortran/84276 disables a check for the INTENT(INOUT,OUT)
attribute. The second fix for PR fortran/54223 disables a
check for missing OPTIONAL arguments as an argument to a
statement function cannot be optional.
In reviewing the bugs for statement functions, I came across
PR fortran/35229. There is a long audit trail, but I have come
to agree with comment #3 from FX. I have taken his suggested
patch for updating the error message. Note, this issue is
10 years old, and AFAIK, no one has sent a duplicate PR or an
email to fortran@gnu complaining about the current error
message. The new error message simply gives a better locus.
OK to commit?
Release Manager, I can hold the patch until after 8.0/1 is
released, but it is highly unlikely that this patch will
cause a regression and it does fix two ICE.
2018-02-10 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/54223
PR fortran/84276
* interface.c (compare_actual_formal): Add in_statement_function
bool parameter. Skip check of INTENT attribute for statement
functions. Arguments to a statement function cannot be optional,
issue error for missing argument.
(gfc_procedure_use, gfc_ppc_use, gfc_arglist_matches_symbol): Use
in_statement_function.
2018-02-10 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/54223
PR fortran/84276
* gfortran.dg/statement_function_1.f90: New test.
* gfortran.dg/statement_function_3.f90: New test.
PR fortran/35299
* gfortran.dg/statement_function_3.f: New test.
--
Steve
-------------- next part --------------
A non-text attachment was scrubbed...
Name: st_fcn.diff
Type: text/x-diff
Size: 5821 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20180210/97b92f76/attachment.bin>
More information about the Fortran
mailing list