Can I disable the safety checking tag on a bare union without packed?

This works:

// safe union
pub const SafeUnion = union {
    int: i64,
    float: f64,
};

// unsafe union
pub const UnsafeUnion = blk: {
    @setRuntimeSafety(false);
    break :blk union {
        int: i64,
        float: f64,
    };
};

test "safe and unsafe" {
    std.debug.print("\nsize of SafeUnion is {d}\n", .{@sizeOf(SafeUnion)});
    std.debug.print("size of UnsafeUnion is {d}\n", .{@sizeOf(UnsafeUnion)});
}
4 Likes