From 9b22c1b69ad455177317dd945a5f0d0c5e43d58c Mon Sep 17 00:00:00 2001 From: "Steven G. Kargl" Date: Sun, 22 Nov 2015 19:41:20 +0000 Subject: [PATCH] re PR fortran/68486 (187.facerec in SPEC CPU 2000 failed to build) 2015-11-22 Steven G. Kargl PR fortran/68486 * simplify.c (gfc_simplify_cshift): Add EXPR_OP to mix. 2015-11-22 Steven G. Kargl PR fortran/68486 * gfortran.dg/simplify_cshift_2.f90: New test. From-SVN: r230726 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/simplify.c | 1 + gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/simplify_cshift_2.f90 | 10 ++++++++++ 4 files changed, 21 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/simplify_cshift_2.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b61e7c04b2c..0c812017b7d 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2015-11-22 Steven G. Kargl + + PR fortran/68486 + * simplify.c (gfc_simplify_cshift): Add EXPR_OP to mix. + 2015-11-22 James Norris Steven G. Kargl diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c index 665ea82ee23..b9c40391895 100644 --- a/gcc/fortran/simplify.c +++ b/gcc/fortran/simplify.c @@ -1811,6 +1811,7 @@ gfc_simplify_cshift (gfc_expr *array, gfc_expr *shift, gfc_expr *dim) { case EXPR_VARIABLE: case EXPR_ARRAY: + case EXPR_OP: a = gfc_copy_expr (array); gfc_simplify_expr (a, 0); if (!is_constant_array_expr (a)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f3e96187957..0e0b74f6c30 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-11-22 Steven G. Kargl + + PR fortran/68486 + * gfortran.dg/simplify_cshift_2.f90: New test. + 2015-11-22 James Norris Cesar Philippidis diff --git a/gcc/testsuite/gfortran.dg/simplify_cshift_2.f90 b/gcc/testsuite/gfortran.dg/simplify_cshift_2.f90 new file mode 100644 index 00000000000..04a61557afe --- /dev/null +++ b/gcc/testsuite/gfortran.dg/simplify_cshift_2.f90 @@ -0,0 +1,10 @@ +! { dg-do compile } +subroutine foo(u, n, fl) + implicit none + integer n + real u(5, n), fl(5,n), wl(5,n) + real c + c = 1 + wl = u + fl = cshift(c * wl, 1, 2) +end subroutine foo