summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2019-09-23 17:38:09 -0700
committerGitHub <noreply@github.com>2019-09-23 17:38:09 -0700
commitfb217c80c6d9c4b52d90571c435fc52dc868df47 (patch)
tree1a55362b695382612626249ece5e2c9743c49d75
parentbf7e40f9bb3325b3f194de96a2b8602f2e5ca52c (diff)
downloadbinaryen-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.cpp8
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";
}
}
}