mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 12:59:04 +00:00
behavior: test @bitCast of packed struct of bools
This seems to have resolved itself now. Tested on x86_64 using debug optimize mode. Closes #9851
This commit is contained in:
parent
cb5a6be41a
commit
2583a39fb6
@ -459,3 +459,47 @@ test "bitcast nan float does modify signaling bit" {
|
||||
try expectEqual(math.nan_u128, @as(u128, @bitCast(snan_f128_var)));
|
||||
try expectEqual(math.nan_u128, bitCastWrapper128(snan_f128_var));
|
||||
}
|
||||
|
||||
test "@bitCast of packed struct of bools all true" {
|
||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
|
||||
|
||||
const P = packed struct {
|
||||
b0: bool,
|
||||
b1: bool,
|
||||
b2: bool,
|
||||
b3: bool,
|
||||
};
|
||||
var p = std.mem.zeroes(P);
|
||||
p.b0 = true;
|
||||
p.b1 = true;
|
||||
p.b2 = true;
|
||||
p.b3 = true;
|
||||
try expect(@as(u8, @as(u4, @bitCast(p))) == 15);
|
||||
}
|
||||
|
||||
test "@bitCast of packed struct of bools all false" {
|
||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
|
||||
|
||||
const P = packed struct {
|
||||
b0: bool,
|
||||
b1: bool,
|
||||
b2: bool,
|
||||
b3: bool,
|
||||
};
|
||||
var p = std.mem.zeroes(P);
|
||||
p.b0 = false;
|
||||
p.b1 = false;
|
||||
p.b2 = false;
|
||||
p.b3 = false;
|
||||
try expect(@as(u8, @as(u4, @bitCast(p))) == 0);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user