aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/llvm.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-02-26 22:57:05 +0200
committerAndrew Kelley <andrew@ziglang.org>2022-02-26 18:44:23 -0500
commitbf3c88b68d9f8042b79b7d69d401429811d9de7c (patch)
tree7efd2e71a3b105adf417c831b75aa23b7637af35 /src/codegen/llvm.zig
parent058e482247c73ecb6404c7c1e3d2194f4aa9e059 (diff)
downloadzig-bf3c88b68d9f8042b79b7d69d401429811d9de7c.tar.gz
zig-bf3c88b68d9f8042b79b7d69d401429811d9de7c.zip
stage2: various fixes to get one test passing
* resolve error sets before merging them * implement tupleFieldPtr * make ret_ptr behave like alloc with zero sized types in llvm backend
Diffstat (limited to 'src/codegen/llvm.zig')
-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 51bb713ed5..bc5f5ca7c7 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -4025,7 +4025,7 @@ pub const FuncGen = struct {
if (self.liveness.isUnused(inst)) return null;
const ptr_ty = self.air.typeOfIndex(inst);
const ret_ty = ptr_ty.childType();
- if (!ret_ty.isFnOrHasRuntimeBits()) return null;
+ if (!ret_ty.isFnOrHasRuntimeBits()) return self.dg.lowerPtrToVoid(ptr_ty);
if (self.ret_ptr) |ret_ptr| return ret_ptr;
const ret_llvm_ty = try self.dg.llvmType(ret_ty);
const target = self.dg.module.getTarget();
@@ -4845,6 +4845,7 @@ pub const FuncGen = struct {
struct_ptr_ty: Type,
field_index: u32,
) !?*const llvm.Value {
+ if (self.liveness.isUnused(inst)) return null;
const struct_ty = struct_ptr_ty.childType();
switch (struct_ty.zigTypeTag()) {
.Struct => switch (struct_ty.containerLayout()) {