[Patch, Fortran, OOP] PR 44541: wrong code for polymorphic variable with INTENT(OUT)/Alloc w/ MOLD

Janus Weil janus@gcc.gnu.org
Thu Sep 2 13:22:00 GMT 2010


2010/9/1 Janus Weil <janus@gcc.gnu.org>:
>> With the patch in http://gcc.gnu.org/ml/fortran/2010-09/msg00036/pr44541_v2.diff
>> the test in pr44465 (comments #0 and #2) segfault:
>
> Too bad, your message came just a minute too late :(
>
> The failure is fixed by using the correct check for the ALLOCATABLE attribute:
>
> Index: gcc/fortran/resolve.c
> ===================================================================
> --- gcc/fortran/resolve.c       (revision 163744)
> +++ gcc/fortran/resolve.c       (working copy)
> @@ -12165,7 +12165,7 @@ resolve_symbol (gfc_symbol *sym)
>
>   if (sym->ts.type == BT_CLASS && sym->ns == gfc_current_ns
>       && sym->attr.dummy && sym->attr.intent == INTENT_OUT
> -      && !sym->attr.pointer && !sym->attr.allocatable)
> +      && !CLASS_DATA (sym)->attr.pointer && !CLASS_DATA
> (sym)->attr.allocatable)
>     {
>       apply_default_init (sym);
>       gfc_set_sym_referenced (sym);

Committed as r163773 (with 'class_pointer' instead of 'pointer').

Cheers,
Janus



More information about the Fortran mailing list