From a9b98c2c559e553035ca5115cd0cbb9f2c32dab0 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Wed, 24 Sep 2008 09:01:18 +0200 Subject: re PR fortran/37626 (ICE for automatic deallocation of character result variable) 2008-09-24 Tobias Burnus PR fortran/37626 * trans-array.c (gfc_trans_deferred_array): Don't auto-deallocate result variables. 2008-09-24 Tobias Burnus PR fortran/37626 * gfortran.dg/allocatable_function_4.f90: New test. From-SVN: r140624 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/trans-array.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'gcc/fortran') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 1210d39..3d99ae3 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2008-09-24 Tobias Burnus + + PR fortran/37626 + * trans-array.c (gfc_trans_deferred_array): Don't auto-deallocate + result variables. + 2008-09-23 Daniel Kraft PR fortran/37588 diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index 42b9967..c5aff65 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -5754,7 +5754,7 @@ gfc_trans_deferred_array (gfc_symbol * sym, tree body) gfc_add_expr_to_block (&fnblock, tmp); } - if (sym->attr.allocatable && !sym->attr.save) + if (sym->attr.allocatable && !sym->attr.save && !sym->attr.result) { tmp = gfc_trans_dealloc_allocated (sym->backend_decl); gfc_add_expr_to_block (&fnblock, tmp); -- cgit v1.1