aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-09-25 17:52:50 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-09-25 17:54:52 -0700
commit04366576ea4be4959b596ebff7041d17e18d08d8 (patch)
tree94dceb8f1e846e09356e5b40b884791a7cc314eb /src/Sema.zig
parent15f55b2805541276f491d255f60f501c8cbd1191 (diff)
downloadzig-04366576ea4be4959b596ebff7041d17e18d08d8.tar.gz
zig-04366576ea4be4959b596ebff7041d17e18d08d8.zip
stage2: implement `@sizeOf` for non-packed structs
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index 41fabbfacd..1001b388a9 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -6575,6 +6575,7 @@ fn zirSizeOf(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index) CompileErro
const src = inst_data.src();
const operand_src: LazySrcLoc = .{ .node_offset_builtin_call_arg0 = inst_data.src_node };
const operand_ty = try sema.resolveType(block, operand_src, inst_data.operand);
+ try sema.resolveTypeLayout(block, src, operand_ty);
const target = sema.mod.getTarget();
const abi_size = switch (operand_ty.zigTypeTag()) {
.Fn => unreachable,
@@ -10846,9 +10847,6 @@ pub fn resolveTypeLayout(
ty: Type,
) CompileError!void {
switch (ty.zigTypeTag()) {
- .Pointer => {
- return sema.resolveTypeLayout(block, src, ty.elemType());
- },
.Struct => {
const resolved_ty = try sema.resolveTypeFields(block, src, ty);
const struct_obj = resolved_ty.castTag(.@"struct").?.data;