diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-09-22 21:02:24 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-09-22 21:06:00 -0700 |
| commit | 736d14fd5fa5feea83a6efce8b606b62bf165033 (patch) | |
| tree | da48c5f1743c7418ed51c5f9769236529a988be8 /src/codegen | |
| parent | 0ec01e58b429e96d50411f74a0005076c24dda0c (diff) | |
| download | zig-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.zig | 7 |
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, |
