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.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/tools/wasm-opt.cpp b/src/tools/wasm-opt.cpp
index ca4d87dd8..d36459a4a 100644
--- a/src/tools/wasm-opt.cpp
+++ b/src/tools/wasm-opt.cpp
@@ -162,8 +162,10 @@ int main(int argc, const char* argv[]) {
Fatal() << "error in building module, std::bad_alloc (possibly invalid request for silly amounts of memory)";
}
+ options.calculateFeatures(wasm);
+
if (options.passOptions.validate) {
- if (!WasmValidator().validate(wasm, options.getFeatures())) {
+ if (!WasmValidator().validate(wasm, options.passOptions.features)) {
WasmPrinter::printModule(&wasm);
Fatal() << "error in validating input";
}
@@ -174,12 +176,12 @@ int main(int argc, const char* argv[]) {
if (fuzzPasses) {
reader.pickPasses(options);
}
- reader.setFeatures(options.getFeatures());
+ reader.setFeatures(options.passOptions.features);
reader.setAllowNaNs(fuzzNaNs);
reader.setAllowMemory(fuzzMemory);
reader.build();
if (options.passOptions.validate) {
- if (!WasmValidator().validate(wasm, options.getFeatures())) {
+ if (!WasmValidator().validate(wasm, options.passOptions.features)) {
WasmPrinter::printModule(&wasm);
std::cerr << "translate-to-fuzz must always generate a valid module";
abort();
@@ -239,7 +241,7 @@ int main(int argc, const char* argv[]) {
WasmBinaryBuilder parser(other, input, false);
parser.read();
if (options.passOptions.validate) {
- bool valid = WasmValidator().validate(other, options.getFeatures());
+ bool valid = WasmValidator().validate(other, options.passOptions.features);
if (!valid) {
WasmPrinter::printModule(&other);
}
@@ -253,7 +255,8 @@ int main(int argc, const char* argv[]) {
auto runPasses = [&]() {
options.runPasses(*curr);
if (options.passOptions.validate) {
- bool valid = WasmValidator().validate(*curr, options.getFeatures());
+ bool valid =
+ WasmValidator().validate(*curr, options.passOptions.features);
if (!valid) {
WasmPrinter::printModule(&*curr);
}