aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/iresolve.c
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2008-07-07 19:45:55 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2008-07-07 19:45:55 +0000
commit2769621878cf8b7559e702707f3e2d840ac7968e (patch)
tree9f92fb2fe16307444d21c0a7e5e85af8d0429702 /gcc/fortran/iresolve.c
parent9ad13e91692eec408fb030c65f947a4065afc7df (diff)
downloadgcc-2769621878cf8b7559e702707f3e2d840ac7968e.zip
gcc-2769621878cf8b7559e702707f3e2d840ac7968e.tar.gz
gcc-2769621878cf8b7559e702707f3e2d840ac7968e.tar.bz2
re PR fortran/36670 (Missing compile-time checks on sum and product)
2008-07-07 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/36670 * iresolve.c (gfc_resolve_product): Set shape of return value from array. (gfc_resolve_sum): Likewise. 2008-07-07 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/36670 * gfortran.dg/product_sum_bounds_1.f90: New test case. From-SVN: r137595
Diffstat (limited to 'gcc/fortran/iresolve.c')
-rw-r--r--gcc/fortran/iresolve.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c
index 64a24e8..2c80414 100644
--- a/gcc/fortran/iresolve.c
+++ b/gcc/fortran/iresolve.c
@@ -1788,6 +1788,7 @@ gfc_resolve_product (gfc_expr *f, gfc_expr *array, gfc_expr *dim,
if (dim != NULL)
{
f->rank = array->rank - 1;
+ f->shape = gfc_copy_shape_excluding (array->shape, array->rank, dim);
gfc_resolve_dim_arg (dim);
}
@@ -2271,6 +2272,7 @@ gfc_resolve_sum (gfc_expr *f, gfc_expr *array, gfc_expr *dim, gfc_expr *mask)
if (dim != NULL)
{
f->rank = array->rank - 1;
+ f->shape = gfc_copy_shape_excluding (array->shape, array->rank, dim);
gfc_resolve_dim_arg (dim);
}