Hi Mark,

On Mon, Jul 20, 2026 at 11:25 AM Mark Wielaard <[email protected]> wrote:
>
> clang 22 complains about a label followed by a declaration in
> src/stacktrace.c because it doesn't default to C23.
>
> src/stacktrace.c:913:3: error: label followed by a declaration is a
> C23 extension [-Werror,-Wc23-extensions]
>   913 |   bool is_abi32 = (regs->abi == PERF_SAMPLE_REGS_ABI_32);
>       |   ^
>
> This isn't a problem with gcc because it is a GNU extension.
>
>         * src/stacktrace.c (sysprof_find_dwfl): But declarations after
>         reuse label into block.

LGTM.

Aaron

>
> Signed-off-by: Mark Wielaard <[email protected]>
> ---
>  src/stacktrace.c | 21 ++++++++++++---------
>  1 file changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/src/stacktrace.c b/src/stacktrace.c
> index 83fb3d96455e..a7949ae14c83 100644
> --- a/src/stacktrace.c
> +++ b/src/stacktrace.c
> @@ -910,15 +910,18 @@ sysprof_find_dwfl (struct sysprof_unwind_info *sui,
>      }
>
>   reuse:
> -  bool is_abi32 = (regs->abi == PERF_SAMPLE_REGS_ABI_32);
> -  sui->last_sp = regs->regs[sp_reg_index(default_ebl, is_abi32)];
> -  sui->last_base = sui->last_sp;
> -
> -  if (show_frames) {
> -    fprintf(stderr, "sysprof_find_dwfl pid %lld%s: size=%ld%s pc=%lx 
> sp=%lx+(%lx)\n",
> -           (long long) pid, cached ? " (cached)" : "",
> -           ev->size, is_abi32 ? " (32-bit)" : "",
> -           regs->regs[8], sui->last_base, (long)0);
> +  {
> +    bool is_abi32 = (regs->abi == PERF_SAMPLE_REGS_ABI_32);
> +    sui->last_sp = regs->regs[sp_reg_index(default_ebl, is_abi32)];
> +    sui->last_base = sui->last_sp;
> +
> +    if (show_frames) {
> +      fprintf(stderr,
> +             "sysprof_find_dwfl pid %lld%s: size=%ld%s pc=%lx 
> sp=%lx+(%lx)\n",
> +             (long long) pid, cached ? " (cached)" : "",
> +             ev->size, is_abi32 ? " (32-bit)" : "",
> +             regs->regs[8], sui->last_base, (long)0);
> +    }
>    }
>
>    if (!cached)
> --
> 2.54.0
>

Reply via email to