http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43366

--- Comment #4 from janus at gcc dot gnu.org 2011-02-03 20:56:10 UTC ---
Here is a simple patch for getting rid of the error message:


Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c       (revision 169520)
+++ gcc/fortran/resolve.c       (working copy)
@@ -8879,15 +8879,13 @@ resolve_ordinary_assign (gfc_code *code, gfc_names
        gfc_current_ns->proc_name->attr.implicit_pure = 0;
     }

-  /* F03:7.4.1.2.  */
-  /* FIXME: Valid in Fortran 2008, unless the LHS is both polymorphic
-     and coindexed; cf. F2008, 7.2.1.2 and PR 43366.  */
-  if (lhs->ts.type == BT_CLASS)
-    {
-      gfc_error ("Variable must not be polymorphic in assignment at %L",
-                &lhs->where);
-      return false;
-    }
+  /* F03:7.4.1.2, F08:7.2.1.2.  */
+  /* Valid in Fortran 2008, unless the LHS is both polymorphic and coindexed. 
*/
+  if (lhs->ts.type == BT_CLASS
+      && gfc_notify_std (GFC_STD_F2008,
+                        "Fortran 2008: Variable must not be polymorphic in "
+                        "assignment at %L", &lhs->where) == FAILURE)
+    return false;

   /* F2008, Section 7.2.1.2.  */
   if (gfc_is_coindexed (lhs) && gfc_has_ultimate_allocatable (lhs))

Reply via email to