Coverage Report

Created: 2026-07-16 07:09

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/WasmEdge/lib/loader/ast/component/component_start.cpp
Line
Count
Source
1
// SPDX-License-Identifier: Apache-2.0
2
// SPDX-FileCopyrightText: Copyright The WasmEdge Authors
3
4
#include "loader/loader.h"
5
6
namespace WasmEdge {
7
namespace Loader {
8
9
903
Expect<void> Loader::loadStart(AST::Component::Start &S) {
10
903
  auto ReportError = [this](auto E) {
11
32
    return logLoadError(E, FMgr.getLastOffset(), ASTNodeAttr::Comp_Start);
12
32
  };
13
  // start ::= f:<funcidx> arg*:vec(<valueidx>) r:<u32>
14
  //         => (start f (value arg)* (result (value))Ęł)
15
16
903
  EXPECTED_TRY(S.getFunctionIndex(), FMgr.readU32().map_error(ReportError));
17
36.8k
  auto F = [this, ReportError](uint32_t &V) -> Expect<void> {
18
36.8k
    EXPECTED_TRY(V, FMgr.readU32().map_error(ReportError));
19
36.7k
    return {};
20
36.8k
  };
21
899
  EXPECTED_TRY(loadVec<AST::Component::Start>(S.getArguments(), F));
22
843
  EXPECTED_TRY(S.getResult(), FMgr.readU32().map_error(ReportError));
23
836
  return {};
24
843
}
25
26
} // namespace Loader
27
} // namespace WasmEdge