diff options
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; } |