re PR fortran/39879 (double free or corruption abort with gfortran)

2009-04-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/39879
	* trans_expr.c (gfc_conv_procedure_call): Deep copy a derived
	type parentheses argument if it is a variable with allocatable
	components.

2009-04-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/39879
	* gfortran.dg/alloc_comp_assign_10.f90: New test.

From-SVN: r146872
This commit is contained in:
Paul Thomas 2009-04-28 05:29:44 +00:00
parent 7d44f53181
commit 297c371732

View File

@ -1119,8 +1119,7 @@ gfc_conv_string_tmp (gfc_se * se, tree type, tree len)
gfc_add_modify (&se->pre, var, tmp);
/* Free the temporary afterwards. */
tmp = gfc_call_free (var, true, &gfc_current_locus,
ALLOCTYPE_TEMPORARY);
tmp = gfc_call_free (convert (pvoid_type_node, var));
gfc_add_expr_to_block (&se->post, tmp);
}