diff options
author | Tobias Burnus <burnus@net-b.de> | 2013-01-30 08:47:14 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2013-01-30 08:47:14 +0100 |
commit | e18547a18cb5116bc940976cba250e0de045640b (patch) | |
tree | 9221879e32048487de0fedefe5de36057420f0d6 /gcc/fortran/trans-decl.c | |
parent | 777133fefb9704c957884216e44bf7ba25ca2fae (diff) | |
download | gcc-e18547a18cb5116bc940976cba250e0de045640b.zip gcc-e18547a18cb5116bc940976cba250e0de045640b.tar.gz gcc-e18547a18cb5116bc940976cba250e0de045640b.tar.bz2 |
re PR fortran/56138 (Deferred-length character RESULT: ICE in gfc_add_modify_loc)
2012-01-30 Tobias Burnus <burnus@net-b.de>
PR fortran/56138
* trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
results for functions without extra result variable.
2012-01-30 Tobias Burnus <burnus@net-b.de>
PR fortran/56138
* gfortran.dg/allocatable_function_6.f90: New.
From-SVN: r195570
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r-- | gcc/fortran/trans-decl.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 1d0919d..7732440 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -3775,7 +3775,7 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block) null_pointer_node)); } - if ((sym->attr.dummy ||sym->attr.result) + if ((sym->attr.dummy || sym->attr.result || sym->result == sym) && sym->ts.type == BT_CHARACTER && sym->ts.deferred) { |