[gcc(refs/users/mikael/heads/refactor_descriptor_v08)] Régénération fichiers générés

Mikael Morin mikael@gcc.gnu.org
Tue Sep 9 19:46:20 GMT 2025


https://gcc.gnu.org/g:9a37e9fcace9b48c14924cbcc52b911e1ce88f3c

commit 9a37e9fcace9b48c14924cbcc52b911e1ce88f3c
Author: Mikael Morin <mikael@gcc.gnu.org>
Date:   Tue Sep 9 19:07:24 2025 +0200

    Régénération fichiers générés

Diff:
---
 libgfortran/generated/cshift1_16.c     |  2 +-
 libgfortran/generated/cshift1_16_c10.c | 14 +++++++-------
 libgfortran/generated/cshift1_16_c16.c | 14 +++++++-------
 libgfortran/generated/cshift1_16_c17.c | 14 +++++++-------
 libgfortran/generated/cshift1_16_c4.c  | 14 +++++++-------
 libgfortran/generated/cshift1_16_c8.c  | 14 +++++++-------
 libgfortran/generated/cshift1_16_i1.c  | 14 +++++++-------
 libgfortran/generated/cshift1_16_i16.c | 14 +++++++-------
 libgfortran/generated/cshift1_16_i2.c  | 14 +++++++-------
 libgfortran/generated/cshift1_16_i4.c  | 14 +++++++-------
 libgfortran/generated/cshift1_16_i8.c  | 14 +++++++-------
 libgfortran/generated/cshift1_16_r10.c | 14 +++++++-------
 libgfortran/generated/cshift1_16_r16.c | 14 +++++++-------
 libgfortran/generated/cshift1_16_r17.c | 14 +++++++-------
 libgfortran/generated/cshift1_16_r4.c  | 14 +++++++-------
 libgfortran/generated/cshift1_16_r8.c  | 14 +++++++-------
 libgfortran/generated/cshift1_4.c      |  2 +-
 libgfortran/generated/cshift1_4_c10.c  | 14 +++++++-------
 libgfortran/generated/cshift1_4_c16.c  | 14 +++++++-------
 libgfortran/generated/cshift1_4_c17.c  | 14 +++++++-------
 libgfortran/generated/cshift1_4_c4.c   | 14 +++++++-------
 libgfortran/generated/cshift1_4_c8.c   | 14 +++++++-------
 libgfortran/generated/cshift1_4_i1.c   | 14 +++++++-------
 libgfortran/generated/cshift1_4_i16.c  | 14 +++++++-------
 libgfortran/generated/cshift1_4_i2.c   | 14 +++++++-------
 libgfortran/generated/cshift1_4_i4.c   | 14 +++++++-------
 libgfortran/generated/cshift1_4_i8.c   | 14 +++++++-------
 libgfortran/generated/cshift1_4_r10.c  | 14 +++++++-------
 libgfortran/generated/cshift1_4_r16.c  | 14 +++++++-------
 libgfortran/generated/cshift1_4_r17.c  | 14 +++++++-------
 libgfortran/generated/cshift1_4_r4.c   | 14 +++++++-------
 libgfortran/generated/cshift1_4_r8.c   | 14 +++++++-------
 libgfortran/generated/cshift1_8.c      |  2 +-
 libgfortran/generated/cshift1_8_c10.c  | 14 +++++++-------
 libgfortran/generated/cshift1_8_c16.c  | 14 +++++++-------
 libgfortran/generated/cshift1_8_c17.c  | 14 +++++++-------
 libgfortran/generated/cshift1_8_c4.c   | 14 +++++++-------
 libgfortran/generated/cshift1_8_c8.c   | 14 +++++++-------
 libgfortran/generated/cshift1_8_i1.c   | 14 +++++++-------
 libgfortran/generated/cshift1_8_i16.c  | 14 +++++++-------
 libgfortran/generated/cshift1_8_i2.c   | 14 +++++++-------
 libgfortran/generated/cshift1_8_i4.c   | 14 +++++++-------
 libgfortran/generated/cshift1_8_i8.c   | 14 +++++++-------
 libgfortran/generated/cshift1_8_r10.c  | 14 +++++++-------
 libgfortran/generated/cshift1_8_r16.c  | 14 +++++++-------
 libgfortran/generated/cshift1_8_r17.c  | 14 +++++++-------
 libgfortran/generated/cshift1_8_r4.c   | 14 +++++++-------
 libgfortran/generated/cshift1_8_r8.c   | 14 +++++++-------
 48 files changed, 318 insertions(+), 318 deletions(-)

