From 1cca2902c10ba6411e18e4216360e5c9a6d0f72a Mon Sep 17 00:00:00 2001 From: Ian Rogers Date: Mon, 8 Jun 2020 22:36:09 -0700 Subject: [PATCH] perf parse-events: Fix an incompatible pointer Arrays are pointer types and don't need their address taking. Fixes: 8255718f4bed (perf pmu: Expand PMU events by prefix match) Signed-off-by: Ian Rogers Cc: Alexander Shishkin Cc: Andi Kleen Cc: Jiri Olsa Cc: Mark Rutland Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lore.kernel.org/lkml/20200609053610.206588-1-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo [sw0312.kim: backport mainline commint c2412fae3f01 to resolve gcc-14 build issue - Add to fix access of sys_name and cast for parse_events_get_extra] Signed-off-by: Seung-Woo Kim Change-Id: Ibbac7790364c500e42e47f9a4562154884bda65f --- tools/perf/util/parse-events.l | 2 +- tools/perf/util/parse-events.y | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l index 660fca05bc93..3b02790ad674 100644 --- a/tools/perf/util/parse-events.l +++ b/tools/perf/util/parse-events.l @@ -155,7 +155,7 @@ modifier_bp [rwx]{1,3} { int start_token; - start_token = parse_events_get_extra(yyscanner); + start_token = (int)(uintptr_t)parse_events_get_extra(yyscanner); if (start_token == PE_START_TERMS) BEGIN(config); diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y index d30a565a6a96..1119c6b8c12e 100644 --- a/tools/perf/util/parse-events.y +++ b/tools/perf/util/parse-events.y @@ -259,11 +259,11 @@ PE_PMU_EVENT_PRE '-' PE_PMU_EVENT_SUF sep_dc struct parse_events_term *term; struct list_head *list; char pmu_name[128]; - snprintf(&pmu_name, 128, "%s-%s", $1, $3); + snprintf(pmu_name, sizeof(pmu_name), "%s-%s", $1, $3); ALLOC_LIST(head); ABORT_ON(parse_events_term__num(&term, PARSE_EVENTS__TERM_TYPE_USER, - &pmu_name, 1, &@1, NULL)); + pmu_name, 1, &@1, NULL)); list_add_tail(&term->list, head); ALLOC_LIST(list); @@ -409,8 +409,8 @@ PE_NAME '-' PE_NAME ':' PE_NAME char sys_name[128]; struct tracepoint_name tracepoint; - snprintf(&sys_name, 128, "%s-%s", $1, $3); - tracepoint.sys = &sys_name; + snprintf(sys_name, sizeof(sys_name), "%s-%s", $1, $3); + tracepoint.sys = sys_name; tracepoint.event = $5; $$ = tracepoint; -- 2.34.1