aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-12-21 20:34:27 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-12-21 20:34:27 -0700
commit88be5bd81decab792cdb5b749b4bb5cf6d71e877 (patch)
treef5eed00970c7e97581e8382ae37d08ef177d431f /src/codegen
parent06d751dbb3c9cc4e09f2eb7250a242dc6b2423bc (diff)
downloadzig-88be5bd81decab792cdb5b749b4bb5cf6d71e877.tar.gz
zig-88be5bd81decab792cdb5b749b4bb5cf6d71e877.zip
Sema: fix empty struct init
* Extract common logic between `zirStructInitEmpty` and `zirStructInit`. * `resolveTypeFields` additionally sets status to `have_layout` if the total number of fields is 0.
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/llvm.zig3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 78848bee28..02de622cf2 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -1487,7 +1487,6 @@ pub const DeclGen = struct {
return self.context.constStruct(&fields, fields.len, .False);
}
- const llvm_type = try self.llvmType(tv.ty);
if (!tv.ty.childType().hasCodeGenBits() or !decl.ty.hasCodeGenBits()) {
return self.lowerPtrToVoid(tv.ty);
}
@@ -1498,6 +1497,8 @@ pub const DeclGen = struct {
try self.resolveLlvmFunction(decl)
else
try self.resolveGlobalDecl(decl);
+
+ const llvm_type = try self.llvmType(tv.ty);
return llvm_val.constBitCast(llvm_type);
}