diff options
Diffstat (limited to 'gcc/fortran/class.c')
-rw-r--r-- | gcc/fortran/class.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c index 2eae7f0..105511d 100644 --- a/gcc/fortran/class.c +++ b/gcc/fortran/class.c @@ -72,14 +72,18 @@ along with GCC; see the file COPYING3. If not see static void insert_component_ref (gfc_typespec *ts, gfc_ref **ref, const char * const name) { - gfc_symbol *type_sym; gfc_ref *new_ref; + int wcnt, ecnt; gcc_assert (ts->type == BT_DERIVED || ts->type == BT_CLASS); - type_sym = ts->u.derived; - gfc_find_component (type_sym, name, true, true, &new_ref); + gfc_find_component (ts->u.derived, name, true, true, &new_ref); + + gfc_get_errors (&wcnt, &ecnt); + if (ecnt > 0 && !new_ref) + return; gcc_assert (new_ref->u.c.component); + while (new_ref->next) new_ref = new_ref->next; new_ref->next = *ref; |