https://gcc.gnu.org/g:bdcea7007be2e04d92de1f275762a08afb23cc33
commit bdcea7007be2e04d92de1f275762a08afb23cc33 Author: Mikael Morin <[email protected]> Date: Sat Sep 26 18:34:27 2026 +0200 Sauvegarde modifs Diff: --- gcc/fortran/interface.cc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gcc/fortran/interface.cc b/gcc/fortran/interface.cc index 9dae6685be2a..ba05c08c62c9 100644 --- a/gcc/fortran/interface.cc +++ b/gcc/fortran/interface.cc @@ -2838,11 +2838,19 @@ compare_parameter (gfc_symbol *formal, gfc_expr *actual, && (actual->symtree->n.sym->attr.asynchronous || actual->symtree->n.sym->attr.volatile_) && (formal->attr.asynchronous || formal->attr.volatile_) - && actual->rank && formal->as - && !gfc_is_simply_contiguous (actual, true, false) - && ((formal->as->type != AS_ASSUMED_SHAPE - && formal->as->type != AS_ASSUMED_RANK && !formal->attr.pointer) - || formal->attr.contiguous)) + && actual->rank + && ((formal->ts.type == BT_CLASS + && formal->ts.u.derived->attr.is_class + && CLASS_DATA (formal)->as + && !(CLASS_DATA (formal)->as->type == AS_ASSUMED_SHAPE + || CLASS_DATA (formal)->as->type == AS_ASSUMED_RANK) + && !CLASS_DATA (formal)->attr.class_pointer) + || (formal->as + && !(formal->as->type == AS_ASSUMED_SHAPE + || formal->as->type == AS_ASSUMED_RANK) + && !formal->attr.pointer) + || formal->attr.contiguous) + && !gfc_is_simply_contiguous (actual, true, false)) { if (where) gfc_error ("Dummy argument %qs has to be a pointer, assumed-shape or "
