aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Compilation.zig4
-rw-r--r--src/link/Wasm.zig6
-rw-r--r--src/main.zig3
3 files changed, 9 insertions, 4 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 9a9ac5592a..6e3a955632 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -852,6 +852,10 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
// WASI-only. Resolve the optional exec-model option, defaults to command.
const wasi_exec_model = if (options.target.os.tag != .wasi) undefined else options.wasi_exec_model orelse .command;
+ if (options.linker_export_table and options.linker_import_table) {
+ return error.ExportTableAndImportTableConflict;
+ }
+
const comp: *Compilation = comp: {
// For allocations that have the same lifetime as Compilation. This arena is used only during this
// initialization and then is freed in deinit().
diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig
index c305959e56..35a1ac672a 100644
--- a/src/link/Wasm.zig
+++ b/src/link/Wasm.zig
@@ -1123,14 +1123,12 @@ fn linkWithLLD(self: *Wasm, comp: *Compilation) !void {
}
if (self.base.options.import_table) {
- if (self.base.options.export_table) {
- log.err("--import-table and --export-table may not be used together", .{});
- return error.InvalidArgs;
- }
+ assert(self.base.options.export_table);
try argv.append("--import-table");
}
if (self.base.options.export_table) {
+ assert(!self.base.options.import_table);
try argv.append("--export-table");
}
diff --git a/src/main.zig b/src/main.zig
index effcef40d9..3f2dbd0cc7 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -2543,6 +2543,9 @@ fn buildOutputType(
}
process.exit(1);
},
+ error.ExportTableAndImportTableConflict => {
+ fatal("--import-table and --export-table may not be used together", .{});
+ },
else => fatal("unable to create compilation: {s}", .{@errorName(err)}),
};
var comp_destroyed = false;