aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2014-03-08 13:59:00 +0000
committerJanus Weil <janus@gcc.gnu.org>2014-03-08 13:59:00 +0000
commitf7b71137cfa5b28291e6dccc905d6f95f453fdcd (patch)
tree905d8499397ced57e114f3d98eb726f93da6d819
parent2f8f8774d27f08087c99dee70445285d52038912 (diff)
2014-03-08 Janus Weil <janus@gcc.gnu.org>
PR fortran/60450 * simplify.c (gfc_simplify_shape): Only clear shape if it was really created successfully. 2014-03-08 Janus Weil <janus@gcc.gnu.org> PR fortran/60450 * gfortran.dg/shape_8.f90: New. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcc-4_8-branch@208430 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/simplify.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/shape_8.f9010
4 files changed, 23 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 5509835e4ee..db89c5ff9b4 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2014-03-08 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/60450
+ * simplify.c (gfc_simplify_shape): Only clear shape if it was really
+ created successfully.
+
2014-03-06 Jakub Jelinek <jakub@redhat.com>
Backport from mainline
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index b03096b651b..7c21f226d99 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -5528,7 +5528,7 @@ gfc_simplify_shape (gfc_expr *source, gfc_expr *kind)
if (e == &gfc_bad_expr || range_check (e, "SHAPE") == &gfc_bad_expr)
{
gfc_free_expr (result);
- if (t)
+ if (t == SUCCESS)
gfc_clear_shape (shape, source->rank);
return &gfc_bad_expr;
}
@@ -5536,7 +5536,7 @@ gfc_simplify_shape (gfc_expr *source, gfc_expr *kind)
gfc_constructor_append_expr (&result->value.constructor, e, NULL);
}
- if (t)
+ if (t == SUCCESS)
gfc_clear_shape (shape, source->rank);
return result;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bf107a89615..f5f0edfca63 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-03-08 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/60450
+ * gfortran.dg/shape_8.f90: New.
+
2014-03-06 Jakub Jelinek <jakub@redhat.com>
Backport from mainline
diff --git a/gcc/testsuite/gfortran.dg/shape_8.f90 b/gcc/testsuite/gfortran.dg/shape_8.f90
new file mode 100644
index 00000000000..edeb5fd8e93
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/shape_8.f90
@@ -0,0 +1,10 @@
+! { dg-do compile }
+!
+! PR 60450: [4.7/4.8 Regression] ICE with SHAPE intrinsic
+!
+! Contributed by Dave Allured <dave.allured@noaa.gov>
+
+ real, allocatable :: x(:,:)
+ allocate (x(3,2), source=99.)
+ print *, shape (x / 10.0)
+end