diff mbox

PR fortran/77380

Message ID 20160825221435.GB96344@troutmask.apl.washington.edu
State New
Headers show

Commit Message

Steve Kargl Aug. 25, 2016, 10:14 p.m. UTC
I plan to commit the following patch on Saturday if
no one objects in the next 40 or so hours.

2016-08-25  Steven G. Kargl <kargl@gcc.gnu.org>

	PR fortran/77380
	* dependency.c (gfc_check_dependency): Do not assert with
	-fcoarray=lib.

2016-08-25  Steven G. Kargl <kargl@gcc.gnu.org>

	PR fortran/77380
	* gfortran.dg/pr77380.f90: New test.
diff mbox

Patch

Index: gcc/fortran/dependency.c
===================================================================
--- gcc/fortran/dependency.c	(revision 239762)
+++ gcc/fortran/dependency.c	(working copy)
@@ -1252,6 +1252,12 @@  gfc_check_dependency (gfc_expr *expr1, g
   gfc_constructor *c;
   int n;
 
+  /* -fcoarray=lib can end up here with expr1->expr_type set to EXPR_FUNCTION
+     and a reference to _F.caf_get, so skip the assert.  */
+  if (expr1->expr_type == EXPR_FUNCTION
+      && strcmp (expr1->value.function.name, "_F.caf_get") == 0)
+    return 0;
+
   gcc_assert (expr1->expr_type == EXPR_VARIABLE);
 
   switch (expr2->expr_type)
Index: gcc/testsuite/gfortran.dg/pr77380.f90
===================================================================
--- gcc/testsuite/gfortran.dg/pr77380.f90	(nonexistent)
+++ gcc/testsuite/gfortran.dg/pr77380.f90	(working copy)
@@ -0,0 +1,6 @@ 
+! { dg-do compile }
+! { dg-options "-fcoarray=lib -O2" }
+program p
+   integer :: z(2)[*] = 1
+   z(:)[1] = z(:)[*]       ! { dg-error "must be a scalar at" }
+end