From 4c798bb0bd0043459f5b979ab3dfaee9a6f5ac97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Fri, 26 Sep 2025 16:01:43 +0200 Subject: [PATCH] std.builtin: define VaList as `struct { __ap: *anyopaque }` for Arm per AAPCS --- lib/std/builtin.zig | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig index e942f9877f..ca7d9e251a 100644 --- a/lib/std/builtin.zig +++ b/lib/std/builtin.zig @@ -844,6 +844,12 @@ pub const VaListAarch64 = extern struct { __vr_offs: c_int, }; +/// This data structure is used by the Zig language code generation and +/// therefore must be kept in sync with the compiler implementation. +pub const VaListArm = extern struct { + __ap: *anyopaque, +}; + /// This data structure is used by the Zig language code generation and /// therefore must be kept in sync with the compiler implementation. pub const VaListHexagon = extern struct { @@ -899,10 +905,7 @@ pub const VaList = switch (builtin.cpu.arch) { .stage2_llvm => @compileError("disabled due to miscompilations"), }, }, - .arm, .armeb, .thumb, .thumbeb => switch (builtin.os.tag) { - .ios, .macos, .tvos, .watchos, .visionos => *u8, - else => *anyopaque, - }, + .arm, .armeb, .thumb, .thumbeb => VaListArm, .amdgcn => *u8, .avr => *anyopaque, .bpfel, .bpfeb => *anyopaque,