+2018-01-02 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ Backport from 7-branch
+ PR fortran/83650
+ * simplify.c (gfc_simplify_cshift): Correct contition for
+ negative shifts.
+
2017-11-13 Paul Thomas <pault@gcc.gnu.org>
Backport from trunk
mpz_clear (size);
/* Adjust shft to deal with right or left shifts. */
- shft = shft < 0 ? 1 - shft : shft;
+ shft = shft % sz;
+ if (shft < 0)
+ shft += sz;
/* Special case: Shift to the original order! */
if (sz == 0 || shft % sz == 0)
+2018-01-02 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ Backport from 7-branch
+ PR fortran/83650
+ * gfortran.dg/simplify_cshift_1.f90: Correct condition.
+
2017-12-14 Peter Bergner <bergner@vnet.ibm.com>
Backport from mainline
v = cshift(c, 2)
if (any(b /= v)) call abort
- ! Special cases shift = 0, size(a), 1-size(a)
+ ! Special cases shift = 0, size(a), size(a)
b = cshift([1, 2, 3, 4, 5], 0)
if (any(b /= a)) call abort
b = cshift([1, 2, 3, 4, 5], size(a))
if (any(b /= a)) call abort
- b = cshift([1, 2, 3, 4, 5], 1-size(a))
+ b = cshift([1, 2, 3, 4, 5], -size(a))
if (any(b /= a)) call abort
! simplification of array arg.