From: Mark Wielaard Date: Mon, 20 Jul 2026 15:14:00 +0000 (+0200) Subject: stacktrace: label followed by a declaration is a C23 extension X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=27d4734003bd5578a05d45aa428b954cdf962128;p=thirdparty%2Felfutils.git stacktrace: label followed by a declaration is a C23 extension 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. Signed-off-by: Mark Wielaard --- diff --git a/src/stacktrace.c b/src/stacktrace.c index 83fb3d96..a7949ae1 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)