From: Eero Tamminen Date: Wed, 17 Jan 2024 15:19:16 +0000 (+0200) Subject: Pass strcmp() to c_avl_create() as function pointer, not data one X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=42c3871e2d340f98032df303a5e82173bdc1b357;p=thirdparty%2Fcollectd.git Pass strcmp() to c_avl_create() as function pointer, not data one Matches how strcmp() is passed to c_avl_create() elsewhere. Reported by -Wpendantic: ------------------------------------ write_prometheus.c: In function ‘prom_init’: write_prometheus.c:900:28: error: ISO C forbids conversion of function pointer to object pointer type [-Werror=pedantic] 900 | metrics = c_avl_create((void *)strcmp); | ^ write_prometheus.c:900:28: error: ISO C forbids passing argument 1 of ‘c_avl_create’ between function pointer and ‘void *’ [-Werror=pedantic] 900 | metrics = c_avl_create((void *)strcmp); | ^~~~~~~~~~~~~~ In file included from write_prometheus.c:30: utils/avltree/avltree.h:54:34: note: expected ‘int (*)(const void *, const void *)’ but argument is of type ‘void *’ 54 | c_avl_tree_t *c_avl_create(int (*compare)(const void *, const void *)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ------------------------------------ Signed-off-by: Eero Tamminen --- diff --git a/src/redfish.c b/src/redfish.c index 8cfbb2924..9f3d5b7af 100644 --- a/src/redfish.c +++ b/src/redfish.c @@ -283,7 +283,7 @@ static int redfish_preconfig(void) { goto error; /* Creating placeholder for queries */ - ctx.queries = c_avl_create((void *)strcmp); + ctx.queries = c_avl_create((int (*)(const void *, const void *))strcmp); if (ctx.services == NULL) goto free_services; diff --git a/src/utils/format_stackdriver/format_stackdriver.c b/src/utils/format_stackdriver/format_stackdriver.c index 907a23cba..c25364557 100644 --- a/src/utils/format_stackdriver/format_stackdriver.c +++ b/src/utils/format_stackdriver/format_stackdriver.c @@ -493,13 +493,14 @@ sd_output_t *sd_output_create(sd_resource_t *res) /* {{{ */ return NULL; } - out->staged = c_avl_create((void *)strcmp); + out->staged = c_avl_create((int (*)(const void *, const void *))strcmp); if (out->staged == NULL) { sd_output_destroy(out); return NULL; } - out->metric_descriptors = c_avl_create((void *)strcmp); + out->metric_descriptors = + c_avl_create((int (*)(const void *, const void *))strcmp); if (out->metric_descriptors == NULL) { sd_output_destroy(out); return NULL; diff --git a/src/write_prometheus.c b/src/write_prometheus.c index adf76ea63..ba80436d0 100644 --- a/src/write_prometheus.c +++ b/src/write_prometheus.c @@ -897,7 +897,7 @@ static int prom_config(oconfig_item_t *ci) { static int prom_init() { if (metrics == NULL) { - metrics = c_avl_create((void *)strcmp); + metrics = c_avl_create((int (*)(const void *, const void *))strcmp); if (metrics == NULL) { ERROR("write_prometheus plugin: c_avl_create() failed."); return -1;