authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-08-28 07:00:45+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-08-29 11:40:20+02:00
log8330065a99e057152a7c717066f66adbc622a04b
tree06a1b7200d9355da7c9d7c2f4444585cf75db629
parent8d1ca8ce7b21e6ae0b396a35f5fc69ac52560074

macho: report undefined via compiler errors in incremental driver


1 files changed, 1 insertions(+), 10 deletions(-)

src/link/MachO.zig+1-10
...@@ -428,21 +428,12 @@ pub fn flushModule(self: *MachO, comp: *Compilation, prog_node: *std.Progress.No...@@ -428,21 +428,12 @@ pub fn flushModule(self: *MachO, comp: *Compilation, prog_node: *std.Progress.No
428 var actions = std.ArrayList(ResolveAction).init(self.base.allocator);428 var actions = std.ArrayList(ResolveAction).init(self.base.allocator);
429 defer actions.deinit();429 defer actions.deinit();
430 try self.resolveSymbols(&actions);430 try self.resolveSymbols(&actions);
431 try self.reportUndefined();
431432
432 if (self.getEntryPoint() == null) {433 if (self.getEntryPoint() == null) {
433 self.error_flags.no_entry_point_found = true;434 self.error_flags.no_entry_point_found = true;
434 }435 }
435436
436 if (self.unresolved.count() > 0) {
437 for (self.unresolved.keys()) |index| {
438 // TODO: convert into compiler errors.
439 const global = self.globals.items[index];
440 const sym_name = self.getSymbolName(global);
441 log.err("undefined symbol reference '{s}'", .{sym_name});
442 }
443 return error.UndefinedSymbolReference;
444 }
445
446 for (actions.items) |action| switch (action.kind) {437 for (actions.items) |action| switch (action.kind) {
447 .none => {},438 .none => {},
448 .add_got => try self.addGotEntry(action.target),439 .add_got => try self.addGotEntry(action.target),