diff options
| author | SuperAuguste <19855629+SuperAuguste@users.noreply.github.com> | 2023-12-10 05:10:58 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2024-01-29 13:09:17 -0800 |
| commit | a479fd313248a55273a17de5f9af6b82abdb0be4 (patch) | |
| tree | bef7ec6d1fd27407f18f19f3dde973ff639da507 /src/type.zig | |
| parent | f4f8036ec048daa072c7caa72edd320c85bf426c (diff) | |
| download | zig-a479fd313248a55273a17de5f9af6b82abdb0be4.tar.gz zig-a479fd313248a55273a17de5f9af6b82abdb0be4.zip | |
Fix some comptime packed struct issues
Co-authored-by: Veikka Tuominen <git@vexu.eu>
Diffstat (limited to 'src/type.zig')
| -rw-r--r-- | src/type.zig | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/type.zig b/src/type.zig index 64a85aaa2d..067deecfea 100644 --- a/src/type.zig +++ b/src/type.zig @@ -1607,8 +1607,12 @@ pub const Type = struct { .type_info => unreachable, }, .struct_type => |struct_type| { - if (struct_type.layout == .Packed) { - if (opt_sema) |sema| try sema.resolveTypeLayout(ty); + const is_packed = struct_type.layout == .Packed; + if (opt_sema) |sema| { + try sema.resolveTypeFields(ty); + if (is_packed) try sema.resolveTypeLayout(ty); + } + if (is_packed) { return try Type.fromInterned(struct_type.backingIntType(ip).*).bitSizeAdvanced(mod, opt_sema); } return (try ty.abiSizeAdvanced(mod, strat)).scalar * 8; |
