std.builtin: define VaList as struct { __ap: *anyopaque } for Arm per AAPCS

This commit is contained in:
Alex Rønne Petersen 2025-09-26 16:01:43 +02:00
parent be24821464
commit 4c798bb0bd
No known key found for this signature in database

View File

@ -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,