diff --git a/libgfortran/generated/cshift1_16.c b/libgfortran/generated/cshift1_16.c
index 3eb1b293634e..80e1a9ccb5a0 100644
--- a/libgfortran/generated/cshift1_16.c
+++ b/libgfortran/generated/cshift1_16.c
@@ -238,7 +238,7 @@ cshift1 (gfc_array_char * const restrict ret,
   if (rstride[0] == 0)
     rstride[0] = size;
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
diff --git a/libgfortran/generated/cshift1_16_c10.c b/libgfortran/generated/cshift1_16_c10.c
index 5b3686de3b87..82d97fda8317 100644
--- a/libgfortran/generated/cshift1_16_c10.c
+++ b/libgfortran/generated/cshift1_16_c10.c
@@ -85,10 +85,10 @@ cshift1_16_c10 (gfc_array_c10 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_10);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_10);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_c10 (gfc_array_c10 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_10);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_10);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_c10 (gfc_array_c10 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_10 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_10) && roffset == sizeof (GFC_COMPLEX_10))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_10);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_10);
diff --git a/libgfortran/generated/cshift1_16_c16.c b/libgfortran/generated/cshift1_16_c16.c
index ccc0e9a2d537..2f4c6b47d882 100644
--- a/libgfortran/generated/cshift1_16_c16.c
+++ b/libgfortran/generated/cshift1_16_c16.c
@@ -85,10 +85,10 @@ cshift1_16_c16 (gfc_array_c16 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_16);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_16);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_c16 (gfc_array_c16 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_16);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_16);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_c16 (gfc_array_c16 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_16 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_16) && roffset == sizeof (GFC_COMPLEX_16))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_16);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_16);
diff --git a/libgfortran/generated/cshift1_16_c17.c b/libgfortran/generated/cshift1_16_c17.c
index 59ede01915b1..154021e50ee1 100644
--- a/libgfortran/generated/cshift1_16_c17.c
+++ b/libgfortran/generated/cshift1_16_c17.c
@@ -85,10 +85,10 @@ cshift1_16_c17 (gfc_array_c17 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_17);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_17);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_c17 (gfc_array_c17 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_17);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_17);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_c17 (gfc_array_c17 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_17 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_17) && roffset == sizeof (GFC_COMPLEX_17))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_17);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_17);
diff --git a/libgfortran/generated/cshift1_16_c4.c b/libgfortran/generated/cshift1_16_c4.c
index 6fe5528b825f..a14bf888bc04 100644
--- a/libgfortran/generated/cshift1_16_c4.c
+++ b/libgfortran/generated/cshift1_16_c4.c
@@ -85,10 +85,10 @@ cshift1_16_c4 (gfc_array_c4 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_4);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_4);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_c4 (gfc_array_c4 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_4);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_4);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_c4 (gfc_array_c4 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_4 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_4) && roffset == sizeof (GFC_COMPLEX_4))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_4);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_4);
diff --git a/libgfortran/generated/cshift1_16_c8.c b/libgfortran/generated/cshift1_16_c8.c
index f76e3a7e7540..6ae7f93ec3a4 100644
--- a/libgfortran/generated/cshift1_16_c8.c
+++ b/libgfortran/generated/cshift1_16_c8.c
@@ -85,10 +85,10 @@ cshift1_16_c8 (gfc_array_c8 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_8);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_8);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_c8 (gfc_array_c8 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_8);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_8);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_c8 (gfc_array_c8 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_8 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_8) && roffset == sizeof (GFC_COMPLEX_8))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_8);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_8);
diff --git a/libgfortran/generated/cshift1_16_i1.c b/libgfortran/generated/cshift1_16_i1.c
index 82b09069f56f..f1027f85028d 100644
--- a/libgfortran/generated/cshift1_16_i1.c
+++ b/libgfortran/generated/cshift1_16_i1.c
@@ -85,10 +85,10 @@ cshift1_16_i1 (gfc_array_i1 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_1);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_1);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_i1 (gfc_array_i1 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_1);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_1);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_i1 (gfc_array_i1 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_1 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_1) && roffset == sizeof (GFC_INTEGER_1))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_1);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_1);
diff --git a/libgfortran/generated/cshift1_16_i16.c b/libgfortran/generated/cshift1_16_i16.c
index f7e74e8781fd..29b24d5ad8af 100644
--- a/libgfortran/generated/cshift1_16_i16.c
+++ b/libgfortran/generated/cshift1_16_i16.c
@@ -85,10 +85,10 @@ cshift1_16_i16 (gfc_array_i16 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_16);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_16);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_i16 (gfc_array_i16 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_16);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_16);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_i16 (gfc_array_i16 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_16 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_16) && roffset == sizeof (GFC_INTEGER_16))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_16);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_16);
diff --git a/libgfortran/generated/cshift1_16_i2.c b/libgfortran/generated/cshift1_16_i2.c
index 26d4439e4f9b..27f38b6428b1 100644
--- a/libgfortran/generated/cshift1_16_i2.c
+++ b/libgfortran/generated/cshift1_16_i2.c
@@ -85,10 +85,10 @@ cshift1_16_i2 (gfc_array_i2 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_2);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_2);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_i2 (gfc_array_i2 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_2);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_2);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_i2 (gfc_array_i2 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_2 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_2) && roffset == sizeof (GFC_INTEGER_2))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_2);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_2);
diff --git a/libgfortran/generated/cshift1_16_i4.c b/libgfortran/generated/cshift1_16_i4.c
index 46b8a0282a29..4c1026a5bdec 100644
--- a/libgfortran/generated/cshift1_16_i4.c
+++ b/libgfortran/generated/cshift1_16_i4.c
@@ -85,10 +85,10 @@ cshift1_16_i4 (gfc_array_i4 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_4);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_4);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_i4 (gfc_array_i4 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_4);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_4);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_i4 (gfc_array_i4 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_4 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_4) && roffset == sizeof (GFC_INTEGER_4))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_4);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_4);
diff --git a/libgfortran/generated/cshift1_16_i8.c b/libgfortran/generated/cshift1_16_i8.c
index 73e44a4c9a7f..e887c3e6d64a 100644
--- a/libgfortran/generated/cshift1_16_i8.c
+++ b/libgfortran/generated/cshift1_16_i8.c
@@ -85,10 +85,10 @@ cshift1_16_i8 (gfc_array_i8 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_8);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_8);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_i8 (gfc_array_i8 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_8);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_8);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_i8 (gfc_array_i8 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_8 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_8) && roffset == sizeof (GFC_INTEGER_8))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_8);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_8);
diff --git a/libgfortran/generated/cshift1_16_r10.c b/libgfortran/generated/cshift1_16_r10.c
index a992b61d42ef..ba4671d2522c 100644
--- a/libgfortran/generated/cshift1_16_r10.c
+++ b/libgfortran/generated/cshift1_16_r10.c
@@ -85,10 +85,10 @@ cshift1_16_r10 (gfc_array_r10 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_10);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_10);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_r10 (gfc_array_r10 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_10);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_10);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_r10 (gfc_array_r10 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_10 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_10) && roffset == sizeof (GFC_REAL_10))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_10);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_10);
diff --git a/libgfortran/generated/cshift1_16_r16.c b/libgfortran/generated/cshift1_16_r16.c
index fc37cae2e8e6..b37066485799 100644
--- a/libgfortran/generated/cshift1_16_r16.c
+++ b/libgfortran/generated/cshift1_16_r16.c
@@ -85,10 +85,10 @@ cshift1_16_r16 (gfc_array_r16 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_16);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_16);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_r16 (gfc_array_r16 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_16);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_16);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_r16 (gfc_array_r16 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_16 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_16) && roffset == sizeof (GFC_REAL_16))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_16);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_16);
diff --git a/libgfortran/generated/cshift1_16_r17.c b/libgfortran/generated/cshift1_16_r17.c
index c5dc66ace360..0503312a6fac 100644
--- a/libgfortran/generated/cshift1_16_r17.c
+++ b/libgfortran/generated/cshift1_16_r17.c
@@ -85,10 +85,10 @@ cshift1_16_r17 (gfc_array_r17 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_17);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_17);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_r17 (gfc_array_r17 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_17);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_17);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_r17 (gfc_array_r17 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_17 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_17) && roffset == sizeof (GFC_REAL_17))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_17);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_17);
diff --git a/libgfortran/generated/cshift1_16_r4.c b/libgfortran/generated/cshift1_16_r4.c
index a896a87438bc..8fa510861ca9 100644
--- a/libgfortran/generated/cshift1_16_r4.c
+++ b/libgfortran/generated/cshift1_16_r4.c
@@ -85,10 +85,10 @@ cshift1_16_r4 (gfc_array_r4 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_4);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_4);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_r4 (gfc_array_r4 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_4);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_4);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_r4 (gfc_array_r4 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_4 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_4) && roffset == sizeof (GFC_REAL_4))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_4);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_4);
diff --git a/libgfortran/generated/cshift1_16_r8.c b/libgfortran/generated/cshift1_16_r8.c
index 0a59852d600b..d6382f0925eb 100644
--- a/libgfortran/generated/cshift1_16_r8.c
+++ b/libgfortran/generated/cshift1_16_r8.c
@@ -85,10 +85,10 @@ cshift1_16_r8 (gfc_array_r8 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_8);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_8);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_16_r8 (gfc_array_r8 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_8);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_8);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_16);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_16_r8 (gfc_array_r8 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_8 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_8) && roffset == sizeof (GFC_REAL_8))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_8);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_8);
diff --git a/libgfortran/generated/cshift1_4.c b/libgfortran/generated/cshift1_4.c
index dfeeadf0a311..72bea1b83913 100644
--- a/libgfortran/generated/cshift1_4.c
+++ b/libgfortran/generated/cshift1_4.c
@@ -238,7 +238,7 @@ cshift1 (gfc_array_char * const restrict ret,
   if (rstride[0] == 0)
     rstride[0] = size;
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
diff --git a/libgfortran/generated/cshift1_4_c10.c b/libgfortran/generated/cshift1_4_c10.c
index 22ae10becc40..c941af142198 100644
--- a/libgfortran/generated/cshift1_4_c10.c
+++ b/libgfortran/generated/cshift1_4_c10.c
@@ -85,10 +85,10 @@ cshift1_4_c10 (gfc_array_c10 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_10);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_10);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_c10 (gfc_array_c10 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_10);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_10);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_c10 (gfc_array_c10 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_10 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_10) && roffset == sizeof (GFC_COMPLEX_10))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_10);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_10);
diff --git a/libgfortran/generated/cshift1_4_c16.c b/libgfortran/generated/cshift1_4_c16.c
index 975df80916aa..498d632b4ee4 100644
--- a/libgfortran/generated/cshift1_4_c16.c
+++ b/libgfortran/generated/cshift1_4_c16.c
@@ -85,10 +85,10 @@ cshift1_4_c16 (gfc_array_c16 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_16);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_16);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_c16 (gfc_array_c16 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_16);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_16);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_c16 (gfc_array_c16 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_16 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_16) && roffset == sizeof (GFC_COMPLEX_16))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_16);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_16);
diff --git a/libgfortran/generated/cshift1_4_c17.c b/libgfortran/generated/cshift1_4_c17.c
index f124267ab019..ad132772e73e 100644
--- a/libgfortran/generated/cshift1_4_c17.c
+++ b/libgfortran/generated/cshift1_4_c17.c
@@ -85,10 +85,10 @@ cshift1_4_c17 (gfc_array_c17 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_17);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_17);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_c17 (gfc_array_c17 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_17);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_17);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_c17 (gfc_array_c17 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_17 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_17) && roffset == sizeof (GFC_COMPLEX_17))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_17);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_17);
diff --git a/libgfortran/generated/cshift1_4_c4.c b/libgfortran/generated/cshift1_4_c4.c
index 5aea89e3817b..595d6607288b 100644
--- a/libgfortran/generated/cshift1_4_c4.c
+++ b/libgfortran/generated/cshift1_4_c4.c
@@ -85,10 +85,10 @@ cshift1_4_c4 (gfc_array_c4 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_4);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_4);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_c4 (gfc_array_c4 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_4);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_4);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_c4 (gfc_array_c4 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_4 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_4) && roffset == sizeof (GFC_COMPLEX_4))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_4);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_4);
diff --git a/libgfortran/generated/cshift1_4_c8.c b/libgfortran/generated/cshift1_4_c8.c
index 1f32612782bb..09b33f219a77 100644
--- a/libgfortran/generated/cshift1_4_c8.c
+++ b/libgfortran/generated/cshift1_4_c8.c
@@ -85,10 +85,10 @@ cshift1_4_c8 (gfc_array_c8 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_8);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_8);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_c8 (gfc_array_c8 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_8);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_8);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_c8 (gfc_array_c8 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_8 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_8) && roffset == sizeof (GFC_COMPLEX_8))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_8);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_8);
diff --git a/libgfortran/generated/cshift1_4_i1.c b/libgfortran/generated/cshift1_4_i1.c
index 009ef8b1f08c..cbba837c1bf0 100644
--- a/libgfortran/generated/cshift1_4_i1.c
+++ b/libgfortran/generated/cshift1_4_i1.c
@@ -85,10 +85,10 @@ cshift1_4_i1 (gfc_array_i1 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_1);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_1);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_i1 (gfc_array_i1 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_1);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_1);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_i1 (gfc_array_i1 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_1 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_1) && roffset == sizeof (GFC_INTEGER_1))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_1);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_1);
diff --git a/libgfortran/generated/cshift1_4_i16.c b/libgfortran/generated/cshift1_4_i16.c
index 10b79eede61b..fd0ab4fd2bb7 100644
--- a/libgfortran/generated/cshift1_4_i16.c
+++ b/libgfortran/generated/cshift1_4_i16.c
@@ -85,10 +85,10 @@ cshift1_4_i16 (gfc_array_i16 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_16);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_16);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_i16 (gfc_array_i16 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_16);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_16);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_i16 (gfc_array_i16 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_16 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_16) && roffset == sizeof (GFC_INTEGER_16))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_16);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_16);
diff --git a/libgfortran/generated/cshift1_4_i2.c b/libgfortran/generated/cshift1_4_i2.c
index 9060f8a55145..16e31cb72b70 100644
--- a/libgfortran/generated/cshift1_4_i2.c
+++ b/libgfortran/generated/cshift1_4_i2.c
@@ -85,10 +85,10 @@ cshift1_4_i2 (gfc_array_i2 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_2);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_2);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_i2 (gfc_array_i2 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_2);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_2);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_i2 (gfc_array_i2 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_2 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_2) && roffset == sizeof (GFC_INTEGER_2))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_2);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_2);
diff --git a/libgfortran/generated/cshift1_4_i4.c b/libgfortran/generated/cshift1_4_i4.c
index b8c888e5999d..9808c8c3e2fd 100644
--- a/libgfortran/generated/cshift1_4_i4.c
+++ b/libgfortran/generated/cshift1_4_i4.c
@@ -85,10 +85,10 @@ cshift1_4_i4 (gfc_array_i4 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_4);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_4);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_i4 (gfc_array_i4 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_4);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_4);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_i4 (gfc_array_i4 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_4 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_4) && roffset == sizeof (GFC_INTEGER_4))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_4);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_4);
diff --git a/libgfortran/generated/cshift1_4_i8.c b/libgfortran/generated/cshift1_4_i8.c
index f6f1d05b2d58..8d88732320ce 100644
--- a/libgfortran/generated/cshift1_4_i8.c
+++ b/libgfortran/generated/cshift1_4_i8.c
@@ -85,10 +85,10 @@ cshift1_4_i8 (gfc_array_i8 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_8);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_8);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_i8 (gfc_array_i8 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_8);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_8);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_i8 (gfc_array_i8 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_8 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_8) && roffset == sizeof (GFC_INTEGER_8))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_8);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_8);
diff --git a/libgfortran/generated/cshift1_4_r10.c b/libgfortran/generated/cshift1_4_r10.c
index ee2bec51a590..f389be10b00d 100644
--- a/libgfortran/generated/cshift1_4_r10.c
+++ b/libgfortran/generated/cshift1_4_r10.c
@@ -85,10 +85,10 @@ cshift1_4_r10 (gfc_array_r10 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_10);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_10);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_r10 (gfc_array_r10 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_10);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_10);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_r10 (gfc_array_r10 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_10 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_10) && roffset == sizeof (GFC_REAL_10))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_10);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_10);
diff --git a/libgfortran/generated/cshift1_4_r16.c b/libgfortran/generated/cshift1_4_r16.c
index beda6ed093e9..2fa14a47e590 100644
--- a/libgfortran/generated/cshift1_4_r16.c
+++ b/libgfortran/generated/cshift1_4_r16.c
@@ -85,10 +85,10 @@ cshift1_4_r16 (gfc_array_r16 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_16);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_16);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_r16 (gfc_array_r16 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_16);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_16);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_r16 (gfc_array_r16 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_16 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_16) && roffset == sizeof (GFC_REAL_16))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_16);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_16);
diff --git a/libgfortran/generated/cshift1_4_r17.c b/libgfortran/generated/cshift1_4_r17.c
index b885a47add2b..1458611a7f47 100644
--- a/libgfortran/generated/cshift1_4_r17.c
+++ b/libgfortran/generated/cshift1_4_r17.c
@@ -85,10 +85,10 @@ cshift1_4_r17 (gfc_array_r17 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_17);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_17);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_r17 (gfc_array_r17 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_17);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_17);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_r17 (gfc_array_r17 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_17 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_17) && roffset == sizeof (GFC_REAL_17))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_17);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_17);
diff --git a/libgfortran/generated/cshift1_4_r4.c b/libgfortran/generated/cshift1_4_r4.c
index b48faa33ef7f..6a1e307e5a79 100644
--- a/libgfortran/generated/cshift1_4_r4.c
+++ b/libgfortran/generated/cshift1_4_r4.c
@@ -85,10 +85,10 @@ cshift1_4_r4 (gfc_array_r4 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_4);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_4);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_r4 (gfc_array_r4 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_4);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_4);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_r4 (gfc_array_r4 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_4 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_4) && roffset == sizeof (GFC_REAL_4))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_4);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_4);
diff --git a/libgfortran/generated/cshift1_4_r8.c b/libgfortran/generated/cshift1_4_r8.c
index 787ccde41da3..b8e7fcf8df64 100644
--- a/libgfortran/generated/cshift1_4_r8.c
+++ b/libgfortran/generated/cshift1_4_r8.c
@@ -85,10 +85,10 @@ cshift1_4_r8 (gfc_array_r8 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_8);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_8);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_4_r8 (gfc_array_r8 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_8);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_8);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_4);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_4_r8 (gfc_array_r8 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_8 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_8) && roffset == sizeof (GFC_REAL_8))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_8);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_8);
diff --git a/libgfortran/generated/cshift1_8.c b/libgfortran/generated/cshift1_8.c
index e1fff40d339a..c9e682afe42e 100644
--- a/libgfortran/generated/cshift1_8.c
+++ b/libgfortran/generated/cshift1_8.c
@@ -238,7 +238,7 @@ cshift1 (gfc_array_char * const restrict ret,
   if (rstride[0] == 0)
     rstride[0] = size;
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
diff --git a/libgfortran/generated/cshift1_8_c10.c b/libgfortran/generated/cshift1_8_c10.c
index f412261bd94d..618d2c54b3f2 100644
--- a/libgfortran/generated/cshift1_8_c10.c
+++ b/libgfortran/generated/cshift1_8_c10.c
@@ -85,10 +85,10 @@ cshift1_8_c10 (gfc_array_c10 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_10);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_10);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_c10 (gfc_array_c10 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_10);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_10);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_c10 (gfc_array_c10 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_10 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_10) && roffset == sizeof (GFC_COMPLEX_10))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_10);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_10);
diff --git a/libgfortran/generated/cshift1_8_c16.c b/libgfortran/generated/cshift1_8_c16.c
index 241676f56d73..66b9848960d8 100644
--- a/libgfortran/generated/cshift1_8_c16.c
+++ b/libgfortran/generated/cshift1_8_c16.c
@@ -85,10 +85,10 @@ cshift1_8_c16 (gfc_array_c16 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_16);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_16);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_c16 (gfc_array_c16 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_16);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_16);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_c16 (gfc_array_c16 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_16 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_16) && roffset == sizeof (GFC_COMPLEX_16))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_16);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_16);
diff --git a/libgfortran/generated/cshift1_8_c17.c b/libgfortran/generated/cshift1_8_c17.c
index b519f0a64073..21d3709427c9 100644
--- a/libgfortran/generated/cshift1_8_c17.c
+++ b/libgfortran/generated/cshift1_8_c17.c
@@ -85,10 +85,10 @@ cshift1_8_c17 (gfc_array_c17 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_17);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_17);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_c17 (gfc_array_c17 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_17);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_17);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_c17 (gfc_array_c17 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_17 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_17) && roffset == sizeof (GFC_COMPLEX_17))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_17);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_17);
diff --git a/libgfortran/generated/cshift1_8_c4.c b/libgfortran/generated/cshift1_8_c4.c
index 71c9dcb55d5e..0088bb7e966f 100644
--- a/libgfortran/generated/cshift1_8_c4.c
+++ b/libgfortran/generated/cshift1_8_c4.c
@@ -85,10 +85,10 @@ cshift1_8_c4 (gfc_array_c4 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_4);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_4);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_c4 (gfc_array_c4 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_4);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_4);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_c4 (gfc_array_c4 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_4 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_4) && roffset == sizeof (GFC_COMPLEX_4))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_4);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_4);
diff --git a/libgfortran/generated/cshift1_8_c8.c b/libgfortran/generated/cshift1_8_c8.c
index 97653c41b6e9..01a135da4f8f 100644
--- a/libgfortran/generated/cshift1_8_c8.c
+++ b/libgfortran/generated/cshift1_8_c8.c
@@ -85,10 +85,10 @@ cshift1_8_c8 (gfc_array_c8 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_COMPLEX_8);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_COMPLEX_8);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_c8 (gfc_array_c8 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_COMPLEX_8);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_COMPLEX_8);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_c8 (gfc_array_c8 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_COMPLEX_8 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_COMPLEX_8) && roffset == sizeof (GFC_COMPLEX_8))
 	{
 	  size_t len1 = sh * sizeof (GFC_COMPLEX_8);
 	  size_t len2 = (len - sh) * sizeof (GFC_COMPLEX_8);
diff --git a/libgfortran/generated/cshift1_8_i1.c b/libgfortran/generated/cshift1_8_i1.c
index ed453af87533..4e306300402c 100644
--- a/libgfortran/generated/cshift1_8_i1.c
+++ b/libgfortran/generated/cshift1_8_i1.c
@@ -85,10 +85,10 @@ cshift1_8_i1 (gfc_array_i1 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_1);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_1);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_i1 (gfc_array_i1 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_1);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_1);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_i1 (gfc_array_i1 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_1 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_1) && roffset == sizeof (GFC_INTEGER_1))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_1);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_1);
diff --git a/libgfortran/generated/cshift1_8_i16.c b/libgfortran/generated/cshift1_8_i16.c
index 9475ad598d98..7dbd34b2b182 100644
--- a/libgfortran/generated/cshift1_8_i16.c
+++ b/libgfortran/generated/cshift1_8_i16.c
@@ -85,10 +85,10 @@ cshift1_8_i16 (gfc_array_i16 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_16);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_16);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_i16 (gfc_array_i16 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_16);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_16);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_i16 (gfc_array_i16 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_16 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_16) && roffset == sizeof (GFC_INTEGER_16))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_16);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_16);
diff --git a/libgfortran/generated/cshift1_8_i2.c b/libgfortran/generated/cshift1_8_i2.c
index c15adf82332f..80eb2f58ecdb 100644
--- a/libgfortran/generated/cshift1_8_i2.c
+++ b/libgfortran/generated/cshift1_8_i2.c
@@ -85,10 +85,10 @@ cshift1_8_i2 (gfc_array_i2 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_2);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_2);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_i2 (gfc_array_i2 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_2);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_2);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_i2 (gfc_array_i2 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_2 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_2) && roffset == sizeof (GFC_INTEGER_2))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_2);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_2);
diff --git a/libgfortran/generated/cshift1_8_i4.c b/libgfortran/generated/cshift1_8_i4.c
index 1e7b81eb1308..48c4954abc56 100644
--- a/libgfortran/generated/cshift1_8_i4.c
+++ b/libgfortran/generated/cshift1_8_i4.c
@@ -85,10 +85,10 @@ cshift1_8_i4 (gfc_array_i4 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_4);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_4);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_i4 (gfc_array_i4 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_4);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_4);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_i4 (gfc_array_i4 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_4 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_4) && roffset == sizeof (GFC_INTEGER_4))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_4);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_4);
diff --git a/libgfortran/generated/cshift1_8_i8.c b/libgfortran/generated/cshift1_8_i8.c
index 6332e0695b87..16605311c5d4 100644
--- a/libgfortran/generated/cshift1_8_i8.c
+++ b/libgfortran/generated/cshift1_8_i8.c
@@ -85,10 +85,10 @@ cshift1_8_i8 (gfc_array_i8 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_INTEGER_8);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_INTEGER_8);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_i8 (gfc_array_i8 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_INTEGER_8);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_INTEGER_8);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_i8 (gfc_array_i8 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_INTEGER_8 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_INTEGER_8) && roffset == sizeof (GFC_INTEGER_8))
 	{
 	  size_t len1 = sh * sizeof (GFC_INTEGER_8);
 	  size_t len2 = (len - sh) * sizeof (GFC_INTEGER_8);
diff --git a/libgfortran/generated/cshift1_8_r10.c b/libgfortran/generated/cshift1_8_r10.c
index 1cd6703cd542..ae92bbf2a505 100644
--- a/libgfortran/generated/cshift1_8_r10.c
+++ b/libgfortran/generated/cshift1_8_r10.c
@@ -85,10 +85,10 @@ cshift1_8_r10 (gfc_array_r10 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_10);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_10);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_r10 (gfc_array_r10 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_10);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_10);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_r10 (gfc_array_r10 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_10 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_10) && roffset == sizeof (GFC_REAL_10))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_10);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_10);
diff --git a/libgfortran/generated/cshift1_8_r16.c b/libgfortran/generated/cshift1_8_r16.c
index 245387e8eb2c..9bd82ecd220d 100644
--- a/libgfortran/generated/cshift1_8_r16.c
+++ b/libgfortran/generated/cshift1_8_r16.c
@@ -85,10 +85,10 @@ cshift1_8_r16 (gfc_array_r16 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_16);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_16);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_r16 (gfc_array_r16 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_16);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_16);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_r16 (gfc_array_r16 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_16 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_16) && roffset == sizeof (GFC_REAL_16))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_16);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_16);
diff --git a/libgfortran/generated/cshift1_8_r17.c b/libgfortran/generated/cshift1_8_r17.c
index c494c90c2376..8014b4491d19 100644
--- a/libgfortran/generated/cshift1_8_r17.c
+++ b/libgfortran/generated/cshift1_8_r17.c
@@ -85,10 +85,10 @@ cshift1_8_r17 (gfc_array_r17 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_17);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_17);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_r17 (gfc_array_r17 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_17);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_17);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_r17 (gfc_array_r17 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_17 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_17) && roffset == sizeof (GFC_REAL_17))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_17);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_17);
diff --git a/libgfortran/generated/cshift1_8_r4.c b/libgfortran/generated/cshift1_8_r4.c
index f47cb41d0ba9..b62263c7f227 100644
--- a/libgfortran/generated/cshift1_8_r4.c
+++ b/libgfortran/generated/cshift1_8_r4.c
@@ -85,10 +85,10 @@ cshift1_8_r4 (gfc_array_r4 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_4);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_4);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_r4 (gfc_array_r4 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_4);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_4);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_r4 (gfc_array_r4 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_4 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_4) && roffset == sizeof (GFC_REAL_4))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_4);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_4);
diff --git a/libgfortran/generated/cshift1_8_r8.c b/libgfortran/generated/cshift1_8_r8.c
index 81afe3b1b41c..99d176fc8032 100644
--- a/libgfortran/generated/cshift1_8_r8.c
+++ b/libgfortran/generated/cshift1_8_r8.c
@@ -85,10 +85,10 @@ cshift1_8_r8 (gfc_array_r8 * const restrict ret,
         {
           roffset = GFC_DESCRIPTOR_STRIDE_BYTES(ret,dim);
           if (roffset == 0)
-            roffset = 1;
+            roffset = sizeof (GFC_REAL_8);
           soffset = GFC_DESCRIPTOR_STRIDE_BYTES(array,dim);
           if (soffset == 0)
-            soffset = 1;
+            soffset = sizeof (GFC_REAL_8);
           len = GFC_DESCRIPTOR_EXTENT(array,dim);
         }
       else
@@ -105,11 +105,11 @@ cshift1_8_r8 (gfc_array_r8 * const restrict ret,
         }
     }
   if (sstride[0] == 0)
