From de6425acaa50426883e85a599001ae5e927aec5b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 2 Mar 2023 16:23:56 -0800
Subject: [PATCH] pmempool: Match function prototypes of enum_to_str_fn
 function pointer

This is flagged by clang 16+
common.c:844:4: error: cast from 'const char *(*)(enum chunk_type)' to 'enum_to_str_fn' (aka 'const char *(*)(int)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
                        (enum_to_str_fn)out_get_chunk_type_str);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

Upstream-Status: Submitted [https://github.com/pmem/pmdk/pull/5543]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 src/tools/pmempool/common.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/tools/pmempool/common.c b/src/tools/pmempool/common.c
index 5e7e472cc..4b7e9b95f 100644
--- a/src/tools/pmempool/common.c
+++ b/src/tools/pmempool/common.c
@@ -41,7 +41,7 @@
 
 #define REQ_BUFF_SIZE	2048U
 #define Q_BUFF_SIZE	8192
-typedef const char *(*enum_to_str_fn)(int);
+typedef const char *(*enum_to_str_fn)(enum chunk_type);
 
 /*
  * pmem_pool_type -- return pool type based on first two pages.
@@ -790,7 +790,7 @@ util_parse_enum(const char *str, int first, int max, uint64_t *bitmap,
 		enum_to_str_fn enum_to_str)
 {
 	for (int i = first; i < max; i++) {
-		if (strcmp(str, enum_to_str(i)) == 0) {
+		if (strcmp(str, enum_to_str((enum chunk_type)i)) == 0) {
 			*bitmap |= (uint64_t)1<<i;
 			return 0;
 		}
-- 
2.39.2

