aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-12-18 15:21:03 -0800
committerAndrew Kelley <andrew@ziglang.org>2025-01-15 15:11:35 -0800
commit3c70392210d3bd68943b3ebd09612fddfe52b082 (patch)
tree509efea86b648f1e5dbb2281380cd3ab8f294b71
parent85b53730fe248cf02468a213903ddac4bffe8234 (diff)
downloadzig-3c70392210d3bd68943b3ebd09612fddfe52b082.tar.gz
zig-3c70392210d3bd68943b3ebd09612fddfe52b082.zip
wasm linker: add __zig_error_name_table data when needed
-rw-r--r--src/link/Wasm/Flush.zig5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/link/Wasm/Flush.zig b/src/link/Wasm/Flush.zig
index 7369d031c9..a488a6310d 100644
--- a/src/link/Wasm/Flush.zig
+++ b/src/link/Wasm/Flush.zig
@@ -134,7 +134,7 @@ pub fn finish(f: *Flush, wasm: *Wasm) !void {
// Merge and order the data segments. Depends on garbage collection so that
// unused segments can be omitted.
- try wasm.data_segments.ensureUnusedCapacity(gpa, wasm.object_data_segments.items.len);
+ try wasm.data_segments.ensureUnusedCapacity(gpa, wasm.object_data_segments.items.len + 1);
for (wasm.object_data_segments.items, 0..) |*ds, i| {
if (!ds.flags.alive) continue;
const data_segment_index: Wasm.ObjectDataSegmentIndex = @enumFromInt(i);
@@ -143,6 +143,9 @@ pub fn finish(f: *Flush, wasm: *Wasm) !void {
.object = data_segment_index,
}), @as(u32, undefined));
}
+ if (wasm.error_name_table_ref_count > 0) {
+ wasm.data_segments.putAssumeCapacity(.__zig_error_name_table, @as(u32, undefined));
+ }
try wasm.functions.ensureUnusedCapacity(gpa, 3);