get_var_descr get passed as argument both expr and expr->ts. Remove the type argument which can be retrieved from the other argument.
gcc/fortran/ChangeLog: * trans.cc (get_var_descr): Remove argument ts. Use var->ts instead. (gfc_add_finalizer_call): Update caller. --- gcc/fortran/trans.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gcc/fortran/trans.cc b/gcc/fortran/trans.cc index 99677d37da7..bcf3341fd4b 100644 --- a/gcc/fortran/trans.cc +++ b/gcc/fortran/trans.cc @@ -1140,11 +1140,10 @@ get_elem_size (gfc_se *se, gfc_expr *expr) /* Generate the data reference (array) descriptor corresponding to the - expression passed as argument in VAR. Use type in TS to pilot code - generation. */ + expression passed as argument in VAR. */ static void -get_var_descr (gfc_se *se, gfc_typespec *ts, gfc_expr *var) +get_var_descr (gfc_se *se, gfc_expr *var) { gfc_se tmp_se; symbol_attribute attr; @@ -1153,7 +1152,7 @@ get_var_descr (gfc_se *se, gfc_typespec *ts, gfc_expr *var) gfc_init_se (&tmp_se, NULL); - if (ts->type == BT_DERIVED) + if (var->ts.type == BT_DERIVED) { tmp_se.want_pointer = 1; if (var->rank) @@ -1381,7 +1380,7 @@ gfc_add_finalizer_call (stmtblock_t *block, gfc_expr *expr2) gfc_se desc_se; gfc_init_se (&desc_se, NULL); - get_var_descr (&desc_se, &expr->ts, expr); + get_var_descr (&desc_se, expr); gfc_add_block_to_block (&tmp_block, &desc_se.pre); tmp = build_call_expr_loc (input_location, final_se.expr, 3, -- 2.40.1