From 2fcf355d850167731f1986cb71402d062d78acf2 Mon Sep 17 00:00:00 2001 From: markhansen Date: Fri, 3 Jul 2026 13:27:40 +1000 Subject: [PATCH 1/2] Fix Clang CFI type mismatch in src/arm/linux/cpuinfo.c Change parse_line signature to accept void* and cast inside. Remove the cast when passing it to cpuinfo_linux_parse_multiline_file. Fixes #402 --- src/arm/linux/cpuinfo.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/arm/linux/cpuinfo.c b/src/arm/linux/cpuinfo.c index 081d9aab..96f9e4b8 100644 --- a/src/arm/linux/cpuinfo.c +++ b/src/arm/linux/cpuinfo.c @@ -726,8 +726,9 @@ struct proc_cpuinfo_parser_state { static bool parse_line( const char* line_start, const char* line_end, - struct proc_cpuinfo_parser_state state[restrict static 1], + void* context, uint64_t line_number) { + struct proc_cpuinfo_parser_state* restrict state = (struct proc_cpuinfo_parser_state*)context; /* Empty line. Skip. */ if (line_start == line_end) { return true; @@ -1019,5 +1020,5 @@ bool cpuinfo_arm_linux_parse_proc_cpuinfo( .processors = processors, }; return cpuinfo_linux_parse_multiline_file( - "/proc/cpuinfo", BUFFER_SIZE, (cpuinfo_line_callback)parse_line, &state); + "/proc/cpuinfo", BUFFER_SIZE, parse_line, &state); } From 974d333bd9ef5cad9c99a9fd4f35e0bb738890dd Mon Sep 17 00:00:00 2001 From: Nikita Shulga Date: Thu, 30 Jul 2026 10:18:52 -0700 Subject: [PATCH 2/2] Apply clang-format to ARM Linux parser fix --- src/arm/linux/cpuinfo.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/arm/linux/cpuinfo.c b/src/arm/linux/cpuinfo.c index 96f9e4b8..aa93099b 100644 --- a/src/arm/linux/cpuinfo.c +++ b/src/arm/linux/cpuinfo.c @@ -723,12 +723,8 @@ struct proc_cpuinfo_parser_state { * Revision : 0020 * Serial : 0000000000000000 */ -static bool parse_line( - const char* line_start, - const char* line_end, - void* context, - uint64_t line_number) { - struct proc_cpuinfo_parser_state* restrict state = (struct proc_cpuinfo_parser_state*)context; +static bool parse_line(const char* line_start, const char* line_end, void* context, uint64_t line_number) { + struct proc_cpuinfo_parser_state* restrict state = context; /* Empty line. Skip. */ if (line_start == line_end) { return true; @@ -1019,6 +1015,5 @@ bool cpuinfo_arm_linux_parse_proc_cpuinfo( .max_processors_count = max_processors_count, .processors = processors, }; - return cpuinfo_linux_parse_multiline_file( - "/proc/cpuinfo", BUFFER_SIZE, parse_line, &state); + return cpuinfo_linux_parse_multiline_file("/proc/cpuinfo", BUFFER_SIZE, parse_line, &state); }