summaryrefslogtreecommitdiff
path: root/src/wasm.h
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-12-12 07:27:37 -0500
committerAlon Zakai <alonzakai@gmail.com>2015-12-12 07:27:37 -0500
commit6e31f25903dd0fb7dd43da64aff0e0ed020a4641 (patch)
treefc31cd1472eb729cdc4d7f140ef8e50e4ecb40df /src/wasm.h
parent84288282ef586d5664159b9a9fc54dacfc89c052 (diff)
downloadbinaryen-6e31f25903dd0fb7dd43da64aff0e0ed020a4641.tar.gz
binaryen-6e31f25903dd0fb7dd43da64aff0e0ed020a4641.tar.bz2
binaryen-6e31f25903dd0fb7dd43da64aff0e0ed020a4641.zip
share operands in a base class for all calls
Diffstat (limited to 'src/wasm.h')
-rw-r--r--src/wasm.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/wasm.h b/src/wasm.h
index d81f4087a..13f1d29a7 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -468,12 +468,18 @@ public:
};
-class Call : public Expression {
+class CallBase : public Expression {
public:
- Call() : Expression(CallId) {}
+ CallBase(Id which) : Expression(which) {}
- Name target;
ExpressionList operands;
+};
+
+class Call : public CallBase {
+public:
+ Call() : CallBase(CallId) {}
+
+ Name target;
std::ostream& printBody(std::ostream &o, unsigned indent) {
o << target;
@@ -549,13 +555,12 @@ public:
}
};
-class CallIndirect : public Expression {
+class CallIndirect : public CallBase {
public:
- CallIndirect() : Expression(CallIndirectId) {}
+ CallIndirect() : CallBase(CallIndirectId) {}
FunctionType *fullType;
Expression *target;
- ExpressionList operands;
std::ostream& doPrint(std::ostream &o, unsigned indent) {
printOpening(o, "call_indirect ") << fullType->name;