summaryrefslogtreecommitdiff
path: root/src/tools/wasm-opt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/wasm-opt.cpp')
-rw-r--r--src/tools/wasm-opt.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/tools/wasm-opt.cpp b/src/tools/wasm-opt.cpp
index 7c2a3a35a..91e1633f0 100644
--- a/src/tools/wasm-opt.cpp
+++ b/src/tools/wasm-opt.cpp
@@ -129,6 +129,7 @@ int main(int argc, const char* argv[]) {
}
if (!WasmValidator().validate(wasm, features)) {
+ WasmPrinter::printModule(&wasm);
Fatal() << "error in validating input";
}
} else {
@@ -136,6 +137,7 @@ int main(int argc, const char* argv[]) {
TranslateToFuzzReader reader(wasm);
reader.read(options.extra["infile"]);
if (!WasmValidator().validate(wasm, features)) {
+ WasmPrinter::printModule(&wasm);
std::cerr << "translate-to-fuzz must always generate a valid module";
abort();
}
@@ -176,7 +178,11 @@ int main(int argc, const char* argv[]) {
if (options.runningPasses()) {
if (options.debug) std::cerr << "running passes...\n";
options.runPasses(wasm);
- assert(WasmValidator().validate(wasm, features));
+ bool valid = WasmValidator().validate(wasm, features);
+ if (!valid) {
+ WasmPrinter::printModule(&wasm);
+ }
+ assert(valid);
}
if (fuzzExec) {
@@ -192,7 +198,11 @@ int main(int argc, const char* argv[]) {
auto input = buffer.getAsChars();
WasmBinaryBuilder parser(second, input, false);
parser.read();
- assert(WasmValidator().validate(second, features));
+ bool valid = WasmValidator().validate(second, features);
+ if (!valid) {
+ WasmPrinter::printModule(&second);
+ }
+ assert(valid);
}
results.check(*compare);
}