]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cshift0.m4 (cshift0_'rtype_code`): Guard use of modulo.
authorMichael Matz <matz@suse.de>
Tue, 10 Apr 2012 15:39:22 +0000 (15:39 +0000)
committerMichael Matz <matz@gcc.gnu.org>
Tue, 10 Apr 2012 15:39:22 +0000 (15:39 +0000)
* m4/cshift0.m4 (cshift0_'rtype_code`): Guard use of modulo.

* generated/cshift0_c10.c: Regenerated.
* generated/cshift0_c16.c: Regenerated.
* generated/cshift0_c4.c: Regenerated.
* generated/cshift0_c8.c: Regenerated.
* generated/cshift0_i16.c: Regenerated.
* generated/cshift0_i1.c: Regenerated.
* generated/cshift0_i2.c: Regenerated.
* generated/cshift0_i4.c: Regenerated.
* generated/cshift0_i8.c: Regenerated.
* generated/cshift0_r10.c: Regenerated.
* generated/cshift0_r16.c: Regenerated.
* generated/cshift0_r4.c: Regenerated.
* generated/cshift0_r8.c: Regenerated.

From-SVN: r186283

15 files changed:
libgfortran/ChangeLog
libgfortran/generated/cshift0_c10.c
libgfortran/generated/cshift0_c16.c
libgfortran/generated/cshift0_c4.c
libgfortran/generated/cshift0_c8.c
libgfortran/generated/cshift0_i1.c
libgfortran/generated/cshift0_i16.c
libgfortran/generated/cshift0_i2.c
libgfortran/generated/cshift0_i4.c
libgfortran/generated/cshift0_i8.c
libgfortran/generated/cshift0_r10.c
libgfortran/generated/cshift0_r16.c
libgfortran/generated/cshift0_r4.c
libgfortran/generated/cshift0_r8.c
libgfortran/m4/cshift0.m4

index 93e9117d9569f8fac74a9811218bab8d7f6c26d8..15b9f94314bee0c2843d7a6397f8a9a11cf0900b 100644 (file)
@@ -1,3 +1,21 @@
+2012-04-10  Michael Matz  <matz@suse.de>
+
+       * m4/cshift0.m4 (cshift0_'rtype_code`): Guard use of modulo.
+
+       * generated/cshift0_c10.c: Regenerated.
+       * generated/cshift0_c16.c: Regenerated.
+       * generated/cshift0_c4.c: Regenerated.
+       * generated/cshift0_c8.c: Regenerated.
+       * generated/cshift0_i16.c: Regenerated.
+       * generated/cshift0_i1.c: Regenerated.
+       * generated/cshift0_i2.c: Regenerated.
+       * generated/cshift0_i4.c: Regenerated.
+       * generated/cshift0_i8.c: Regenerated.
+       * generated/cshift0_r10.c: Regenerated.
+       * generated/cshift0_r16.c: Regenerated.
+       * generated/cshift0_r4.c: Regenerated.
+       * generated/cshift0_r8.c: Regenerated.
+
 2012-04-04  Tristan Gingold  <gingold@adacore.com>
 
        * libgfortran.h: Include complex.h before math.h
index 43e173bf417d65600b88a6a5b80d76a00d92bd4e..ba27a9ed4aeaba8c9293206555899c2210f0325a 100644 (file)
@@ -97,9 +97,13 @@ cshift0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index f1f2539bc77190305e702bd45cdf93bb734219b3..0cdc6dc31e9467a098c9ba558c4ce4d2d579194c 100644 (file)
@@ -97,9 +97,13 @@ cshift0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index bf8554e1abefddbfdd7fb0284a52f55b0150a938..176137770467a1f3803c7ac24b973b8b7a3dafad 100644 (file)
@@ -97,9 +97,13 @@ cshift0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index e3fd5b66e22be2583934cca01280935fd1cf02c5..e4534885d1b57eedc74c9e5d4fc55bbe0a84121b 100644 (file)
@@ -97,9 +97,13 @@ cshift0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index f2315de95fa632a06f8c3343a4848d134046b220..76c30efbd587a3b9db3ed6a1692700ad94668db6 100644 (file)
@@ -97,9 +97,13 @@ cshift0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index 7566042c8fb6959ff469c119ba123abe780f9a73..b114303202131ab005fbd607af5d15a6163e7936 100644 (file)
@@ -97,9 +97,13 @@ cshift0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index 4a8154c4c55ceb5022110432fb638d45272eeee3..0f510f854c93b0c97709b1916846ebc1681e3ca9 100644 (file)
@@ -97,9 +97,13 @@ cshift0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index 7d25b7b0200d5c380f49959b120e71dd98be0615..d75b4d6b475ffc8bcc0cc82c13e010fb08a4b302 100644 (file)
@@ -97,9 +97,13 @@ cshift0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index 2f565caeedef757a78ed89f64e604d8bb05a7b9a..4154eb29ef3546de52aefea3100cd4959ecc26f5 100644 (file)
@@ -97,9 +97,13 @@ cshift0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index b7f21caffb24a6fba042f58417924f625984ec71..14be683212335570eefdf0c2bd88325127fe312c 100644 (file)
@@ -97,9 +97,13 @@ cshift0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index 320b705f3826b52adf591f1b461655ca6ee184b1..6d351f7bfdd10571cf0e414835ab48c276ba7258 100644 (file)
@@ -97,9 +97,13 @@ cshift0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index 93ccf529b6d26b447bf1bfcb39b9cfc631490475..939ba6e12cc4e407b5314813610e9f604cb0595f 100644 (file)
@@ -97,9 +97,13 @@ cshift0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index a3f747993c9c0f89262fc90e3b98db0fd0f4231d..73afb8a43e00525d241fed43bd4dcd745f15bb6b 100644 (file)
@@ -97,9 +97,13 @@ cshift0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {
index 567222b71467f9b9ebe76064a636d9ea8885025d..b1966aa5556b355856326722d46567c0a230134f 100644 (file)
@@ -98,9 +98,13 @@ cshift0_'rtype_code` ('rtype` *ret, const 'rtype` *array, ptrdiff_t shift,
   rptr = ret->base_addr;
   sptr = array->base_addr;
 
-  shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
-  if (shift < 0)
-    shift += len;
+  /* Avoid the costly modulo for trivially in-bound shifts.  */
+  if (shift < 0 || shift >= len)
+    {
+      shift = len == 0 ? 0 : shift % (ptrdiff_t)len;
+      if (shift < 0)
+       shift += len;
+    }
 
   while (rptr)
     {