diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 608400e37e41cba8ed8b1a2fbd94041c9b57b5c8..b0329d1bbf8acc55af342ac5ff2b9388eb66fd89 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -3214,7 +3214,7 @@ pub fn cTypeByteSize(t: *const Target, c_type: CType) ?u16 { /// Returns `null` if no C ABI is defined for this target. pub fn cTypeBitSize(target: *const Target, c_type: CType) ?u16 { - switch (target.os.tag) { + return switch (target.os.tag) { .freestanding, .other, .ashetos, @@ -3222,49 +3222,49 @@ pub fn cTypeBitSize(target: *const Target, c_type: CType) ?u16 { .msp430, .x86_16, => switch (c_type) { - .char => return 8, - .short, .ushort, .int, .uint => return 16, - .float, .long, .ulong => return 32, - .longlong, .ulonglong, .double, .longdouble => return 64, + .char => 8, + .short, .ushort, .int, .uint => 16, + .float, .long, .ulong => 32, + .longlong, .ulonglong, .double, .longdouble => 64, }, .avr => switch (c_type) { - .char => return 8, - .short, .ushort, .int, .uint => return 16, - .long, .ulong, .float, .double, .longdouble => return 32, - .longlong, .ulonglong => return 64, + .char => 8, + .short, .ushort, .int, .uint => 16, + .long, .ulong, .float, .double, .longdouble => 32, + .longlong, .ulonglong => 64, }, .mips64, .mips64el, => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, .long, .ulong => switch (target.abi) { - .abin32 => return 32, - else => return 64, + .abin32 => 32, + else => 64, }, - .longlong, .ulonglong, .double => return 64, - .longdouble => return 128, + .longlong, .ulonglong, .double => 64, + .longdouble => 128, }, .x86_64 => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, .long, .ulong => switch (target.abi) { - .x32 => return 32, - else => return 64, + .x32 => 32, + else => 64, }, - .longlong, .ulonglong, .double => return 64, - .longdouble => return 80, + .longlong, .ulonglong, .double => 64, + .longdouble => 80, }, else => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, - .long, .ulong => return target.ptrBitWidth(), - .longlong, .ulonglong, .double => return 64, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, + .long, .ulong => target.ptrBitWidth(), + .longlong, .ulonglong, .double => 64, .longdouble => switch (target.cpu.arch) { - .x86 => return 80, + .x86 => 80, .alpha, .riscv32, @@ -3284,9 +3284,9 @@ pub fn cTypeBitSize(target: *const Target, c_type: CType) ?u16 { .loongarch32, .loongarch64, .ve, - => return 128, + => 128, - else => return 64, + else => 64, }, }, }, @@ -3313,60 +3313,60 @@ pub fn cTypeBitSize(target: *const Target, c_type: CType) ?u16 { .mips64, .mips64el, => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, .long, .ulong => switch (target.abi) { - .gnuabin32, .muslabin32, .abin32 => return 32, - else => return 64, + .gnuabin32, .muslabin32, .abin32 => 32, + else => 64, }, - .longlong, .ulonglong, .double => return 64, - .longdouble => return 128, + .longlong, .ulonglong, .double => 64, + .longdouble => 128, }, .x86_64 => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, .long, .ulong => switch (target.abi) { - .gnux32, .muslx32, .x32 => return 32, - else => return 64, + .gnux32, .muslx32, .x32 => 32, + else => 64, }, - .longlong, .ulonglong, .double => return 64, - .longdouble => return 80, + .longlong, .ulonglong, .double => 64, + .longdouble => 80, }, else => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, - .long, .ulong => return target.ptrBitWidth(), - .longlong, .ulonglong, .double => return 64, + .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 => return 64, - else => return 80, + .android => 64, + else => 80, }, .powerpc, .powerpcle, => switch (target.abi) { - .musleabi, .musleabihf => return 64, + .musleabi, .musleabihf => 64, else => switch (target.os.tag) { .netbsd, .openbsd, - => return 64, - else => return 128, + => 64, + else => 128, }, }, .powerpc64, .powerpc64le, => switch (target.abi) { - .musl => return 64, + .musl => 64, else => switch (target.os.tag) { .freebsd, .openbsd, - => return 64, - else => return 128, + => 64, + else => 128, }, }, @@ -3386,43 +3386,43 @@ pub fn cTypeBitSize(target: *const Target, c_type: CType) ?u16 { .loongarch32, .loongarch64, .ve, - => return 128, + => 128, - else => return 64, + else => 64, }, }, }, .windows, .uefi => switch (target.cpu.arch) { .x86 => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, - .long, .ulong => return 32, - .longlong, .ulonglong, .double => return 64, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, + .long, .ulong => 32, + .longlong, .ulonglong, .double => 64, .longdouble => switch (target.abi) { - .gnu => return 80, - else => return 64, + .gnu => 80, + else => 64, }, }, .x86_64 => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, - .long, .ulong => return 32, - .longlong, .ulonglong, .double => return 64, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, + .long, .ulong => 32, + .longlong, .ulonglong, .double => 64, .longdouble => switch (target.abi) { - .gnu => return 80, - else => return 64, + .gnu => 80, + else => 64, }, }, else => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, - .long, .ulong => return 32, - .longlong, .ulonglong, .double => return 64, - .longdouble => return 64, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, + .long, .ulong => 32, + .longlong, .ulonglong, .double => 64, + .longdouble => 64, }, }, @@ -3434,113 +3434,113 @@ pub fn cTypeBitSize(target: *const Target, c_type: CType) ?u16 { .visionos, .watchos, => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, .long, .ulong => switch (target.cpu.arch) { - .x86_64 => return 64, + .x86_64 => 64, else => switch (target.abi) { - .ilp32 => return 32, - else => return 64, + .ilp32 => 32, + else => 64, }, }, - .longlong, .ulonglong, .double => return 64, + .longlong, .ulonglong, .double => 64, .longdouble => switch (target.cpu.arch) { - .x86_64 => return 80, - else => return 64, + .x86_64 => 80, + else => 64, }, }, .nvcl, .cuda => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, .long, .ulong => switch (target.cpu.arch) { - .nvptx => return 32, - .nvptx64 => return 64, - else => return 64, + .nvptx => 32, + .nvptx64 => 64, + else => 64, }, - .longlong, .ulonglong, .double => return 64, - .longdouble => return 64, + .longlong, .ulonglong, .double => 64, + .longdouble => 64, }, .amdhsa, .amdpal, .mesa3d => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, - .long, .ulong, .longlong, .ulonglong, .double => return 64, - .longdouble => return 128, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, + .long, .ulong, .longlong, .ulonglong, .double => 64, + .longdouble => 128, }, .opencl, .vulkan => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, - .long, .ulong, .double => return 64, - .longlong, .ulonglong => return 128, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, + .long, .ulong, .double => 64, + .longlong, .ulonglong => 128, // Note: The OpenCL specification does not guarantee a particular size for long double, // but clang uses 128 bits. - .longdouble => return 128, + .longdouble => 128, }, .@"3ds" => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float, .long, .ulong => return 32, - .longlong, .ulonglong, .double, .longdouble => return 64, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float, .long, .ulong => 32, + .longlong, .ulonglong, .double, .longdouble => 64, }, .wiiu => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float, .long, .ulong => return 32, - .longlong, .ulonglong, .double, .longdouble => return 64, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float, .long, .ulong => 32, + .longlong, .ulonglong, .double, .longdouble => 64, }, .@"switch" => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, - .long, .ulong, .longlong, .ulonglong, .double => return 64, - .longdouble => return 128, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, + .long, .ulong, .longlong, .ulonglong, .double => 64, + .longdouble => 128, }, .psx => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .long, .ulong, .float => return 32, - .longlong, .ulonglong, .double, .longdouble => return 64, + .char => 8, + .short, .ushort => 16, + .int, .uint, .long, .ulong, .float => 32, + .longlong, .ulonglong, .double, .longdouble => 64, }, .ps4, .ps5 => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, - .long, .ulong => return 64, - .longlong, .ulonglong, .double => return 64, - .longdouble => return 80, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, + .long, .ulong => 64, + .longlong, .ulonglong, .double => 64, + .longdouble => 80, }, .psp, .vita => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint, .float => return 32, - .long, .ulong => return 64, - .longlong, .ulonglong, .double, .longdouble => return 64, + .char => 8, + .short, .ushort => 16, + .int, .uint, .float => 32, + .long, .ulong => 64, + .longlong, .ulonglong, .double, .longdouble => 64, }, .tios => switch (c_type) { - .char => return 8, - .short, .ushort => return 16, - .int, .uint => return 24, - .long, .ulong, .float, .double => return 32, - .longlong, .ulonglong, .longdouble => return 64, + .char => 8, + .short, .ushort => 16, + .int, .uint => 24, + .long, .ulong, .float, .double => 32, + .longlong, .ulonglong, .longdouble => 64, }, - .opengl => return null, + .opengl => null, .ps3, .contiki, .managarm, => @panic("specify the C integer and float type sizes for this OS"), - } + }; } /// Returns `null` if no C ABI is defined for this target.