aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2011-01-23 23:26:27 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2011-01-23 23:26:27 +0100
commit25cbe58f23ff2fa8522d54c892c7f39af6cca373 (patch)
treea1c1fbba5c3dd098f55bed92f350b8f7952f4791 /gcc/fortran
parentff3d9d08a811c2b1074010a72ede155231252eb0 (diff)
downloadgcc-25cbe58f23ff2fa8522d54c892c7f39af6cca373.zip
gcc-25cbe58f23ff2fa8522d54c892c7f39af6cca373.tar.gz
gcc-25cbe58f23ff2fa8522d54c892c7f39af6cca373.tar.bz2
re PR fortran/47421 (Wrong-code: Value of scalar ALLOCATABLE CHARACTER(len=n) dummy is mangled)
2011-01-23 Tobias Burnus <burnus@net-b.de> PR fortran/47421 * trans-decl.c (gfc_trans_deferred_vars): Do not nullify scalar allocatable dummy arguments. 2011-01-23 Tobias Burnus <burnus@net-b.de> PR fortran/47421 * gfortran.dg/allocatable_scalar_12.f90: New. From-SVN: r169145
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-decl.c7
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index e918ef5..489caca 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2011-01-23 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/47421
+ * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
+ scalar allocatable dummy arguments.
+
2011-01-22 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/38536
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 254db76..5e3afbe 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -3304,9 +3304,10 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block)
if (sym_has_alloc_comp && !seen_trans_deferred_array)
gfc_trans_deferred_array (sym, block);
}
- else if (sym->attr.allocatable
- || (sym->ts.type == BT_CLASS
- && CLASS_DATA (sym)->attr.allocatable))
+ else if (!sym->attr.dummy
+ && (sym->attr.allocatable
+ || (sym->ts.type == BT_CLASS
+ && CLASS_DATA (sym)->attr.allocatable)))
{
if (!sym->attr.save)
{