aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-array.c
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2008-11-16 12:11:53 +0000
committerPaul Thomas <pault@gcc.gnu.org>2008-11-16 12:11:53 +0000
commit2208990515245daa0c65cd35851510ecd2d290cb (patch)
treebaf9c59bdffc7add7fec67efdf7041d6091cc291 /gcc/fortran/trans-array.c
parentb800fd64b54018965f6953121b58673fcca08687 (diff)
downloadgcc-2208990515245daa0c65cd35851510ecd2d290cb.zip
gcc-2208990515245daa0c65cd35851510ecd2d290cb.tar.gz
gcc-2208990515245daa0c65cd35851510ecd2d290cb.tar.bz2
re PR fortran/38119 (character ICE in gfc_trans_create_temp_array)
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. From-SVN: r141915
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r--gcc/fortran/trans-array.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index 9cede5c..9c48c42 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;