diff options
Diffstat (limited to 'gcc/fortran/module.c')
-rw-r--r-- | gcc/fortran/module.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 09f9452..eace654 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -3137,6 +3137,13 @@ write_symbol (int n, gfc_symbol * sym) if (sym->attr.flavor == FL_UNKNOWN || sym->attr.flavor == FL_LABEL) gfc_internal_error ("write_symbol(): bad module symbol '%s'", sym->name); + + if (sym->attr.flavor == FL_VARIABLE && sym->ts.type == BT_UNKNOWN) + /* TODO: this is a workaround for some of the problems in PR15481, + and fixes the dependent bug PR13372. In an ideal frontend, this + should never happen. */ + return; + mio_integer (&n); mio_internal_string (sym->name); @@ -3260,6 +3267,12 @@ write_symtree (gfc_symtree * st) && !sym->attr.subroutine && !sym->attr.function)) return; + if (sym->attr.flavor == FL_VARIABLE && sym->ts.type == BT_UNKNOWN) + /* TODO: this is a workaround for some of the problems in PR15481, + and fixes the dependent bug PR13372. In an ideal frontend, this + should never happen. */ + return; + if (check_unique_name (st->name)) return; |