[Committed] PR fortran/81849 -- Host associated vaiables in RESULT spec

Steve Kargl sgk@troutmask.apl.washington.edu
Tue Jan 15 20:21:00 GMT 2019


I've committed the following patch as obvious.

2019-01-15  Steven G. Kargl  <kargl@gcc.gnu.org>

	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  <kargl@gcc.gnu.org>

	PR fortran/81849
	* gfortran.dg/pr81849.f90: New test.


Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c	(revision 267945)
+++ gcc/fortran/resolve.c	(working copy)
@@ -15345,7 +15345,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;
Index: gcc/testsuite/gfortran.dg/pr81849.f90
===================================================================
--- gcc/testsuite/gfortran.dg/pr81849.f90	(nonexistent)
+++ gcc/testsuite/gfortran.dg/pr81849.f90	(working copy)
@@ -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

-- 
Steve



More information about the Fortran mailing list