commit ab423bd63cd0c61e7299dc0b73cba4d83dffdd38 (tree)
parent ee1630beeaaa24cb6d65631517afabc0621b902f
Author: Jakub Konka <kubkon@jakubkonka.com>
Date: Tue, 5 Dec 2023 16:35:08 +0100
elf: exit early with an error when parsing or init failed when flushing object/archive
Diffstat:
1 file changed, 6 insertions(+), 0 deletions(-)
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
@@ -1331,6 +1331,8 @@ pub fn flushStaticLib(self: *Elf, comp: *Compilation, module_obj_path: ?[]const
};
}
+ if (self.misc_errors.items.len > 0) return error.FlushFailure;
+
// First, we flush relocatable object file generated with our backends.
if (self.zigObjectPtr()) |zig_object| {
zig_object.resolveSymbols(self);
@@ -1468,11 +1470,15 @@ pub fn flushObject(self: *Elf, comp: *Compilation, module_obj_path: ?[]const u8)
};
}
+ if (self.misc_errors.items.len > 0) return error.FlushFailure;
+
// Init all objects
for (self.objects.items) |index| {
try self.file(index).?.object.init(self);
}
+ if (self.misc_errors.items.len > 0) return error.FlushFailure;
+
// Now, we are ready to resolve the symbols across all input files.
// We will first resolve the files in the ZigObject, next in the parsed
// input Object files.