| 7 | namespace Loader { |
| 8 | |
| 9 | Expect<void> Loader::loadStart(AST::Component::Start &S) { |
| 10 | auto ReportError = [this](auto E) { |
| 11 | return logLoadError(E, FMgr.getLastOffset(), ASTNodeAttr::Comp_Start); |
| 12 | }; |
| 13 | // start ::= f:<funcidx> arg*:vec(<valueidx>) r:<u32> |
| 14 | // => (start f (value arg)* (result (value))ʳ) |
| 15 | |
| 16 | EXPECTED_TRY(S.getFunctionIndex(), FMgr.readU32().map_error(ReportError)); |
| 17 | auto F = [this, ReportError](uint32_t &V) -> Expect<void> { |
| 18 | EXPECTED_TRY(V, FMgr.readU32().map_error(ReportError)); |
| 19 | return {}; |
| 20 | }; |
| 21 | EXPECTED_TRY(loadVec<AST::Component::Start>(S.getArguments(), F)); |
| 22 | EXPECTED_TRY(S.getResult(), FMgr.readU32().map_error(ReportError)); |
| 23 | return {}; |
| 24 | } |
| 25 | |
| 26 | } // namespace Loader |
| 27 | } // namespace WasmEdge |
nothing calls this directly
no test coverage detected