[PATCH v1 20/48] perf dlfilter: Silence -Wshorten-64-to-32 warnings
From: Ian Rogers
Date: Tue Apr 01 2025 - 14:29:51 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/dlfilters/dlfilter-test-api-v0.c | 4 ++--
tools/perf/util/dlfilter.c | 10 +++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/tools/perf/dlfilters/dlfilter-test-api-v0.c b/tools/perf/dlfilters/dlfilter-test-api-v0.c
index 4ca2d7b2ea6c..bf2a1a7b3c71 100644
--- a/tools/perf/dlfilters/dlfilter-test-api-v0.c
+++ b/tools/perf/dlfilters/dlfilter-test-api-v0.c
@@ -166,10 +166,10 @@ int start(void **data, void *ctx)
CHECK(dlargc == 6);
CHECK(!strcmp(dlargv[0], "first"));
- verbose = strtol(dlargv[1], NULL, 0);
+ verbose = (int)strtol(dlargv[1], NULL, 0);
d->ip = strtoull(dlargv[2], NULL, 0);
d->addr = strtoull(dlargv[3], NULL, 0);
- d->do_early = strtol(dlargv[4], NULL, 0);
+ d->do_early = (int)strtol(dlargv[4], NULL, 0);
CHECK(!strcmp(dlargv[5], "last"));
pr_debug("%s API\n", __func__);
diff --git a/tools/perf/util/dlfilter.c b/tools/perf/util/dlfilter.c
index ddacef881af2..0e513ac7feae 100644
--- a/tools/perf/util/dlfilter.c
+++ b/tools/perf/util/dlfilter.c
@@ -38,7 +38,7 @@ static void al_to_d_al(struct addr_location *al, struct perf_dlfilter_al *d_al)
else
d_al->dso = dso__name(dso);
d_al->is_64_bit = dso__is_64_bit(dso);
- d_al->buildid_size = dso__bid(dso)->size;
+ d_al->buildid_size = (__u32)dso__bid(dso)->size;
d_al->buildid = dso__bid(dso)->data;
} else {
d_al->dso = NULL;
@@ -51,9 +51,9 @@ static void al_to_d_al(struct addr_location *al, struct perf_dlfilter_al *d_al)
d_al->sym_start = sym->start;
d_al->sym_end = sym->end;
if (al->addr < sym->end)
- d_al->symoff = al->addr - sym->start;
+ d_al->symoff = (__u32)(al->addr - sym->start);
else if (al->map)
- d_al->symoff = al->addr - map__start(al->map) - sym->start;
+ d_al->symoff = (__u32)(al->addr - map__start(al->map) - sym->start);
else
d_al->symoff = 0;
d_al->sym_binding = sym->binding;
@@ -290,9 +290,9 @@ static __s32 code_read(__u64 ip, struct map *map, struct machine *machine, void
u64 offset = map__map_ip(map, ip);
if (ip + len >= map__end(map))
- len = map__end(map) - ip;
+ len = (__u32)(map__end(map) - ip);
- return dso__data_read_offset(map__dso(map), machine, offset, buf, len);
+ return (__s32)dso__data_read_offset(map__dso(map), machine, offset, buf, len);
}
static __s32 dlfilter__object_code(void *ctx, __u64 ip, void *buf, __u32 len)
--
2.49.0.504.g3bcea36a83-goog