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

--- Comment #1 from Iain Sandoe <iains at gcc dot gnu.org> ---
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);
                }

Reply via email to