aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-array.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2008-09-24 09:01:18 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2008-09-24 09:01:18 +0200
commita9b98c2c559e553035ca5115cd0cbb9f2c32dab0 (patch)
treec0506931aec66b48c8d93f6b98854e14ef6028c2 /gcc/fortran/trans-array.c
parent34971398456227555b7ca26065816d8316169ed7 (diff)
downloadgcc-a9b98c2c559e553035ca5115cd0cbb9f2c32dab0.zip
gcc-a9b98c2c559e553035ca5115cd0cbb9f2c32dab0.tar.gz
gcc-a9b98c2c559e553035ca5115cd0cbb9f2c32dab0.tar.bz2
re PR fortran/37626 (ICE for automatic deallocation of character result variable)
2008-09-24 Tobias Burnus <burnus@net-b.de> PR fortran/37626 * trans-array.c (gfc_trans_deferred_array): Don't auto-deallocate result variables. 2008-09-24 Tobias Burnus <burnus@net-b.de> PR fortran/37626 * gfortran.dg/allocatable_function_4.f90: New test. From-SVN: r140624
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r--gcc/fortran/trans-array.c2
1 files changed, 1 insertions, 1 deletions
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);