aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
authorLemonBoy <thatlemon@gmail.com>2019-10-10 10:47:59 +0200
committerAndrew Kelley <andrew@ziglang.org>2019-10-10 13:57:48 -0400
commit6cbb732b59d1ded92c7272a8b06f645e1c8acfd2 (patch)
tree2e8e256c26ffd1bc2c7d58850588696ee4b9f857 /src/ir.cpp
parent4e81df12c3dae2ae67ef25fcfe65e8db724e84f3 (diff)
downloadzig-6cbb732b59d1ded92c7272a8b06f645e1c8acfd2.tar.gz
zig-6cbb732b59d1ded92c7272a8b06f645e1c8acfd2.zip
Extern unions should not trigger active field check
Fixes #3378
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index 8fecbf7a18..7dd141423c 100644
--- a/src/ir.cpp
+++ b/src/ir.cpp
@@ -17951,7 +17951,7 @@ static IrInstruction *ir_analyze_container_field_ptr(IrAnalyze *ira, Buf *field_
union_val->special = ConstValSpecialStatic;
bigint_init_bigint(&union_val->data.x_union.tag, &field->enum_field->value);
union_val->data.x_union.payload = payload_val;
- } else {
+ } else if (bare_type->data.unionation.layout != ContainerLayoutExtern) {
TypeUnionField *actual_field = find_union_field_by_tag(bare_type, &union_val->data.x_union.tag);
if (actual_field == nullptr)
zig_unreachable();