From: Francois-Xavier Coudert Date: Mon, 12 Feb 2018 18:26:44 +0000 (+0000) Subject: re PR fortran/35299 (scope of variables in statement function do not acquire rank... X-Git-Tag: releases/gcc-6.5.0~530 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=893698225b714ee0a9bdf28084fa1f7b0d45aa4e;p=thirdparty%2Fgcc.git re PR fortran/35299 (scope of variables in statement function do not acquire rank from host) 2018-02-12 Francois-Xavier Coudert PR fortran/35299 ChangeLog for r257566 * gfortran.dg/statement_function_3.f: New test. 2018-02-12 Francois-Xavier Coudert PR fortran/35299 ChangeLog for r257566 * resolve.c (resolve_formal_arglist): Update error message. From-SVN: r257597 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 8d0e84a05359..66ebb310265d 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2018-02-12 Francois-Xavier Coudert + + PR fortran/35299 + ChangeLog for r257566 + * resolve.c (resolve_formal_arglist): Update error message. + 2018-02-12 Steven G. Kargl PR fortran/54223 diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index ef938009f755..84600bd959cd 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -506,8 +506,11 @@ resolve_formal_arglist (gfc_symbol *proc) { if (sym->as != NULL) { - gfc_error ("Argument %qs of statement function at %L must " - "be scalar", sym->name, &sym->declared_at); + /* F03:C1263 (R1238) The function-name and each dummy-arg-name + shall be specified, explicitly or implicitly, to be scalar. */ + gfc_error ("Argument '%s' of statement function '%s' at %L " + "must be scalar", sym->name, proc->name, + &proc->declared_at); continue; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c07d8797dace..cb53750fd61b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2018-02-12 Francois-Xavier Coudert + + PR fortran/35299 + ChangeLog for r257566 + * gfortran.dg/statement_function_3.f: New test. + 2018-02-12 Steven G. Kargl PR fortran/54223 diff --git a/gcc/testsuite/gfortran.dg/statement_function_3.f b/gcc/testsuite/gfortran.dg/statement_function_3.f new file mode 100644 index 000000000000..dcfb3e2b9dc1 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/statement_function_3.f @@ -0,0 +1,15 @@ +! { dg-do compile } +! PR fortran/35299 + subroutine phtod(e,n,i,h) + dimension e(n) + hstar(e,b)=b**.4*((1.25*fun(-e/40)+.18)) ! { dg-error "must be scalar" } + a = 1. + h = hstar(e(i-1), a) + end + + function fun(a) + real a(*) + fun = 42 + end +! { dg-prune-output " Obsolescent feature" } +