-    sstride[0] = GFC_DESCRIPTOR_SIZE(array);
+    sstride[0] = sizeof (GFC_REAL_8);
   if (rstride[0] == 0)
-    rstride[0] = GFC_DESCRIPTOR_SIZE(ret);
+    rstride[0] = sizeof (GFC_REAL_8);
   if (hstride[0] == 0)
-    hstride[0] = GFC_DESCRIPTOR_SIZE(h);
+    hstride[0] = sizeof (GFC_INTEGER_8);
 
   dim = GFC_DESCRIPTOR_RANK (array);
   rstride0 = rstride[0];
@@ -133,9 +133,9 @@ cshift1_8_r8 (gfc_array_r8 * const restrict ret,
 	  if (sh < 0)
             sh += len;
 	}
-      src = &sptr[sh * soffset];
+      src = (const GFC_REAL_8 *) (((char*)sptr) + sh * soffset);
       dest = rptr;
-      if (soffset == 1 && roffset == 1)
+      if (soffset == sizeof (GFC_REAL_8) && roffset == sizeof (GFC_REAL_8))
 	{
 	  size_t len1 = sh * sizeof (GFC_REAL_8);
 	  size_t len2 = (len - sh) * sizeof (GFC_REAL_8);


More information about the Gcc-cvs mailing list