From b0af95200a37d76eccf285dcb45b4ed6162212d0 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Mon, 12 Apr 2021 18:37:48 -0700 Subject: Fuzzer: Distinguish traps from host limitations (#3801) Host limitations are arbitrary and can be modified by optimizations, so ignore them. For example, if the optimizer removes allocations then a host limit on an allocation error may vanish. Or, an optimization that removes recursion and replaces it with a loop may avoid a host limit on call depth (that is not done currently, but might some day). This removes a class of annoying false positives in the fuzzer. --- src/tools/wasm-ctor-eval.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/tools/wasm-ctor-eval.cpp') diff --git a/src/tools/wasm-ctor-eval.cpp b/src/tools/wasm-ctor-eval.cpp index 6662dd176..2f7707853 100644 --- a/src/tools/wasm-ctor-eval.cpp +++ b/src/tools/wasm-ctor-eval.cpp @@ -312,6 +312,10 @@ struct CtorEvalExternalInterface : EvallingModuleInstance::ExternalInterface { throw FailToEvalException(std::string("trap: ") + why); } + void hostLimit(const char* why) override { + throw FailToEvalException(std::string("trap: ") + why); + } + void throwException(const WasmException& exn) override { std::stringstream ss; ss << "exception thrown: " << exn; -- cgit v1.2.3