diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-11-16 01:11:12 +0200 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-11-16 01:13:35 +0200 |
| commit | 28cbe5e92a36c81177dbcd2f33fc792468c08304 (patch) | |
| tree | 4c75818b2b300ece49cc43947f7b850dfb483007 /src/codegen/llvm.zig | |
| parent | fe6249348f615c975a2db53bb0c93f83bd2a281b (diff) | |
| download | zig-28cbe5e92a36c81177dbcd2f33fc792468c08304.tar.gz zig-28cbe5e92a36c81177dbcd2f33fc792468c08304.zip | |
Sema+llvm: improve handling of namespace-like unions
Closes #13557
Diffstat (limited to 'src/codegen/llvm.zig')
| -rw-r--r-- | src/codegen/llvm.zig | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 763dde170b..af9dcacf48 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -2137,7 +2137,8 @@ pub const Object = struct { break :blk fwd_decl; }; - if (!ty.hasRuntimeBitsIgnoreComptime()) { + const union_obj = ty.cast(Type.Payload.Union).?.data; + if (!union_obj.haveFieldTypes() or !ty.hasRuntimeBitsIgnoreComptime()) { const union_di_ty = try o.makeEmptyNamespaceDIType(owner_decl_index); dib.replaceTemporary(fwd_decl, union_di_ty); // The recursive call to `lowerDebugType` via `makeEmptyNamespaceDIType` @@ -2147,7 +2148,6 @@ pub const Object = struct { } const layout = ty.unionGetLayout(target); - const union_obj = ty.cast(Type.Payload.Union).?.data; if (layout.payload_size == 0) { const tag_di_ty = try o.lowerDebugType(union_obj.tag_ty, .full); |
