expr.c (ffeexpr_sym_impdoitem_): Don't blindly reset symbol info after calling ffesym...
authorCraig Burley <burley@gnu.org>
Sat, 28 Mar 1998 00:30:11 +0000 (19:30 -0500)
committerJeff Law <law@gcc.gnu.org>
Sat, 28 Mar 1998 00:30:11 +0000 (17:30 -0700)
        * expr.c (ffeexpr_sym_impdoitem_): Don't blindly
        reset symbol info after calling ffesymbol_error,
        to avoid crash.
Another patch from Craig.

From-SVN: r18863

gcc/f/ChangeLog
gcc/f/expr.c

index 4a87a2a..74041bf 100644 (file)
@@ -1,3 +1,9 @@
+Mon Mar 16 21:20:35 1998  Craig Burley  <burley@gnu.org>
+
+       * expr.c (ffeexpr_sym_impdoitem_): Don't blindly
+       reset symbol info after calling ffesymbol_error,
+       to avoid crash.
+
 Mon Mar 16 15:38:50 1998  Craig Burley  <burley@gnu.org>
 
        * Version 0.5.22 released.
index 0459301..9ab9755 100644 (file)
@@ -16467,19 +16467,22 @@ ffeexpr_sym_impdoitem_ (ffesymbol sp, ffelexToken t)
                                           version. */
          if (!ffeimplic_establish_symbol (sp))
            ffesymbol_error (sp, t);
-         ffesymbol_set_info (sp,
-                             ffeinfo_new (ffesymbol_basictype (sp),
-                                          ffesymbol_kindtype (sp),
-                                          ffesymbol_rank (sp),
-                                          kind,
-                                          where,
-                                          ffesymbol_size (sp)));
-         ffesymbol_set_attrs (sp, na);
-         ffesymbol_set_state (sp, ns);
-         ffesymbol_resolve_intrin (sp);
-         if (!ffesymbol_state_is_specable (ns))
-           sp = ffecom_sym_learned (sp);
-         ffesymbol_signal_unreported (sp);     /* For debugging purposes. */
+         else
+           {
+             ffesymbol_set_info (sp,
+                                 ffeinfo_new (ffesymbol_basictype (sp),
+                                              ffesymbol_kindtype (sp),
+                                              ffesymbol_rank (sp),
+                                              kind,
+                                              where,
+                                              ffesymbol_size (sp)));
+             ffesymbol_set_attrs (sp, na);
+             ffesymbol_set_state (sp, ns);
+             ffesymbol_resolve_intrin (sp);
+             if (!ffesymbol_state_is_specable (ns))
+               sp = ffecom_sym_learned (sp);
+             ffesymbol_signal_unreported (sp); /* For debugging purposes. */
+           }
        }
     }