aboutsummaryrefslogtreecommitdiff
path: root/gcc/f/expr.c
diff options
context:
space:
mode:
authorCraig Burley <burley@gnu.org>1998-03-27 19:30:11 -0500
committerJeff Law <law@gcc.gnu.org>1998-03-27 17:30:11 -0700
commit14a378ec2a3f473b1c18a16d752b5832996e3663 (patch)
treee6a690c76eb192fe3d4b2bc56f0f029fa3f4a88e /gcc/f/expr.c
parentadb15a1a687d505db87a22a54daaebef32d83e4c (diff)
downloadgcc-14a378ec2a3f473b1c18a16d752b5832996e3663.zip
gcc-14a378ec2a3f473b1c18a16d752b5832996e3663.tar.gz
gcc-14a378ec2a3f473b1c18a16d752b5832996e3663.tar.bz2
expr.c (ffeexpr_sym_impdoitem_): Don't blindly reset symbol info after calling ffesymbol_error, to avoid crash.
* 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
Diffstat (limited to 'gcc/f/expr.c')
-rw-r--r--gcc/f/expr.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/gcc/f/expr.c b/gcc/f/expr.c
index 0459301..9ab9755 100644
--- a/gcc/f/expr.c
+++ b/gcc/f/expr.c
@@ -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. */
+ }
}
}