aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2018-09-14 00:37:54 -0400
committerAndrew Kelley <superjoe30@gmail.com>2018-09-14 00:38:22 -0400
commit3d38feded93cb2ccecf5ecb538c8957a965a891e (patch)
tree280a01fb2c02360887e83b43e4a78c1feca0cac9 /src
parent1e03cf1739c9c7407c4b3a56ee5f2705805c6a83 (diff)
downloadzig-3d38feded93cb2ccecf5ecb538c8957a965a891e.tar.gz
zig-3d38feded93cb2ccecf5ecb538c8957a965a891e.zip
fix tagged union with all void payloads but meaningful tag
closes #1322
Diffstat (limited to 'src')
-rw-r--r--src/codegen.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/codegen.cpp b/src/codegen.cpp
index d7d7223657..98bb06e6ee 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -4715,7 +4715,6 @@ static LLVMValueRef ir_render_err_wrap_payload(CodeGen *g, IrExecutable *executa
static LLVMValueRef ir_render_union_tag(CodeGen *g, IrExecutable *executable, IrInstructionUnionTag *instruction) {
ZigType *union_type = instruction->value->value.type;
- assert(union_type->data.unionation.gen_tag_index != SIZE_MAX);
ZigType *tag_type = union_type->data.unionation.tag_type;
if (!type_has_bits(tag_type))
@@ -4725,6 +4724,7 @@ static LLVMValueRef ir_render_union_tag(CodeGen *g, IrExecutable *executable, Ir
if (union_type->data.unionation.gen_field_count == 0)
return union_val;
+ assert(union_type->data.unionation.gen_tag_index != SIZE_MAX);
LLVMValueRef tag_field_ptr = LLVMBuildStructGEP(g->builder, union_val,
union_type->data.unionation.gen_tag_index, "");
ZigType *ptr_type = get_pointer_to_type(g, tag_type, false);