zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit f7fea080b25f932b352d38f126e0a179c5163f68 (tree)
parent bd5a8f86a120093b126cfbde41e002dae161e883
Author: Jakub Konka <kubkon@jakubkonka.com>
Date:   Fri,  9 Dec 2022 16:21:48 +0100

macho+zld: skip atomless synthetic globals in dead_strip

They are implicitly marked live.

Diffstat:
Msrc/link/MachO/dead_strip.zig | 3++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/link/MachO/dead_strip.zig b/src/link/MachO/dead_strip.zig @@ -58,7 +58,8 @@ fn collectRoots(zld: *Zld, roots: *AtomTable) !void { const sym = zld.getSymbol(global); if (sym.undf()) continue; - const object = zld.objects.items[global.getFile().?]; + const file = global.getFile() orelse continue; // synthetic globals are atomless + const object = zld.objects.items[file]; const atom_index = object.getAtomIndexForSymbol(global.sym_index).?; // panic here means fatal error _ = try roots.getOrPut(atom_index);