summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2021-02-12 23:12:51 +0000
committerGitHub <noreply@github.com>2021-02-12 15:12:51 -0800
commitdf9389509c703ec0583d16a70306dbdd07426c56 (patch)
tree302f2994160b7ce6cab7e6135be0b1f5575e72ae /src
parent60eb7c8c4c76edb89e2d402769c6a3b8450ff7e8 (diff)
downloadbinaryen-df9389509c703ec0583d16a70306dbdd07426c56.tar.gz
binaryen-df9389509c703ec0583d16a70306dbdd07426c56.tar.bz2
binaryen-df9389509c703ec0583d16a70306dbdd07426c56.zip
Print the features section in a comment (#3563)
Diffstat (limited to 'src')
-rw-r--r--src/passes/Print.cpp4
-rw-r--r--src/wasm-features.h15
2 files changed, 19 insertions, 0 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index 9b59de444..a10467018 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -3240,6 +3240,10 @@ struct PrintSExpression : public OverriddenVisitor<PrintSExpression> {
}
o << maybeNewLine;
}
+ if (curr->hasFeaturesSection) {
+ doIndent(o, indent);
+ o << ";; features section: " << curr->features.toString() << '\n';
+ }
decIndent();
o << maybeNewLine;
currModule = nullptr;
diff --git a/src/wasm-features.h b/src/wasm-features.h
index d2e3f343f..237dc7757 100644
--- a/src/wasm-features.h
+++ b/src/wasm-features.h
@@ -75,6 +75,21 @@ struct FeatureSet {
}
}
+ std::string toString() {
+ std::string ret;
+ uint32_t x = 1;
+ while (x & Feature::All) {
+ if (features & x) {
+ if (!ret.empty()) {
+ ret += ", ";
+ }
+ ret += toString(Feature(x));
+ }
+ x <<= 1;
+ }
+ return ret;
+ }
+
FeatureSet() : features(MVP) {}
FeatureSet(uint32_t features) : features(features) {}
operator uint32_t() const { return features; }