diff options
author | Alon Zakai <azakai@google.com> | 2021-02-12 23:12:51 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-12 15:12:51 -0800 |
commit | df9389509c703ec0583d16a70306dbdd07426c56 (patch) | |
tree | 302f2994160b7ce6cab7e6135be0b1f5575e72ae /src | |
parent | 60eb7c8c4c76edb89e2d402769c6a3b8450ff7e8 (diff) | |
download | binaryen-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.cpp | 4 | ||||
-rw-r--r-- | src/wasm-features.h | 15 |
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; } |