diff options
author | pault <pault@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-16 12:11:53 +0000 |
---|---|---|
committer | pault <pault@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-16 12:11:53 +0000 |
commit | 9642570cf2c52335a7d87e1152d22357d25e9007 (patch) | |
tree | baf9c59bdffc7add7fec67efdf7041d6091cc291 /gcc/fortran/trans-array.c | |
parent | c71c6bca585da7e7f53bca98cad16f09bec12a10 (diff) | |
download | gcc-9642570cf2c52335a7d87e1152d22357d25e9007.tar.gz |
2008-11-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38119
* trans-array.c (gfc_trans_create_temp_array): Set the
loop->from to zero and the renormalisation of loop->to for all
dimensions.
2008-11-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38119
* gfortran.dg/array_temporaries_3.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141915 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r-- | gcc/fortran/trans-array.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index 9cede5cc84f..9c48c421465 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -644,18 +644,12 @@ gfc_trans_create_temp_array (stmtblock_t * pre, stmtblock_t * post, for (dim = 0; dim < info->dimen; dim++) { n = loop->order[dim]; - if (n < loop->temp_dim) - gcc_assert (integer_zerop (loop->from[n])); - else - { - /* Callee allocated arrays may not have a known bound yet. */ - if (loop->to[n]) - loop->to[n] = - gfc_evaluate_now (fold_build2 (MINUS_EXPR, - gfc_array_index_type, loop->to[n], - loop->from[n]), pre); - loop->from[n] = gfc_index_zero_node; - } + /* Callee allocated arrays may not have a known bound yet. */ + if (loop->to[n]) + loop->to[n] = gfc_evaluate_now (fold_build2 (MINUS_EXPR, + gfc_array_index_type, + loop->to[n], loop->from[n]), pre); + loop->from[n] = gfc_index_zero_node; info->delta[dim] = gfc_index_zero_node; info->start[dim] = gfc_index_zero_node; |