From e82d39ca0e4122facb87fe784e58a77f41a8814f Mon Sep 17 00:00:00 2001
From: David Young <dyoung@hdfgroup.org>
Date: Mon, 8 Nov 2021 14:33:39 -0600
Subject: [PATCH] Fix the function cast error in H5Dchunk.c and activate
 (#1170)

`-Werror=cast-function-type`.  Again.
---
 config/gnu-warnings/error-8 |  5 +----
 src/H5Dchunk.c              | 15 ++++++++++++++-
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/config/gnu-warnings/error-8 b/config/gnu-warnings/error-8
index 2f54a4d24e..cbb25f67e5 100644
--- a/config/gnu-warnings/error-8
+++ b/config/gnu-warnings/error-8
@@ -1,7 +1,4 @@
-# NOTE: src/ files are not compatible with these warnings as errors
-#     src/H5Dchunk.c
-#       -Werror=cast-function-type
--Wcast-function-type
+-Werror=cast-function-type
 #
 # For GCC 8, promote maybe-initialized warnings to an error.  GCC 8
 # reports 0 maybe-uninitialized warnings where earlier versions
diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c
index 6600417aa6..9a9121a6c4 100644
--- a/src/H5Dchunk.c
+++ b/src/H5Dchunk.c
@@ -1400,6 +1400,19 @@ H5D__chunk_mem_xfree(void *chk, const void *_pline)
     FUNC_LEAVE_NOAPI(NULL)
 } /* H5D__chunk_mem_xfree() */
 
+/*-------------------------------------------------------------------------
+ * Function:    H5D__chunk_mem_free
+ *
+ * Purpose:    Wrapper with H5MM_free_t-compatible signature that just
+ *             calls H5D__chunk_mem_xfree and discards the return value.
+ *-------------------------------------------------------------------------
+ */
+static void
+H5D__chunk_mem_free(void *chk, const void *_pline)
+{
+    (void)H5D__chunk_mem_xfree(chk, _pline);
+}
+
 /*-------------------------------------------------------------------------
  * Function:    H5D__chunk_mem_realloc
  *
@@ -4387,7 +4400,7 @@ H5D__chunk_allocate(const H5D_io_info_t *io_info, hbool_t full_overwrite, const
         /* (delay allocating fill buffer for VL datatypes until refilling) */
         /* (casting away const OK - QAK) */
         if (H5D__fill_init(&fb_info, NULL, (H5MM_allocate_t)H5D__chunk_mem_alloc, (void *)pline,
-                           (H5MM_free_t)H5D__chunk_mem_xfree, (void *)pline, &dset->shared->dcpl_cache.fill,
+                           (H5MM_free_t)H5D__chunk_mem_free, (void *)pline, &dset->shared->dcpl_cache.fill,
                            dset->shared->type, dset->shared->type_id, (size_t)0, orig_chunk_size) < 0)
             HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize fill buffer info")
         fb_info_init = TRUE;