diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2020-04-02 10:36:19 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-02 10:36:19 -0700 |
commit | 80c5164e1f50ed26e6fab373a563fd7a84135429 (patch) | |
tree | ac944407ac6bf1b26e524d31a3db8c410e4599e7 /src/passes/Print.cpp | |
parent | 702b99508487bc5f56c409d890644b3b9212ae81 (diff) | |
download | binaryen-80c5164e1f50ed26e6fab373a563fd7a84135429.tar.gz binaryen-80c5164e1f50ed26e6fab373a563fd7a84135429.tar.bz2 binaryen-80c5164e1f50ed26e6fab373a563fd7a84135429.zip |
Tuple globals (#2718)
Since it wasn't easy to support tuples in Asyncify's call support
using temporary functions, we decided to allow tuple-typed globals
after all. This PR adds support for parsing, printing, lowering, and
interpreting tuple globals and also adds validation ensuring that
imported and exported globals do not have tuple types.
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r-- | src/passes/Print.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp index d6dbb3300..18f2beb43 100644 --- a/src/passes/Print.cpp +++ b/src/passes/Print.cpp @@ -59,12 +59,12 @@ static std::ostream& printLocal(Index index, Function* func, std::ostream& o) { // Unlike the default format, tuple types in s-expressions should not have // commas. -struct LocalType { +struct SExprType { Type type; - LocalType(Type type) : type(type){}; + SExprType(Type type) : type(type){}; }; -static std::ostream& operator<<(std::ostream& o, const LocalType& localType) { +static std::ostream& operator<<(std::ostream& o, const SExprType& localType) { Type type = localType.type; if (type.isMulti()) { const std::vector<Type>& types = type.expand(); @@ -2072,9 +2072,9 @@ struct PrintSExpression : public OverriddenVisitor<PrintSExpression> { } void emitGlobalType(Global* curr) { if (curr->mutable_) { - o << "(mut " << curr->type << ')'; + o << "(mut " << SExprType(curr->type) << ')'; } else { - o << curr->type; + o << SExprType(curr->type); } } void visitImportedGlobal(Global* curr) { @@ -2155,7 +2155,7 @@ struct PrintSExpression : public OverriddenVisitor<PrintSExpression> { o << '('; printMinor(o, "local "); printLocal(i, currFunction, o) - << ' ' << LocalType(curr->getLocalType(i)) << ')'; + << ' ' << SExprType(curr->getLocalType(i)) << ')'; o << maybeNewLine; } // Print the body. |