motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit 00097c3bb81915913ce8afa1ae529cf8dd85f7a5 (tree)
parent a60810b5a31f7c3a9d1b1f5152c889e45d9ee2f7
Author: Alex Rønne Petersen <alex@alexrp.com>
Date:   Wed,  7 Aug 2024 01:57:23 +0200

std.Target: Some corrections and additions to charSignedness().

Sourced from GCC backends and some manual testing with clang.

Diffstat:
Mlib/std/Target.zig | 26+++++++++++++++-----------
1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/lib/std/Target.zig b/lib/std/Target.zig @@ -1932,26 +1932,30 @@ pub fn stackAlignment(target: Target) u16 { /// Note that char signedness is implementation-defined and many compilers provide /// an option to override the default signedness e.g. GCC's -funsigned-char / -fsigned-char pub fn charSignedness(target: Target) std.builtin.Signedness { - switch (target.cpu.arch) { - .aarch64, - .aarch64_be, + if (target.isDarwin() or target.os.tag == .windows or target.os.tag == .uefi) return .signed; + + return switch (target.cpu.arch) { .arm, .armeb, .thumb, .thumbeb, - => return if (target.os.tag.isDarwin() or target.os.tag == .windows) .signed else .unsigned, - .powerpc, .powerpc64 => return if (target.os.tag.isDarwin()) .signed else .unsigned, + .aarch64, + .aarch64_be, + .arc, + .csky, + .msp430, + .powerpc, .powerpcle, + .powerpc64, .powerpc64le, .s390x, - .xcore, - .arc, - .msp430, .riscv32, .riscv64, - => return .unsigned, - else => return .signed, - } + .xcore, + .xtensa, + => .unsigned, + else => .signed, + }; } pub const CType = enum {