Add regression test for a spurious import

This commit is contained in:
Alexander Theißen 2021-08-30 11:49:05 +02:00
parent dbb0fe9d80
commit 14cbb4b78d
No known key found for this signature in database
GPG Key ID: 5FDA6A83F2E59C97
3 changed files with 30 additions and 0 deletions

View File

@ -0,0 +1,7 @@
-include ../../run-make-fulldeps/tools.mk
# only-wasm32-bare
all:
$(RUSTC) main.rs -C overflow-checks=yes -C panic=abort -C lto -C opt-level=z --target wasm32-unknown-unknown
$(NODE) verify.js $(TMPDIR)/main.wasm

View File

@ -0,0 +1,14 @@
#![crate_type = "cdylib"]
#![no_std]
#[panic_handler]
fn my_panic(_info: &core::panic::PanicInfo) -> ! {
loop {}
}
#[no_mangle]
pub fn multer(a: i128, b: i128) -> i128 {
// Trigger usage of the __multi3 compiler intrinsic which then leads to an imported
// panic function in case of a bug. We verify that no imports exist in our verifier.
a * b
}

View File

@ -0,0 +1,9 @@
const fs = require('fs');
const process = require('process');
const assert = require('assert');
const buffer = fs.readFileSync(process.argv[2]);
let m = new WebAssembly.Module(buffer);
let imports = WebAssembly.Module.imports(m);
console.log('imports', imports);
assert.strictEqual(imports.length, 0);