diff options
author | Tobias Burnus <burnus@net-b.de> | 2011-01-23 23:26:27 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2011-01-23 23:26:27 +0100 |
commit | 25cbe58f23ff2fa8522d54c892c7f39af6cca373 (patch) | |
tree | a1c1fbba5c3dd098f55bed92f350b8f7952f4791 /gcc/fortran | |
parent | ff3d9d08a811c2b1074010a72ede155231252eb0 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-decl.c | 7 |
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) { |