Rather simple fix. The first one was leaking expr->value.integer, the
second one sym->formal_ns.
Build, tested and committed as Rev. 190728.
Tobias
Index: gcc/fortran/ChangeLog
===================================================================
--- gcc/fortran/ChangeLog (Revision 190714)
+++ gcc/fortran/ChangeLog (Arbeitskopie)
@@ -1,6 +1,14 @@
2012-08-27 Tobias Burnus <bur...@net-b.de>
PR fortran/54384
+ * dependency.c (check_section_vs_section): Use gfc_free_expr
+ instead of free.
+ * trans-intrinsic.c (conv_generic_with_optional_char_arg): Use
+ gfc_free_symbol instead of free.
+
+2012-08-27 Tobias Burnus <bur...@net-b.de>
+
+ PR fortran/54384
* trans-expr.c (gfc_trans_arrayfunc_assign): Free se.ss
and loop.
Index: gcc/fortran/dependency.c
===================================================================
--- gcc/fortran/dependency.c (Revision 190714)
+++ gcc/fortran/dependency.c (Arbeitskopie)
@@ -1220,7 +1220,7 @@ check_section_vs_section (gfc_array_ref *l_ar, gfc
else
start_comparison = -2;
- free (one_expr);
+ gfc_free_expr (one_expr);
/* Determine LHS upper and lower bounds. */
if (l_dir == 1)
Index: gcc/fortran/trans-intrinsic.c
===================================================================
--- gcc/fortran/trans-intrinsic.c (Revision 190714)
+++ gcc/fortran/trans-intrinsic.c (Arbeitskopie)
@@ -4525,7 +4525,7 @@ conv_generic_with_optional_char_arg (gfc_se* se, g
sym = gfc_get_symbol_for_expr (expr);
gfc_conv_procedure_call (se, sym, expr->value.function.actual, expr,
append_args);
- free (sym);
+ gfc_free_symbol (sym);
}