diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-02-26 22:57:05 +0200 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-02-26 18:44:23 -0500 |
| commit | bf3c88b68d9f8042b79b7d69d401429811d9de7c (patch) | |
| tree | 7efd2e71a3b105adf417c831b75aa23b7637af35 /src/codegen/llvm.zig | |
| parent | 058e482247c73ecb6404c7c1e3d2194f4aa9e059 (diff) | |
| download | zig-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.zig | 3 |
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()) { |
