Fix Clang CFI type mismatch in src/arm/linux/cpuinfo.c (#403)
Change parse_line signature to accept void* and cast inside.
Remove the cast when passing it to cpuinfo_linux_parse_multiline_file.
Fixes #402
Co-authored-by: Nikita Shulga <nikita.shulga@gmail.com>
diff --git a/src/arm/linux/cpuinfo.c b/src/arm/linux/cpuinfo.c
index c627dc8..5e4d933 100644
--- a/src/arm/linux/cpuinfo.c
+++ b/src/arm/linux/cpuinfo.c
@@ -729,11 +729,8 @@
* Revision : 0020
* Serial : 0000000000000000
*/
-static bool parse_line(
- const char* line_start,
- const char* line_end,
- struct proc_cpuinfo_parser_state state[restrict static 1],
- uint64_t line_number) {
+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;
@@ -1024,6 +1021,5 @@
.max_processors_count = max_processors_count,
.processors = processors,
};
- return cpuinfo_linux_parse_multiline_file(
- "/proc/cpuinfo", BUFFER_SIZE, (cpuinfo_line_callback)parse_line, &state);
+ return cpuinfo_linux_parse_multiline_file("/proc/cpuinfo", BUFFER_SIZE, parse_line, &state);
}