diff options
Diffstat (limited to 'gcc/fortran/class.c')
-rw-r--r-- | gcc/fortran/class.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c index 67f19f7..85da3cb 100644 --- a/gcc/fortran/class.c +++ b/gcc/fortran/class.c @@ -183,6 +183,16 @@ gfc_build_class_symbol (gfc_typespec *ts, symbol_attribute *attr, gfc_symbol *fclass; gfc_symbol *vtab; gfc_component *c; + + if (attr->class_ok) + /* Class container has already been built. */ + return SUCCESS; + + attr->class_ok = attr->dummy || attr->pointer || attr->allocatable; + + if (!attr->class_ok) + /* We can not build the class container yet. */ + return SUCCESS; if (*as) { |