diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-12-21 18:20:33 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-12-21 18:21:42 -0700 |
| commit | 2cbeb85a96af25f2718a604aa2bec4f76dd85018 (patch) | |
| tree | efc5b9f311f53440d656b006d7c5ecec3a0443f6 | |
| parent | 2e887452d5cd8e912f6bdb36bd0da6faee383465 (diff) | |
| download | zig-2cbeb85a96af25f2718a604aa2bec4f76dd85018.tar.gz zig-2cbeb85a96af25f2718a604aa2bec4f76dd85018.zip | |
stage2: error check for mixing --import-table and --export-table
is moved from the linker to the frontend. This is a follow-up from
4cb2f11693b1bf13770b8ad6a8b8a1e37101a516.
| -rw-r--r-- | src/Compilation.zig | 4 | ||||
| -rw-r--r-- | src/link/Wasm.zig | 6 | ||||
| -rw-r--r-- | src/main.zig | 3 |
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; |
