Commit 4c798bb0bd

Alex Rønne Petersen <alex@alexrp.com>
2025-09-26 16:01:43
std.builtin: define VaList as `struct { __ap: *anyopaque }` for Arm per AAPCS
1 parent be24821
Changed files (1)
lib
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,