diff options
author | Janus Weil <janus@gcc.gnu.org> | 2014-03-08 13:59:00 +0000 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2014-03-08 13:59:00 +0000 |
commit | f7b71137cfa5b28291e6dccc905d6f95f453fdcd (patch) | |
tree | 905d8499397ced57e114f3d98eb726f93da6d819 | |
parent | 2f8f8774d27f08087c99dee70445285d52038912 (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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/simplify.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/shape_8.f90 | 10 |
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 |