From bf3c88b68d9f8042b79b7d69d401429811d9de7c Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Sat, 26 Feb 2022 22:57:05 +0200 Subject: 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 --- src/codegen/llvm.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/codegen/llvm.zig') 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()) { -- cgit v1.2.3