packed structs support comptime bitcasting
* `type_size_store` is no longer a thing. loading and storing a pointer to a value may dereference up to `@sizeOf(T)` bytes, even for integers such as `u24`. * fix `types_have_same_zig_comptime_repr` to not think that the same `ZigTypeId` means the `ConstExprValue` neccesarily has the same representation. * implement `buf_write_value_bytes` and `buf_read_value_bytes` for `ContainerLayoutPacked` closes #1120
This commit is contained in:
@@ -318,12 +318,12 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
|
||||
"reading past end of pointer casted array",
|
||||
\\comptime {
|
||||
\\ const array = "aoeu";
|
||||
\\ const slice = array[2..];
|
||||
\\ const slice = array[1..];
|
||||
\\ const int_ptr = @ptrCast(*const u24, slice.ptr);
|
||||
\\ const deref = int_ptr.*;
|
||||
\\}
|
||||
,
|
||||
".tmp_source.zig:5:26: error: attempt to read 3 bytes from [4]u8 at index 2 which is 2 bytes",
|
||||
".tmp_source.zig:5:26: error: attempt to read 4 bytes from [4]u8 at index 1 which is 3 bytes",
|
||||
);
|
||||
|
||||
cases.add(
|
||||
|
||||
Reference in New Issue
Block a user