aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2010-05-16 00:03:09 +0200
committerJanus Weil <janus@gcc.gnu.org>2010-05-16 00:03:09 +0200
commit3a28464c5cb2306a925ce17d83cd5121aec83c21 (patch)
tree9cb27b789683b1330655a5c58c75ef45724a2ba9 /gcc/fortran
parent9b3cf76aa1ee3383c1371f992fbdb2991e6e11d4 (diff)
downloadgcc-3a28464c5cb2306a925ce17d83cd5121aec83c21.zip
gcc-3a28464c5cb2306a925ce17d83cd5121aec83c21.tar.gz
gcc-3a28464c5cb2306a925ce17d83cd5121aec83c21.tar.bz2
re PR fortran/44154 (initialization problem with allocatable scalars)
2010-05-15 Janus Weil <janus@gcc.gnu.org> PR fortran/44154 PR fortran/42647 * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of if branches. 2010-05-15 Janus Weil <janus@gcc.gnu.org> PR fortran/44154 PR fortran/42647 * gfortran.dg/allocatable_scalar_9.f90: New. From-SVN: r159445
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/trans-decl.c4
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index dd6d23f..2b2bc9b 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,12 @@
2010-05-15 Janus Weil <janus@gcc.gnu.org>
+ PR fortran/44154
+ PR fortran/42647
+ * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
+ if branches.
+
+2010-05-15 Janus Weil <janus@gcc.gnu.org>
+
PR fortran/43207
PR fortran/43969
* gfortran.h (gfc_class_null_initializer): New prototype.
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 4f0256a..56c88bc 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -3259,8 +3259,6 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, tree fnbody)
if (sym_has_alloc_comp && !seen_trans_deferred_array)
fnbody = gfc_trans_deferred_array (sym, fnbody);
}
- else if (sym_has_alloc_comp)
- fnbody = gfc_trans_deferred_array (sym, fnbody);
else if (sym->attr.allocatable
|| (sym->ts.type == BT_CLASS
&& sym->ts.u.derived->components->attr.allocatable))
@@ -3298,6 +3296,8 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, tree fnbody)
fnbody = gfc_finish_block (&block);
}
}
+ else if (sym_has_alloc_comp)
+ fnbody = gfc_trans_deferred_array (sym, fnbody);
else if (sym->ts.type == BT_CHARACTER)
{
gfc_get_backend_locus (&loc);