aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/simplify.c4
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/execute/bounds.f903
4 files changed, 13 insertions, 3 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index e69b5de..fd67582 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -6,7 +6,10 @@
PR fortran/15140
* trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
-
+
+ PR fortran/13792
+ * simplify.c (gfc_simplify_bound): Copy the bound expression.
+
2004-07-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/15324
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index a90d05d..d67b5c6 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -1892,9 +1892,9 @@ gfc_simplify_bound (gfc_expr * array, gfc_expr * dim, int upper)
i = mpz_get_si (dim->value.integer);
if (upper)
- return as->upper[i-1];
+ return gfc_copy_expr (as->upper[i-1]);
else
- return as->lower[i-1];
+ return gfc_copy_expr (as->lower[i-1]);
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ccda3e5..8626dbb8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -9,6 +9,10 @@
PR fortran/15140
* gfortran.dg/pr15140.f90: New test.
+ PR fortran/13792
+ * gfortran.fortran-torture/execute/bounds.f90: Add check for
+ compile-time simplification.
+
2004-07-14 Mike Stump <mrs@apple.com>
* gcc.dg/20020426-2.c: Improve type safety wrt unsignedness.
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/bounds.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/bounds.f90
index b1ad840..894cd5d 100644
--- a/gcc/testsuite/gfortran.fortran-torture/execute/bounds.f90
+++ b/gcc/testsuite/gfortran.fortran-torture/execute/bounds.f90
@@ -5,6 +5,9 @@ program testbounds
integer, dimension(5) :: j
integer i
+ ! Check compile time simplification
+ if (lbound(j,1).ne.1 .or. ubound(j,1).ne.5) call abort ()
+
allocate (a(3:8, 6:7))
! With one parameter