summaryrefslogtreecommitdiff
path: root/src/wasm-s-parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-s-parser.h')
-rw-r--r--src/wasm-s-parser.h21
1 files changed, 1 insertions, 20 deletions
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index c8d4015ea..d4a4b38b4 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -298,7 +298,6 @@ private:
size_t localIndex; // params and locals
size_t otherIndex;
std::vector<Name> labelStack;
- bool hasReturn;
Name getPrefixedName(std::string prefix) {
return IString((prefix + std::to_string(otherIndex++)).c_str(), false);
@@ -318,7 +317,6 @@ private:
func->body = nullptr;
localIndex = 0;
otherIndex = 0;
- hasReturn = false;
std::vector<NameType> typeParams; // we may have both params and a type. store the type info here
Block* autoBlock = nullptr; // we may need to add a block for the very top level
for (;i < s.size(); i++) {
@@ -382,20 +380,6 @@ private:
}
}
if (!func->body) func->body = allocator.alloc<Nop>();
- if (hasReturn) {
- Block* body = func->body->dyn_cast<Block>();
- if (!body) {
- body = allocator.alloc<Block>();
- body->list.push_back(func->body);
- func->body = body;
- }
- if (body->name.is()) {
- body = allocator.alloc<Block>();
- body->list.push_back(func->body);
- func->body = body;
- }
- body->name = FAKE_RETURN;
- }
wasm.addFunction(func);
currLocalTypes.clear();
labelStack.clear();
@@ -897,10 +881,7 @@ private:
}
Expression* makeReturn(Element& s) {
- // return will likely not remain in wasm, but is in the testcases, for now. fake it
- hasReturn = true;
- auto ret = allocator.alloc<Break>();
- ret->name = FAKE_RETURN;
+ auto ret = allocator.alloc<Return>();
if (s.size() >= 2) {
ret->value = parseExpression(s[1]);
}