diff options
author | Alon Zakai <azakai@google.com> | 2019-09-23 17:38:09 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-23 17:38:09 -0700 |
commit | fb217c80c6d9c4b52d90571c435fc52dc868df47 (patch) | |
tree | 1a55362b695382612626249ece5e2c9743c49d75 | |
parent | bf7e40f9bb3325b3f194de96a2b8602f2e5ca52c (diff) | |
download | binaryen-fb217c80c6d9c4b52d90571c435fc52dc868df47.tar.gz binaryen-fb217c80c6d9c4b52d90571c435fc52dc868df47.tar.bz2 binaryen-fb217c80c6d9c4b52d90571c435fc52dc868df47.zip |
Show the unescaped name in Asyncify pattern warnings (#2351)
This is part of the fix for
https://logs.chromium.org/logs/emscripten-releases/buildbucket/cr-buildbucket.appspot.com/8901492015302662960/+/steps/Emscripten_testsuite__upstream__other_/0/stdout
Specifically it fixes that the name shown there should not be escaped.
Followup for #2344
-rw-r--r-- | src/passes/Asyncify.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/passes/Asyncify.cpp b/src/passes/Asyncify.cpp index 2ed34090b..56c294b21 100644 --- a/src/passes/Asyncify.cpp +++ b/src/passes/Asyncify.cpp @@ -340,6 +340,7 @@ public: std::set<Name> names; std::set<std::string> patterns; std::set<std::string> patternsMatched; + std::map<std::string, std::string> unescaped; PatternMatcher(std::string designation, Module& module, @@ -349,8 +350,9 @@ public: // internal escaped names for later comparisons for (auto& name : list) { auto escaped = WasmBinaryBuilder::escape(name); + unescaped[escaped.str] = name; if (name.find('*') != std::string::npos) { - patterns.insert(std::string(escaped.str)); + patterns.insert(escaped.str); } else { auto* func = module.getFunctionOrNull(escaped); if (!func) { @@ -386,8 +388,8 @@ public: for (auto& pattern : patterns) { if (patternsMatched.count(pattern) == 0) { std::cerr << "warning: Asyncify " << designation - << "list contained a non-matching pattern: " << pattern - << "\n"; + << "list contained a non-matching pattern: " + << unescaped[pattern] << " (" << pattern << ")\n"; } } } |