PR fortran/78746 - invalid access after error recovery
authorHarald Anlauf <anlauf@gmx.de>
Wed, 6 Jan 2021 18:37:11 +0000 (19:37 +0100)
committerHarald Anlauf <anlauf@gmx.de>
Wed, 6 Jan 2021 18:37:11 +0000 (19:37 +0100)
The error recovery after an invalid reference to an undefined CLASS
during a TYPE declaration lead to an invalid access.  Add a check.

gcc/fortran/ChangeLog:

* resolve.c (resolve_component): Add check for valid CLASS
reference before trying to access CLASS data.

gcc/fortran/resolve.c

index fa6f756..1fac183 100644 (file)
@@ -14384,7 +14384,7 @@ resolve_component (gfc_component *c, gfc_symbol *sym)
   /* F2008, C448.  */
   if (c->ts.type == BT_CLASS)
     {
-      if (CLASS_DATA (c))
+      if (c->attr.class_ok && CLASS_DATA (c))
        {
          attr = &(CLASS_DATA (c)->attr);