From b0695670e35251a72f55bb51184361a097fe4faa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Mon, 19 Oct 2026 06:47:08 +0200 Subject: [PATCH] std.Target: further simplify cTypeBitSize() And fix long double size on x86_64-linux-android as a happy accident. --- lib/std/Target.zig | 126 ++++++++++++++++++--------------------------- 1 file changed, 51 insertions(+), 75 deletions(-) diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 396f6a1cbe1dc704ed18b8d6c4f5a73dba3970c5..ff73a47049c4a8986c049883bd3a635e74c2de4e 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -3333,88 +3333,64 @@ pub fn cTypeBitSize(target: *const Target, c_type: CType) ?u16 { .wasi, .emscripten, - => switch (target.cpu.arch) { - .mips64, - .mips64el, - => switch (c_type) { - .char => 8, - .short, .ushort => 16, - .int, .uint, .float => 32, - .long, .ulong => switch (target.abi) { - .gnuabin32, .muslabin32, .abin32 => 32, - else => 64, + => switch (c_type) { + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, + .long, .ulong => target.ptrBitWidth(), + .longlong, .ulonglong, .double => 64, + .longdouble => switch (target.cpu.arch) { + .x86, + .x86_64, + => switch (target.abi) { + .android => 64, + else => 80, }, - .longlong, .ulonglong, .double => 64, - .longdouble => 128, - }, - .x86_64 => switch (c_type) { - .char => 8, - .short, .ushort => 16, - .int, .uint, .float => 32, - .long, .ulong => switch (target.abi) { - .gnux32, .muslx32, .x32 => 32, - else => 64, - }, - .longlong, .ulonglong, .double => 64, - .longdouble => 80, - }, - else => switch (c_type) { - .char => 8, - .short, .ushort => 16, - .int, .uint, .float => 32, - .long, .ulong => target.ptrBitWidth(), - .longlong, .ulonglong, .double => 64, - .longdouble => switch (target.cpu.arch) { - .x86 => switch (target.abi) { - .android => 64, - else => 80, - }, - .powerpc, - .powerpcle, - => switch (target.abi) { - .musleabi, .musleabihf => 64, - else => switch (target.os.tag) { - .netbsd, - .openbsd, - => 64, - else => 128, - }, + .powerpc, + .powerpcle, + => switch (target.abi) { + .musleabi, .musleabihf => 64, + else => switch (target.os.tag) { + .netbsd, + .openbsd, + => 64, + else => 128, }, + }, - .powerpc64, - .powerpc64le, - => switch (target.abi) { - .musl => 64, - else => switch (target.os.tag) { - .freebsd, - .openbsd, - => 64, - else => 128, - }, + .powerpc64, + .powerpc64le, + => switch (target.abi) { + .musl => 64, + else => switch (target.os.tag) { + .freebsd, + .openbsd, + => 64, + else => 128, }, + }, - .alpha, - .riscv32, - .riscv32be, - .riscv64, - .riscv64be, - .aarch64, - .aarch64_be, - .s390x, - .mips64, - .mips64el, - .sparc, - .sparc64, - .wasm32, - .wasm64, - .loongarch32, - .loongarch64, - .ve, - => 128, + .alpha, + .riscv32, + .riscv32be, + .riscv64, + .riscv64be, + .aarch64, + .aarch64_be, + .s390x, + .mips64, + .mips64el, + .sparc, + .sparc64, + .wasm32, + .wasm64, + .loongarch32, + .loongarch64, + .ve, + => 128, - else => 64, - }, + else => 64, }, }, -- 2.54.0