aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-09-22 21:02:24 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-09-22 21:06:00 -0700
commit736d14fd5fa5feea83a6efce8b606b62bf165033 (patch)
treeda48c5f1743c7418ed51c5f9769236529a988be8 /src/codegen
parent0ec01e58b429e96d50411f74a0005076c24dda0c (diff)
downloadzig-736d14fd5fa5feea83a6efce8b606b62bf165033.tar.gz
zig-736d14fd5fa5feea83a6efce8b606b62bf165033.zip
stage2: fix AstGen for some struct syntaxes
* AstGen: fix not emitting `struct_init_empty` when an explicit type is present in struct initialization syntax. * AstGen: these two syntaxes now lower to identical ZIR: - `var a = A{ .b = c };` - `var a = @as(A, .{ .b = c });` * Zir: clarify `auto_enum_tag` in the doc comments. * LLVM Backend: fix lowering of function return types when the type has 0 bits.
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/llvm.zig7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 0d3bca2b03..6daf720961 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -563,8 +563,13 @@ pub const DeclGen = struct {
}
}
+ const llvm_ret_ty = if (!return_type.hasCodeGenBits())
+ self.context.voidType()
+ else
+ try self.llvmType(return_type);
+
const fn_type = llvm.functionType(
- try self.llvmType(return_type),
+ llvm_ret_ty,
llvm_param_buffer.ptr,
llvm_params_len,
.False,