From: Steven G. Kargl Date: Tue, 15 Jan 2019 20:53:13 +0000 (+0000) Subject: re PR fortran/81849 (Size of automatic array argument specified by host-associated... X-Git-Tag: releases/gcc-7.5.0~658 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70d6a121a26af35fc065ea45c5558c491cb041fd;p=thirdparty%2Fgcc.git re PR fortran/81849 (Size of automatic array argument specified by host-associated variable.) 2019-01-15 Steven G. Kargl PR fortran/81849 * resolve.c (resolve_symbol): Host associated varaibles can appear in the specification statement of a RESULT array. 2019-01-15 Steven G. Kargl PR fortran/81849 * gfortran.dg/pr81849.f90: New test. From-SVN: r267952 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 1a00f9411f8a..31610781d431 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2019-01-15 Steven G. Kargl + + PR fortran/81849 + * resolve.c (resolve_symbol): Host associated varaibles can appear + in the specification statement of a RESULT array. + 2019-01-11 Steven G. Kargl PR fortran/35031 diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 345f790dcd07..31808703d4d8 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -14859,7 +14859,7 @@ resolve_symbol (gfc_symbol *sym) /* Set the formal_arg_flag so that check_conflict will not throw an error for host associated variables in the specification expression for an array_valued function. */ - if (sym->attr.function && sym->as) + if ((sym->attr.function || sym->attr.result) && sym->as) formal_arg_flag = true; saved_specification_expr = specification_expr; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 814a1e9d88ef..c38575673f56 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-01-15 Steven G. Kargl + + PR fortran/81849 + * gfortran.dg/pr81849.f90: New test. + 2019-01-13 Jerry DeLisle PR libfortran/88776 diff --git a/gcc/testsuite/gfortran.dg/pr81849.f90 b/gcc/testsuite/gfortran.dg/pr81849.f90 new file mode 100644 index 000000000000..e2f2d6ffbed4 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr81849.f90 @@ -0,0 +1,16 @@ +! { dg-do run } +! PR fortran/81849 +program p + implicit none + integer :: n=3 + if (any(g() /= f())) stop 1 + contains + function g() + real g(n) + g = 7 + end function g + function f() result(r) + real r(n) + r = 7 + end function f +end program