From c1375d975d9b14c65255e17fdfe0f2908936f312 Mon Sep 17 00:00:00 2001 From: Jerry DeLisle <jvdelisle@gcc.gnu.org> Date: Sat, 25 Feb 2023 20:30:35 -0800 Subject: [PATCH] Fortran: Eliminate nuisance warnings by initializing. Set sstride[0] and mstride[0] to zero, eliminating some warnings. libgfortran/ChangeLog: * generated/pack_c10.c (pack_c10): Regenerated. * generated/pack_c16.c (pack_c16): Regenerated. * generated/pack_c17.c (pack_c17): Regenerated. * generated/pack_c4.c (pack_c4): Regenerated. * generated/pack_c8.c (pack_c8): Regenerated. * generated/pack_i1.c (pack_i1): Regenerated. * generated/pack_i16.c (pack_i16): Regenerated. * generated/pack_i2.c (pack_i2): Regenerated. * generated/pack_i4.c (pack_i4): Regenerated. * generated/pack_i8.c (pack_i8): Regenerated. * generated/pack_r10.c (pack_r10): Regenerated. * generated/pack_r16.c (pack_r16): Regenerated. * generated/pack_r17.c (pack_r17): Regenerated. * generated/pack_r4.c (pack_r4): Regenerated. * generated/pack_r8.c (pack_r8): Regenerated. * generated/spread_c10.c (spread_c10): Regenerated. * generated/spread_c16.c (spread_c16): Regenerated. * generated/spread_c17.c (spread_c17): Regenerated. * generated/spread_c4.c (spread_c4): Regenerated. * generated/spread_c8.c (spread_c8): Regenerated. * generated/spread_i1.c (spread_i1): Regenerated. * generated/spread_i16.c (spread_i16): Regenerated. * generated/spread_i2.c (spread_i2): Regenerated. * generated/spread_i4.c (spread_i4): Regenerated. * generated/spread_i8.c (spread_i8): Regenerated. * generated/spread_r10.c (spread_r10): Regenerated. * generated/spread_r16.c (spread_r16): Regenerated. * generated/spread_r17.c (spread_r17): Regenerated. * generated/spread_r4.c (spread_r4): Regenerated. * generated/spread_r8.c (spread_r8): Regenerated. * intrinsics/execute_command_line.c (execute_command_line_i4), (execute_command_line_i8): Set estat_initial to zero. * intrinsics/pack_generic.c (pack_internal): Set sstride[0] and mstride[0] to zero. * intrinsics/spread_generic.c (spread_internal): Set sstride[0]. * m4/pack.m4: Set sstride[0] and mstride[0]. * m4/spread.m4: Set sstride[0]. --- libgfortran/generated/pack_c10.c | 3 +++ libgfortran/generated/pack_c16.c | 3 +++ libgfortran/generated/pack_c17.c | 3 +++ libgfortran/generated/pack_c4.c | 3 +++ libgfortran/generated/pack_c8.c | 3 +++ libgfortran/generated/pack_i1.c | 3 +++ libgfortran/generated/pack_i16.c | 3 +++ libgfortran/generated/pack_i2.c | 3 +++ libgfortran/generated/pack_i4.c | 3 +++ libgfortran/generated/pack_i8.c | 3 +++ libgfortran/generated/pack_r10.c | 3 +++ libgfortran/generated/pack_r16.c | 3 +++ libgfortran/generated/pack_r17.c | 3 +++ libgfortran/generated/pack_r4.c | 3 +++ libgfortran/generated/pack_r8.c | 3 +++ libgfortran/generated/spread_c10.c | 2 ++ libgfortran/generated/spread_c16.c | 2 ++ libgfortran/generated/spread_c17.c | 2 ++ libgfortran/generated/spread_c4.c | 2 ++ libgfortran/generated/spread_c8.c | 2 ++ libgfortran/generated/spread_i1.c | 2 ++ libgfortran/generated/spread_i16.c | 2 ++ libgfortran/generated/spread_i2.c | 2 ++ libgfortran/generated/spread_i4.c | 2 ++ libgfortran/generated/spread_i8.c | 2 ++ libgfortran/generated/spread_r10.c | 2 ++ libgfortran/generated/spread_r16.c | 2 ++ libgfortran/generated/spread_r17.c | 2 ++ libgfortran/generated/spread_r4.c | 2 ++ libgfortran/generated/spread_r8.c | 2 ++ libgfortran/intrinsics/execute_command_line.c | 4 ++++ libgfortran/intrinsics/pack_generic.c | 3 +++ libgfortran/intrinsics/spread_generic.c | 2 ++ libgfortran/m4/pack.m4 | 3 +++ libgfortran/m4/spread.m4 | 2 ++ 35 files changed, 89 insertions(+) diff --git a/libgfortran/generated/pack_c10.c b/libgfortran/generated/pack_c10.c index a961057a8a6f..c01efd11cf8d 100644 --- a/libgfortran/generated/pack_c10.c +++ b/libgfortran/generated/pack_c10.c @@ -96,6 +96,9 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_c16.c b/libgfortran/generated/pack_c16.c index 37c062798bb9..8ee6b25cbe6f 100644 --- a/libgfortran/generated/pack_c16.c +++ b/libgfortran/generated/pack_c16.c @@ -96,6 +96,9 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_c17.c b/libgfortran/generated/pack_c17.c index f9638d640adc..7a1cf5e17e82 100644 --- a/libgfortran/generated/pack_c17.c +++ b/libgfortran/generated/pack_c17.c @@ -96,6 +96,9 @@ pack_c17 (gfc_array_c17 *ret, const gfc_array_c17 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_c4.c b/libgfortran/generated/pack_c4.c index d72717041a13..76c8a853facc 100644 --- a/libgfortran/generated/pack_c4.c +++ b/libgfortran/generated/pack_c4.c @@ -96,6 +96,9 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_c8.c b/libgfortran/generated/pack_c8.c index 9f8e97e4bc84..365c26ed0e8f 100644 --- a/libgfortran/generated/pack_c8.c +++ b/libgfortran/generated/pack_c8.c @@ -96,6 +96,9 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_i1.c b/libgfortran/generated/pack_i1.c index 0f4fe72b3f5f..97a82281a5c5 100644 --- a/libgfortran/generated/pack_i1.c +++ b/libgfortran/generated/pack_i1.c @@ -96,6 +96,9 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_i16.c b/libgfortran/generated/pack_i16.c index 3c4169b88ca6..a0aa6db29d8b 100644 --- a/libgfortran/generated/pack_i16.c +++ b/libgfortran/generated/pack_i16.c @@ -96,6 +96,9 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_i2.c b/libgfortran/generated/pack_i2.c index c5878afc1633..24efcaae17e6 100644 --- a/libgfortran/generated/pack_i2.c +++ b/libgfortran/generated/pack_i2.c @@ -96,6 +96,9 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_i4.c b/libgfortran/generated/pack_i4.c index 45f5d05918ba..6642f2b0bc10 100644 --- a/libgfortran/generated/pack_i4.c +++ b/libgfortran/generated/pack_i4.c @@ -96,6 +96,9 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_i8.c b/libgfortran/generated/pack_i8.c index c45fc27c04a1..0f6ce94f0367 100644 --- a/libgfortran/generated/pack_i8.c +++ b/libgfortran/generated/pack_i8.c @@ -96,6 +96,9 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_r10.c b/libgfortran/generated/pack_r10.c index 1211fc492af0..7dd232853b4c 100644 --- a/libgfortran/generated/pack_r10.c +++ b/libgfortran/generated/pack_r10.c @@ -96,6 +96,9 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_r16.c b/libgfortran/generated/pack_r16.c index e6d6c7cfb8e3..6db5e65e16fc 100644 --- a/libgfortran/generated/pack_r16.c +++ b/libgfortran/generated/pack_r16.c @@ -96,6 +96,9 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_r17.c b/libgfortran/generated/pack_r17.c index 02e0b9622cb1..6f9ff439559c 100644 --- a/libgfortran/generated/pack_r17.c +++ b/libgfortran/generated/pack_r17.c @@ -96,6 +96,9 @@ pack_r17 (gfc_array_r17 *ret, const gfc_array_r17 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_r4.c b/libgfortran/generated/pack_r4.c index 630d2a0e7308..09132539ce9f 100644 --- a/libgfortran/generated/pack_r4.c +++ b/libgfortran/generated/pack_r4.c @@ -96,6 +96,9 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/pack_r8.c b/libgfortran/generated/pack_r8.c index 90d66bbc04bc..96b648aca4e3 100644 --- a/libgfortran/generated/pack_r8.c +++ b/libgfortran/generated/pack_r8.c @@ -96,6 +96,9 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/generated/spread_c10.c b/libgfortran/generated/spread_c10.c index 485f4ad14310..987a81c0d7be 100644 --- a/libgfortran/generated/spread_c10.c +++ b/libgfortran/generated/spread_c10.c @@ -56,6 +56,8 @@ spread_c10 (gfc_array_c10 *ret, const gfc_array_c10 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_c16.c b/libgfortran/generated/spread_c16.c index 23ed7a6684fe..d7969a14a6a5 100644 --- a/libgfortran/generated/spread_c16.c +++ b/libgfortran/generated/spread_c16.c @@ -56,6 +56,8 @@ spread_c16 (gfc_array_c16 *ret, const gfc_array_c16 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_c17.c b/libgfortran/generated/spread_c17.c index f6d13e97e21c..3011c365c142 100644 --- a/libgfortran/generated/spread_c17.c +++ b/libgfortran/generated/spread_c17.c @@ -56,6 +56,8 @@ spread_c17 (gfc_array_c17 *ret, const gfc_array_c17 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_c4.c b/libgfortran/generated/spread_c4.c index 322c86061be9..f0550d36e2b7 100644 --- a/libgfortran/generated/spread_c4.c +++ b/libgfortran/generated/spread_c4.c @@ -56,6 +56,8 @@ spread_c4 (gfc_array_c4 *ret, const gfc_array_c4 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_c8.c b/libgfortran/generated/spread_c8.c index 9a06ee297182..b93518fb9006 100644 --- a/libgfortran/generated/spread_c8.c +++ b/libgfortran/generated/spread_c8.c @@ -56,6 +56,8 @@ spread_c8 (gfc_array_c8 *ret, const gfc_array_c8 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_i1.c b/libgfortran/generated/spread_i1.c index fc140e25f68b..3c913a303974 100644 --- a/libgfortran/generated/spread_i1.c +++ b/libgfortran/generated/spread_i1.c @@ -56,6 +56,8 @@ spread_i1 (gfc_array_i1 *ret, const gfc_array_i1 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_i16.c b/libgfortran/generated/spread_i16.c index 80ace87ae879..61dc5c49ad9d 100644 --- a/libgfortran/generated/spread_i16.c +++ b/libgfortran/generated/spread_i16.c @@ -56,6 +56,8 @@ spread_i16 (gfc_array_i16 *ret, const gfc_array_i16 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_i2.c b/libgfortran/generated/spread_i2.c index 0815de1e2f26..28a4f8b1a7cc 100644 --- a/libgfortran/generated/spread_i2.c +++ b/libgfortran/generated/spread_i2.c @@ -56,6 +56,8 @@ spread_i2 (gfc_array_i2 *ret, const gfc_array_i2 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_i4.c b/libgfortran/generated/spread_i4.c index 4873c59c6595..a0a53322d16b 100644 --- a/libgfortran/generated/spread_i4.c +++ b/libgfortran/generated/spread_i4.c @@ -56,6 +56,8 @@ spread_i4 (gfc_array_i4 *ret, const gfc_array_i4 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_i8.c b/libgfortran/generated/spread_i8.c index f212bc636392..206bbbbb367e 100644 --- a/libgfortran/generated/spread_i8.c +++ b/libgfortran/generated/spread_i8.c @@ -56,6 +56,8 @@ spread_i8 (gfc_array_i8 *ret, const gfc_array_i8 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_r10.c b/libgfortran/generated/spread_r10.c index 95816263aeef..076083859846 100644 --- a/libgfortran/generated/spread_r10.c +++ b/libgfortran/generated/spread_r10.c @@ -56,6 +56,8 @@ spread_r10 (gfc_array_r10 *ret, const gfc_array_r10 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_r16.c b/libgfortran/generated/spread_r16.c index 6856f70122a6..af6075e6b3d9 100644 --- a/libgfortran/generated/spread_r16.c +++ b/libgfortran/generated/spread_r16.c @@ -56,6 +56,8 @@ spread_r16 (gfc_array_r16 *ret, const gfc_array_r16 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_r17.c b/libgfortran/generated/spread_r17.c index f2a459528dd1..cb765d3212e3 100644 --- a/libgfortran/generated/spread_r17.c +++ b/libgfortran/generated/spread_r17.c @@ -56,6 +56,8 @@ spread_r17 (gfc_array_r17 *ret, const gfc_array_r17 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_r4.c b/libgfortran/generated/spread_r4.c index 5a52870c5377..8fdb722e523d 100644 --- a/libgfortran/generated/spread_r4.c +++ b/libgfortran/generated/spread_r4.c @@ -56,6 +56,8 @@ spread_r4 (gfc_array_r4 *ret, const gfc_array_r4 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/generated/spread_r8.c b/libgfortran/generated/spread_r8.c index 3bc847f000e7..ecfe9ad4e8bf 100644 --- a/libgfortran/generated/spread_r8.c +++ b/libgfortran/generated/spread_r8.c @@ -56,6 +56,8 @@ spread_r8 (gfc_array_r8 *ret, const gfc_array_r8 *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/intrinsics/execute_command_line.c b/libgfortran/intrinsics/execute_command_line.c index 0d1688400c28..c2bcaf05f0b1 100644 --- a/libgfortran/intrinsics/execute_command_line.c +++ b/libgfortran/intrinsics/execute_command_line.c @@ -192,6 +192,8 @@ execute_command_line_i4 (const char *command, GFC_LOGICAL_4 *wait, bool w = wait ? *wait : true; int estat, estat_initial, cstat; + estat_initial = 0; /* Avoid nuisance warning if not initialized. */ + if (exitstat) estat_initial = estat = *exitstat; @@ -221,6 +223,8 @@ execute_command_line_i8 (const char *command, GFC_LOGICAL_8 *wait, bool w = wait ? *wait : true; int estat, estat_initial, cstat; + estat_initial = 0; /* Avoid nuisance warning if not initialized. */ + if (exitstat) estat_initial = estat = *exitstat; diff --git a/libgfortran/intrinsics/pack_generic.c b/libgfortran/intrinsics/pack_generic.c index 5bc7f1c254b2..5462b17bed2a 100644 --- a/libgfortran/intrinsics/pack_generic.c +++ b/libgfortran/intrinsics/pack_generic.c @@ -94,6 +94,9 @@ pack_internal (gfc_array_char *ret, const gfc_array_char *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + sptr = array->base_addr; mptr = mask->base_addr; diff --git a/libgfortran/intrinsics/spread_generic.c b/libgfortran/intrinsics/spread_generic.c index 7e3c8d5b04d7..5b6df95447e0 100644 --- a/libgfortran/intrinsics/spread_generic.c +++ b/libgfortran/intrinsics/spread_generic.c @@ -55,6 +55,8 @@ spread_internal (gfc_array_char *ret, const gfc_array_char *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); diff --git a/libgfortran/m4/pack.m4 b/libgfortran/m4/pack.m4 index 3003355c2c9e..8bb8c250ceb6 100644 --- a/libgfortran/m4/pack.m4 +++ b/libgfortran/m4/pack.m4 @@ -97,6 +97,9 @@ pack_'rtype_code` ('rtype` *ret, const 'rtype` *array, dim = GFC_DESCRIPTOR_RANK (array); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + mstride[0] = 0; + mptr = mask->base_addr; /* Use the same loop for all logical types, by using GFC_LOGICAL_1 diff --git a/libgfortran/m4/spread.m4 b/libgfortran/m4/spread.m4 index 0d70345f8e0d..edb46ef1b853 100644 --- a/libgfortran/m4/spread.m4 +++ b/libgfortran/m4/spread.m4 @@ -57,6 +57,8 @@ spread_'rtype_code` ('rtype` *ret, const 'rtype` *source, srank = GFC_DESCRIPTOR_RANK(source); + sstride[0] = 0; /* Avoid warnings if not initialized. */ + rrank = srank + 1; if (rrank > GFC_MAX_DIMENSIONS) runtime_error ("return rank too large in spread()"); -- GitLab