aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/intrinsics
diff options
context:
space:
mode:
authorFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-04-18 08:47:28 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-04-18 08:47:28 +0000
commitc6e75626c93227ea1c909cf6908e5c6bdb792cec (patch)
tree8dc796e48fd1a13532a20e8ae40510e9eeff313c /libgfortran/intrinsics
parent8cf81ddffd26ef1262e2d93f7232d72b92cd72be (diff)
downloadgcc-c6e75626c93227ea1c909cf6908e5c6bdb792cec.zip
gcc-c6e75626c93227ea1c909cf6908e5c6bdb792cec.tar.gz
gcc-c6e75626c93227ea1c909cf6908e5c6bdb792cec.tar.bz2
re PR libfortran/31286 (cshift uses uninitialized variables)
PR libfortran/31286 PR libfortran/31296 * intrinsics/cshift0.c (cshift0): Initialize sstride[0] and rstride[0]. * intrinsics/unpack_generic.c (unpack0, unpack0_char): Zero the array structures we pass to unpack_internal. From-SVN: r123944
Diffstat (limited to 'libgfortran/intrinsics')
-rw-r--r--libgfortran/intrinsics/cshift0.c2
-rw-r--r--libgfortran/intrinsics/unpack_generic.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/libgfortran/intrinsics/cshift0.c b/libgfortran/intrinsics/cshift0.c
index f2c2219..2ecf30e 100644
--- a/libgfortran/intrinsics/cshift0.c
+++ b/libgfortran/intrinsics/cshift0.c
@@ -103,6 +103,8 @@ cshift0 (gfc_array_char * ret, const gfc_array_char * array,
runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'");
which = which - 1;
+ sstride[0] = 0;
+ rstride[0] = 0;
extent[0] = 1;
count[0] = 0;
diff --git a/libgfortran/intrinsics/unpack_generic.c b/libgfortran/intrinsics/unpack_generic.c
index 5cf9666..13166f9 100644
--- a/libgfortran/intrinsics/unpack_generic.c
+++ b/libgfortran/intrinsics/unpack_generic.c
@@ -209,6 +209,7 @@ unpack0 (gfc_array_char *ret, const gfc_array_char *vector,
{
gfc_array_char tmp;
+ memset (&tmp, 0, sizeof (tmp));
tmp.dtype = 0;
tmp.data = field;
unpack_internal (ret, vector, mask, &tmp, GFC_DESCRIPTOR_SIZE (vector), 0);
@@ -228,6 +229,7 @@ unpack0_char (gfc_array_char *ret,
{
gfc_array_char tmp;
+ memset (&tmp, 0, sizeof (tmp));
tmp.dtype = 0;
tmp.data = field;
unpack_internal (ret, vector, mask, &tmp, vector_length, 0);