https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128093

Paul Thomas <pault at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2026-10-23

--- Comment #2 from Paul Thomas <pault at gcc dot gnu.org> ---
(In reply to Iain Sandoe from comment #1)
> diff --git a/gcc/fortran/trans-stmt.cc b/gcc/fortran/trans-stmt.cc
> index 65bf2ec9d93..e627bdc644c 100644
> --- a/gcc/fortran/trans-stmt.cc
> +++ b/gcc/fortran/trans-stmt.cc
> @@ -7829,10 +7829,10 @@ gfc_trans_allocate (gfc_code * code,
> gfc_omp_namelist *omp_allocate)
>             init_expr->param_list = NULL;
>             gfc_replace_expr (init_expr, var);
>             /* Deallocate temporary PDT's allocatable components.  */
> -           if (var->symtree->n.sym->ts.u.derived->attr.alloc_comp)
> +           if (init_expr->symtree->n.sym->ts.u.derived->attr.alloc_comp)
>               {
> -               tree var_decl = gfc_get_symbol_decl (var->symtree->n.sym);
> -               tmp = gfc_deallocate_pdt_comp 
> (var->symtree->n.sym->ts.u.derived,
> +               tree var_decl = gfc_get_symbol_decl 
> (init_expr->symtree->n.sym);
> +               tmp = gfc_deallocate_pdt_comp 
> (init_expr->symtree->n.sym->ts.u.derived,
>                                               var_decl, 0);
>                 gfc_add_expr_to_block (&block, tmp);
>               }

Ian,

Thanks for identifying the problem and providing the fix. I will get on to it
this afternoon.

Regards

Paul

Reply via email to