]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
perf annotate: Fix Clang build by adding block in switch case
authorJames Clark <james.clark@linaro.org>
Wed, 22 Oct 2025 11:02:40 +0000 (12:02 +0100)
committerNamhyung Kim <namhyung@kernel.org>
Thu, 23 Oct 2025 21:28:58 +0000 (14:28 -0700)
commitf2195c5b435e59f39f897780751584bb04c7464b
tree9db96c59dbf1c22794bcdae4bd599210042bd116
parenta1d8548c23076c66d96647f5f6f25aa43567f247
perf annotate: Fix Clang build by adding block in switch case

Clang and GCC disagree with what constitutes a "declaration after
statement". GCC allows declarations in switch cases without an extra
block, as long as it's immediately after the label. Clang does not.
Unfortunately this is the case even in the latest versions of both
compilers. The only option that makes them behave in the same way is
-Wpedantic, which can't be enabled in Perf because of the number of
warnings it generates.

Add a block to fix the Clang build, which is the only thing we can do.

Fixes the build error:

  ui/browsers/annotate.c:999:4: error: expected expression
  struct annotation_line *al = NULL;

  ui/browsers/annotate.c:1008:4: error: use of undeclared identifier 'al'
  al = annotated_source__get_line(notes->src, offset);

  ui/browsers/annotate.c:1009:24: error: use of undeclared identifier 'al'
  browser->curr_hot = al ? &al->rb_node : NULL;

  ui/browsers/annotate.c:1009:30: error: use of undeclared identifier 'al'
  browser->curr_hot = al ? &al->rb_node : NULL;

  ui/browsers/annotate.c:1000:8: error: mixing declarations and code is incompatible with standards before C99 [-Werror,-Wdeclaration-after-statement]
  s64 offset = annotate_browser__curr_hot_offset(browser);

Fixes: ad83f3b7155d ("perf c2c annotate: Start from the contention line")
Signed-off-by: James Clark <james.clark@linaro.org>
Reviewed-by: Ian Rogers <irogers@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/ui/browsers/annotate.c