aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2013-01-30 07:47:14 +0000
committerTobias Burnus <burnus@net-b.de>2013-01-30 07:47:14 +0000
commit6b926c201a096ba1b88e0ebd61874fa3253a8cc0 (patch)
tree9221879e32048487de0fedefe5de36057420f0d6 /gcc/fortran
parentab8826bc1881328a77d2610aaf4976f1f5fddb97 (diff)
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@195570 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-decl.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 6a42ba45c32..bef16a52624 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+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.
+
2013-01-29 Janus Weil <janus@gcc.gnu.org>
Mikael Morin <mikael@gcc.gnu.org>
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 1d0919dd4c1..77324408eb7 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)
{