[PATCH v1 47/48] perf hashmap: Silence -Wshorten-64-to-32 warnings
From: Ian Rogers
Date: Tue Apr 01 2025 - 14:36:06 EST
The clang warning -Wshorten-64-to-32 can be useful to catch
inadvertent truncation. In some instances this truncation can lead to
changing the sign of a result, for example, truncation to return an
int to fit a sort routine. Silence the warning by making the implicit
truncation explicit.
Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/util/hashmap.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tools/perf/util/hashmap.c b/tools/perf/util/hashmap.c
index 140ee4055676..f2719f522b84 100644
--- a/tools/perf/util/hashmap.c
+++ b/tools/perf/util/hashmap.c
@@ -115,7 +115,7 @@ static int hashmap_grow(struct hashmap *map)
return -ENOMEM;
hashmap__for_each_entry_safe(map, cur, tmp, bkt) {
- h = hash_bits(map->hash_fn(cur->key, map->ctx), new_cap_bits);
+ h = hash_bits(map->hash_fn(cur->key, map->ctx), (int)new_cap_bits);
hashmap_add_entry(&new_buckets[h], cur);
}
@@ -164,7 +164,7 @@ int hashmap_insert(struct hashmap *map, long key, long value,
if (old_value)
*old_value = 0;
- h = hash_bits(map->hash_fn(key, map->ctx), map->cap_bits);
+ h = hash_bits(map->hash_fn(key, map->ctx), (int)map->cap_bits);
if (strategy != HASHMAP_APPEND &&
hashmap_find_entry(map, key, h, NULL, &entry)) {
if (old_key)
@@ -188,7 +188,7 @@ int hashmap_insert(struct hashmap *map, long key, long value,
err = hashmap_grow(map);
if (err)
return err;
- h = hash_bits(map->hash_fn(key, map->ctx), map->cap_bits);
+ h = hash_bits(map->hash_fn(key, map->ctx), (int)map->cap_bits);
}
entry = malloc(sizeof(struct hashmap_entry));
@@ -208,7 +208,7 @@ bool hashmap_find(const struct hashmap *map, long key, long *value)
struct hashmap_entry *entry;
size_t h;
- h = hash_bits(map->hash_fn(key, map->ctx), map->cap_bits);
+ h = hash_bits(map->hash_fn(key, map->ctx), (int)map->cap_bits);
if (!hashmap_find_entry(map, key, h, NULL, &entry))
return false;
@@ -223,7 +223,7 @@ bool hashmap_delete(struct hashmap *map, long key,
struct hashmap_entry **pprev, *entry;
size_t h;
- h = hash_bits(map->hash_fn(key, map->ctx), map->cap_bits);
+ h = hash_bits(map->hash_fn(key, map->ctx), (int)map->cap_bits);
if (!hashmap_find_entry(map, key, h, &pprev, &entry))
return false;
--
2.49.0.504.g3bcea36a83-goog