https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105543
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |rejects-valid CC| |anlauf at gcc dot gnu.org --- Comment #2 from anlauf at gcc dot gnu.org --- The following hack makes the code compile: diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc index 166b702cd9a..16813853b30 100644 --- a/gcc/fortran/resolve.cc +++ b/gcc/fortran/resolve.cc @@ -16102,6 +16116,10 @@ resolve_symbol (gfc_symbol *sym) specification_expr = saved_specification_expr; } + // Hackish fix-up for a CLASS result variable + if (sym->ts.type == BT_CLASS && sym->result && sym->result->attr.class_ok) + sym->attr.class_ok = sym->result->attr.class_ok; + if (sym->ts.type == BT_CLASS && sym->attr.class_ok && sym->ts.u.derived && CLASS_DATA (sym)) { Not sure yet where this should have been properly set in the first place...