https://gcc.gnu.org/g:8b9a851dce7faa0ffdcdd1ef928e6abf74cb767a

commit 8b9a851dce7faa0ffdcdd1ef928e6abf74cb767a
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Wed May 28 15:34:53 2025 +0200

    Correction régression intrinsic_spread_1

Diff:
---
 libgfortran/generated/spread_c10.c      | 5 ++---
 libgfortran/generated/spread_c16.c      | 5 ++---
 libgfortran/generated/spread_c17.c      | 5 ++---
 libgfortran/generated/spread_c4.c       | 5 ++---
 libgfortran/generated/spread_c8.c       | 5 ++---
 libgfortran/generated/spread_i1.c       | 5 ++---
 libgfortran/generated/spread_i16.c      | 5 ++---
 libgfortran/generated/spread_i2.c       | 5 ++---
 libgfortran/generated/spread_i4.c       | 5 ++---
 libgfortran/generated/spread_i8.c       | 5 ++---
 libgfortran/generated/spread_r10.c      | 5 ++---
 libgfortran/generated/spread_r16.c      | 5 ++---
 libgfortran/generated/spread_r17.c      | 5 ++---
 libgfortran/generated/spread_r4.c       | 5 ++---
 libgfortran/generated/spread_r8.c       | 5 ++---
 libgfortran/intrinsics/spread_generic.c | 5 ++---
 libgfortran/m4/spread.m4                | 5 ++---
 17 files changed, 34 insertions(+), 51 deletions(-)

