zig
zig copied to clipboard
x86_64: packed semantics are not robust
Zig Version
0.14.0-dev.3224+5ab511307
Steps to Reproduce and Observed Behavior
const std = @import("std");
test {
var s = S.init();
_ = &s;
}
const S = packed struct {
a: u48,
b: u80,
pub fn init() S {
var a: u48 = 0;
var b: u80 = 0;
_ = .{ &a, &b };
return S{
.a = a,
.b = b,
};
}
};
$ zig-master test ./test.zig -fno-llvm -fno-lld
test.zig:12:9: error: TODO airAggregateInit implement packed structs with large fields
pub fn init() S {
~~~~^~~~~~~~~~~
Expected Behavior
all tests passed
Instruction selection of bitcast, load, store, store_safe, struct_field_val, and aggregate_init on packed pointers/fields need to be rewritten in the self-hosted x86_64 backend.