This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] Fix compile time warning messages about variables being used before they are initialised.
- From: Nick Clifton <nickc at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 24 Apr 2015 16:14:22 -0000
- Subject: [binutils-gdb] Fix compile time warning messages about variables being used before they are initialised.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=de13ef81f041f7f51687ef1873c74e853b97e73a
commit de13ef81f041f7f51687ef1873c74e853b97e73a
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Apr 24 17:13:22 2015 +0100
Fix compile time warning messages about variables being used before they are initialised.
PR 18313
bin * ieee.c (ieee_read_cxx_class): Initialise the varargs variable.
* readelf.c (uncompress_section_contents): Zero initialise the
zstream structure.
bfd * compress.c (decompress_contents): Zero initialse the z_stream
structure.
Diff:
---
bfd/ChangeLog | 6 ++++++
bfd/compress.c | 9 ++++++---
binutils/ChangeLog | 7 +++++++
binutils/ieee.c | 2 +-
binutils/readelf.c | 9 ++++++---
5 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 11a74de..87e22c2 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,11 @@
2015-04-24 Nick Clifton <nickc@redhat.com>
+ PR 18313
+ * compress.c (decompress_contents): Zero initialse the z_stream
+ structure.
+
+2015-04-24 Nick Clifton <nickc@redhat.com>
+
* elf.c (_bfd_elf_is_local_label_name): Extend test for assembler
local labels to include local labels with a numeric suffix and
fake symbols.
diff --git a/bfd/compress.c b/bfd/compress.c
index d0f745f..07289e5 100644
--- a/bfd/compress.c
+++ b/bfd/compress.c
@@ -37,9 +37,12 @@ decompress_contents (bfd_byte *compressed_buffer,
/* It is possible the section consists of several compressed
buffers concatenated together, so we uncompress in a loop. */
- strm.zalloc = NULL;
- strm.zfree = NULL;
- strm.opaque = NULL;
+ /* PR 18313: The state field in the z_stream structure is supposed
+ to be invisible to the user (ie us), but some compilers will
+ still complain about it being used without initialisation. So
+ we first zero the entire z_stream structure and then set the fields
+ that we need. */
+ memset (& strm, 0, sizeof strm);
strm.avail_in = compressed_size - 12;
strm.next_in = (Bytef*) compressed_buffer + 12;
strm.avail_out = uncompressed_size;
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index b0a5b1b..44c56b5 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,10 @@
+2015-04-24 Nick Clifton <nickc@redhat.com>
+
+ PR 18313
+ * ieee.c (ieee_read_cxx_class): Initialise the varargs variable.
+ * readelf.c (uncompress_section_contents): Zero initialise the
+ zstream structure.
+
2015-04-23 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/18209
diff --git a/binutils/ieee.c b/binutils/ieee.c
index e93fcaa..a0d69d1 100644
--- a/binutils/ieee.c
+++ b/binutils/ieee.c
@@ -2954,7 +2954,7 @@ ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
{
debug_type return_type;
const debug_type *arg_types;
- bfd_boolean varargs;
+ bfd_boolean varargs = FALSE;
if (debug_get_type_kind (dhandle, pv->type)
!= DEBUG_KIND_FUNCTION)
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 1533806..dfa5c0b 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -12067,9 +12067,12 @@ uncompress_section_contents (unsigned char **buffer,
/* It is possible the section consists of several compressed
buffers concatenated together, so we uncompress in a loop. */
- strm.zalloc = NULL;
- strm.zfree = NULL;
- strm.opaque = NULL;
+ /* PR 18313: The state field in the z_stream structure is supposed
+ to be invisible to the user (ie us), but some compilers will
+ still complain about it being used without initialisation. So
+ we first zero the entire z_stream structure and then set the fields
+ that we need. */
+ memset (& strm, 0, sizeof strm);
strm.avail_in = compressed_size - header_size;
strm.next_in = (Bytef *) compressed_buffer + header_size;
strm.avail_out = uncompressed_size;