aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-12-03 19:36:26 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-12-04 15:57:40 -0700
commitaa98517b3e4df84eb28fe1f3352e34407ef51343 (patch)
tree3ed96c9c4d1371859336b4484864942b49b504cb /src
parent4aae0b09cfdc444a0b4e98d3ed7f83bfe421c06f (diff)
downloadzig-aa98517b3e4df84eb28fe1f3352e34407ef51343.tar.gz
zig-aa98517b3e4df84eb28fe1f3352e34407ef51343.zip
CBE: aggregate_init: resolve all operands before processing Liveness
Diffstat (limited to 'src')
-rw-r--r--src/codegen/c.zig6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index ac22ac3fa6..d2ea876065 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -6244,10 +6244,12 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue {
const gpa = f.object.dg.gpa;
const resolved_elements = try gpa.alloc(CValue, elements.len);
defer gpa.free(resolved_elements);
+ for (elements) |element, i| {
+ resolved_elements[i] = try f.resolveInst(element);
+ }
{
var bt = iterateBigTomb(f, inst);
- for (elements) |element, i| {
- resolved_elements[i] = try f.resolveInst(element);
+ for (elements) |element| {
try bt.feed(element);
}
}