summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/H5Fsuper_cache.c15
-rw-r--r--src/H5HFcache.c13
-rw-r--r--src/H5HGcache.c12
3 files changed, 24 insertions, 16 deletions
diff --git a/src/H5Fsuper_cache.c b/src/H5Fsuper_cache.c
index b5e4255..b7c1dad 100644
--- a/src/H5Fsuper_cache.c
+++ b/src/H5Fsuper_cache.c
@@ -349,11 +349,7 @@ H5F__cache_superblock_get_final_load_size(const void *_image, size_t image_len,
{
const uint8_t *image = _image; /* Pointer into raw data buffer */
H5F_superblock_cache_ud_t *udata = (H5F_superblock_cache_ud_t *)_udata; /* User data */
- /* Temporary file superblock, initialized because GCC 5.5 does not
- * realize that H5F__superblock_prefix_decode() initializes it.
- * TBD condition on compiler version.
- */
- H5F_super_t sblock = {.super_vers = 0, .sizeof_addr = 0, .sizeof_size = 0};
+ H5F_super_t sblock; /* Temporary file superblock */
htri_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -365,6 +361,15 @@ H5F__cache_superblock_get_final_load_size(const void *_image, size_t image_len,
HDassert(*actual_len == image_len);
HDassert(image_len >= H5F_SUPERBLOCK_FIXED_SIZE + 6);
+ /* Initialize because GCC 5.5 does not realize that
+ * H5F__superblock_prefix_decode() initializes it.
+ *
+ * TBD condition on compiler version.
+ */
+ sblock.super_vers = 0;
+ sblock.sizeof_addr = 0;
+ sblock.sizeof_size = 0;
+
/* Deserialize the file superblock's prefix */
if(H5F__superblock_prefix_decode(&sblock, &image, udata, TRUE) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTDECODE, FAIL, "can't decode file superblock prefix")
diff --git a/src/H5HFcache.c b/src/H5HFcache.c
index 39dc554..ab448ef 100644
--- a/src/H5HFcache.c
+++ b/src/H5HFcache.c
@@ -406,12 +406,7 @@ static herr_t
H5HF__cache_hdr_get_final_load_size(const void *_image, size_t image_len,
void *_udata, size_t *actual_len)
{
- /* Temporary fractal heap header, initialized because GCC 5.5 does
- * not realize that the H5HF__hdr_prefix_decode() call is sufficient
- * to initialize. GCC 8 is clever enough to see that the variable
- * is initialized. TBD condition on compiler version.
- */
- H5HF_hdr_t hdr = {.filter_len = 0};
+ H5HF_hdr_t hdr; /* Temporary fractal heap header */
const uint8_t *image = (const uint8_t *)_image; /* Pointer into into supplied image */
H5HF_hdr_cache_ud_t *udata = (H5HF_hdr_cache_ud_t *)_udata; /* User data for callback */
herr_t ret_value = SUCCEED; /* Return value */
@@ -424,6 +419,12 @@ H5HF__cache_hdr_get_final_load_size(const void *_image, size_t image_len,
HDassert(actual_len);
HDassert(*actual_len == image_len);
+ /* Initialize because GCC 5.5 does not realize that the
+ * H5HF__hdr_prefix_decode() call is sufficient to initialize.
+ * GCC 8 is clever enough to see that the variable is initialized.
+ * TBD condition on compiler version.
+ */
+ hdr.filter_len = 0;
/* Deserialize the fractal heap header's prefix */
if(H5HF__hdr_prefix_decode(&hdr, &image) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTDECODE, FAIL, "can't decode fractal heap header prefix")
diff --git a/src/H5HGcache.c b/src/H5HGcache.c
index a6c9996..e3d0f4c 100644
--- a/src/H5HGcache.c
+++ b/src/H5HGcache.c
@@ -205,11 +205,7 @@ static herr_t
H5HG__cache_heap_get_final_load_size(const void *image, size_t image_len,
void *udata, size_t *actual_len)
{
- /* Global heap, initialized because GCC 5.5 cannot see that
- * H5HG__hdr_deserialize() initializes. TBD condition on compiler
- * version.
- */
- H5HG_heap_t heap = {.size = 0};
+ H5HG_heap_t heap = {.size = 0}; /* Global heap */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -221,6 +217,12 @@ H5HG__cache_heap_get_final_load_size(const void *image, size_t image_len,
HDassert(*actual_len == image_len);
HDassert(image_len == H5HG_MINSIZE);
+ /* Initialize because GCC 5.5 cannot see that
+ * H5HG__hdr_deserialize() initializes.
+ *
+ * TBD condition on compiler version.
+ */
+ heap.size = 0;
/* Deserialize the heap's header */
if(H5HG__hdr_deserialize(&heap, (const uint8_t *)image, (const H5F_t *)udata) < 0)
HGOTO_ERROR(H5E_HEAP, H5E_CANTDECODE, FAIL, "can't decode global heap prefix")