diff options
Diffstat (limited to 'src/wasm-s-parser.h')
-rw-r--r-- | src/wasm-s-parser.h | 21 |
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]); } |