diff --git a/libgfortran/generated/spread_c10.c 
b/libgfortran/generated/spread_c10.c
index eb9ad1954f7d..071328ff0c46 100644
--- a/libgfortran/generated/spread_c10.c
+++ b/libgfortran/generated/spread_c10.c
@@ -246,9 +246,8 @@ spread_scalar_c10 (gfc_array_c10 *ret, const GFC_COMPLEX_10 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_c16.c 
b/libgfortran/generated/spread_c16.c
index 62b069fb3bfa..3d6e97689a62 100644
--- a/libgfortran/generated/spread_c16.c
+++ b/libgfortran/generated/spread_c16.c
@@ -246,9 +246,8 @@ spread_scalar_c16 (gfc_array_c16 *ret, const GFC_COMPLEX_16 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_c17.c 
b/libgfortran/generated/spread_c17.c
index 4d03d10df64d..4d470ab907b0 100644
--- a/libgfortran/generated/spread_c17.c
+++ b/libgfortran/generated/spread_c17.c
@@ -246,9 +246,8 @@ spread_scalar_c17 (gfc_array_c17 *ret, const GFC_COMPLEX_17 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_c4.c 
b/libgfortran/generated/spread_c4.c
index 845366429d71..c530c37edf99 100644
--- a/libgfortran/generated/spread_c4.c
+++ b/libgfortran/generated/spread_c4.c
@@ -246,9 +246,8 @@ spread_scalar_c4 (gfc_array_c4 *ret, const GFC_COMPLEX_4 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_c8.c 
b/libgfortran/generated/spread_c8.c
index 2626988277fa..2d455ce8a9b8 100644
--- a/libgfortran/generated/spread_c8.c
+++ b/libgfortran/generated/spread_c8.c
@@ -246,9 +246,8 @@ spread_scalar_c8 (gfc_array_c8 *ret, const GFC_COMPLEX_8 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_i1.c 
b/libgfortran/generated/spread_i1.c
index 716fedf4a143..afdf35514f27 100644
--- a/libgfortran/generated/spread_i1.c
+++ b/libgfortran/generated/spread_i1.c
@@ -246,9 +246,8 @@ spread_scalar_i1 (gfc_array_i1 *ret, const GFC_INTEGER_1 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_i16.c 
b/libgfortran/generated/spread_i16.c
index 2cd6746204d5..259d0669c82c 100644
--- a/libgfortran/generated/spread_i16.c
+++ b/libgfortran/generated/spread_i16.c
@@ -246,9 +246,8 @@ spread_scalar_i16 (gfc_array_i16 *ret, const GFC_INTEGER_16 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_i2.c 
b/libgfortran/generated/spread_i2.c
index 9f443ecd55e9..7db5c0098aa4 100644
--- a/libgfortran/generated/spread_i2.c
+++ b/libgfortran/generated/spread_i2.c
@@ -246,9 +246,8 @@ spread_scalar_i2 (gfc_array_i2 *ret, const GFC_INTEGER_2 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_i4.c 
b/libgfortran/generated/spread_i4.c
index e3cefc9f6179..e86a1e2e639c 100644
--- a/libgfortran/generated/spread_i4.c
+++ b/libgfortran/generated/spread_i4.c
@@ -246,9 +246,8 @@ spread_scalar_i4 (gfc_array_i4 *ret, const GFC_INTEGER_4 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_i8.c 
b/libgfortran/generated/spread_i8.c
index 5bf4984c33c6..256655e67f4c 100644
--- a/libgfortran/generated/spread_i8.c
+++ b/libgfortran/generated/spread_i8.c
@@ -246,9 +246,8 @@ spread_scalar_i8 (gfc_array_i8 *ret, const GFC_INTEGER_8 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_r10.c 
b/libgfortran/generated/spread_r10.c
index 18062fd5cd30..1cfe39e82d0d 100644
--- a/libgfortran/generated/spread_r10.c
+++ b/libgfortran/generated/spread_r10.c
@@ -246,9 +246,8 @@ spread_scalar_r10 (gfc_array_r10 *ret, const GFC_REAL_10 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_r16.c 
b/libgfortran/generated/spread_r16.c
index b15e5fb8b72c..89f86b5add00 100644
--- a/libgfortran/generated/spread_r16.c
+++ b/libgfortran/generated/spread_r16.c
@@ -246,9 +246,8 @@ spread_scalar_r16 (gfc_array_r16 *ret, const GFC_REAL_16 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_r17.c 
b/libgfortran/generated/spread_r17.c
index 120ec29179b9..861a2f0914cb 100644
--- a/libgfortran/generated/spread_r17.c
+++ b/libgfortran/generated/spread_r17.c
@@ -246,9 +246,8 @@ spread_scalar_r17 (gfc_array_r17 *ret, const GFC_REAL_17 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_r4.c 
b/libgfortran/generated/spread_r4.c
index a14b9fa2c6ea..b365e68f8572 100644
--- a/libgfortran/generated/spread_r4.c
+++ b/libgfortran/generated/spread_r4.c
@@ -246,9 +246,8 @@ spread_scalar_r4 (gfc_array_r4 *ret, const GFC_REAL_4 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/generated/spread_r8.c 
b/libgfortran/generated/spread_r8.c
index 592c90a330a9..dbe5911a6eff 100644
--- a/libgfortran/generated/spread_r8.c
+++ b/libgfortran/generated/spread_r8.c
@@ -246,9 +246,8 @@ spread_scalar_r8 (gfc_array_r8 *ret, const GFC_REAL_8 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;
diff --git a/libgfortran/intrinsics/spread_generic.c 
b/libgfortran/intrinsics/spread_generic.c
index c53752daebe2..59b62d64c2f5 100644
--- a/libgfortran/intrinsics/spread_generic.c
+++ b/libgfortran/intrinsics/spread_generic.c
@@ -256,9 +256,8 @@ spread_internal_scalar (gfc_array_char *ret, const char 
*source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0)  - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies doesn't match result extent in spread()");
     }
 
   for (n = 0; n < ncopies; n++)
diff --git a/libgfortran/m4/spread.m4 b/libgfortran/m4/spread.m4
index 59204532d564..1772d949ee13 100644
--- a/libgfortran/m4/spread.m4
+++ b/libgfortran/m4/spread.m4
@@ -247,9 +247,8 @@ spread_scalar_'rtype_code` ('rtype` *ret, const 
'rtype_name` *source,
     }
   else
     {
-      if (ncopies - 1 > (GFC_DESCRIPTOR_EXTENT(ret,0) - 1)
-                          / GFC_DESCRIPTOR_SPACING(ret,0))
-       runtime_error ("dim too large in spread()");
+      if (ncopies != GFC_DESCRIPTOR_EXTENT(ret,0))
+       runtime_error ("ncopies does not match result extent in spread()");
     }
 
   dest = ret->base_addr;

Reply via email to