_ZN4wabt3ClzEj:
  120|  5.85k|inline int Clz(unsigned x) { return x ? __builtin_clz(x) : sizeof(x) * 8; }
  ------------------
  |  Branch (120:37): [True: 5.85k, False: 0]
  ------------------
_ZN4wabt3ClzEm:
  121|    425|inline int Clz(unsigned long x) { return x ? __builtin_clzl(x) : sizeof(x) * 8; }
  ------------------
  |  Branch (121:42): [True: 425, False: 0]
  ------------------

_ZN4wabt15BinaryReaderNop18BeginCustomSectionEjmNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
   41|   136k|                            std::string_view section_name) override {
   42|   136k|    return Result::Ok;
   43|   136k|  }
_ZN4wabt15BinaryReaderNop10OnFuncTypeEjjPNS_4TypeEjS2_:
   53|    584|                    Type* result_types) override {
   54|    584|    return Result::Ok;
   55|    584|  }
_ZN4wabt15BinaryReaderNop12OnImportFuncEjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEES5_jj:
   77|  3.71k|                      Index sig_index) override {
   78|  3.71k|    return Result::Ok;
   79|  3.71k|  }
_ZN4wabt15BinaryReaderNop13OnImportTableEjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEES5_jNS_4TypeEPKNS_6LimitsE:
   85|  2.83k|                       const Limits* elem_limits) override {
   86|  2.83k|    return Result::Ok;
   87|  2.83k|  }
_ZN4wabt15BinaryReaderNop14OnImportGlobalEjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEES5_jNS_4TypeEb:
  100|    472|                        bool mutable_) override {
  101|    472|    return Result::Ok;
  102|    472|  }
_ZN4wabt15BinaryReaderNop11OnImportTagEjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEES5_jj:
  107|    166|                     Index sig_index) override {
  108|    166|    return Result::Ok;
  109|    166|  }
_ZN4wabt15BinaryReaderNop8OnExportEjNS_12ExternalKindEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  155|  2.00k|                  std::string_view name) override {
  156|  2.00k|    return Result::Ok;
  157|  2.00k|  }
_ZN4wabt15BinaryReaderNop12OnModuleNameENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  412|  1.62k|  Result OnModuleName(std::string_view name) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnFunctionNameEjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  422|  5.97k|                        std::string_view function_name) override {
  423|  5.97k|    return Result::Ok;
  424|  5.97k|  }
_ZN4wabt15BinaryReaderNop11OnLocalNameEjjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  439|  6.06k|                     std::string_view local_name) override {
  440|  6.06k|    return Result::Ok;
  441|  6.06k|  }
_ZN4wabt15BinaryReaderNop11OnNameEntryENS_21NameSectionSubsectionEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  452|  5.37k|                     std::string_view name) override {
  453|  5.37k|    return Result::Ok;
  454|  5.37k|  }
_ZN4wabt15BinaryReaderNop7OnRelocENS_9RelocTypeEmjj:
  464|  40.9k|                 uint32_t addend) override {
  465|  40.9k|    return Result::Ok;
  466|  40.9k|  }
_ZN4wabt15BinaryReaderNop13OnSymbolCountEj:
  533|  11.4k|  Result OnSymbolCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnDataSymbolEjjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEjjj:
  539|  3.98k|                      uint32_t size) override {
  540|  3.98k|    return Result::Ok;
  541|  3.98k|  }
_ZN4wabt15BinaryReaderNop16OnFunctionSymbolEjjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEj:
  545|  12.6k|                          Index func_index) override {
  546|  12.6k|    return Result::Ok;
  547|  12.6k|  }
_ZN4wabt15BinaryReaderNop14OnGlobalSymbolEjjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEj:
  551|  3.46k|                        Index global_index) override {
  552|  3.46k|    return Result::Ok;
  553|  3.46k|  }
_ZN4wabt15BinaryReaderNop15OnSectionSymbolEjjj:
  556|  4.28k|                         Index section_index) override {
  557|  4.28k|    return Result::Ok;
  558|  4.28k|  }
_ZN4wabt15BinaryReaderNop11OnTagSymbolEjjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEj:
  562|  2.96k|                     Index tag_index) override {
  563|  2.96k|    return Result::Ok;
  564|  2.96k|  }
_ZN4wabt15BinaryReaderNop13OnTableSymbolEjjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEj:
  568|  5.48k|                       Index table_index) override {
  569|  5.48k|    return Result::Ok;
  570|  5.48k|  }
_ZN4wabt15BinaryReaderNop13OnSegmentInfoEjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEmj:
  575|  4.15k|                       uint32_t flags) override {
  576|  4.15k|    return Result::Ok;
  577|  4.15k|  }
_ZN4wabt15BinaryReaderNop9EndModuleEv:
   30|  2.29k|  Result EndModule() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16EndCustomSectionEv:
   44|   242k|  Result EndCustomSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginTypeSectionEm:
   47|  3.44k|  Result BeginTypeSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnTypeCountEj:
   48|    968|  Result OnTypeCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnStructTypeEjjPNS_7TypeMutE:
   58|    470|                      TypeMut* fields) override {
   59|    470|    return Result::Ok;
   60|    470|  }
_ZN4wabt15BinaryReaderNop11OnArrayTypeEjNS_7TypeMutE:
   61|     48|  Result OnArrayType(Index index, TypeMut field) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndTypeSectionEv:
   62|    135|  Result EndTypeSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginImportSectionEm:
   65|  1.62k|  Result BeginImportSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnImportCountEj:
   66|    346|  Result OnImportCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop8OnImportEjNS_12ExternalKindENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_:
   70|  39.4k|                  std::string_view field_name) override {
   71|  39.4k|    return Result::Ok;
   72|  39.4k|  }
_ZN4wabt15BinaryReaderNop14OnImportMemoryEjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEES5_jPKNS_6LimitsE:
   92|  1.27k|                        const Limits* page_limits) override {
   93|  1.27k|    return Result::Ok;
   94|  1.27k|  }
_ZN4wabt15BinaryReaderNop16EndImportSectionEv:
  110|    170|  Result EndImportSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop20BeginFunctionSectionEm:
  113|  12.0k|  Result BeginFunctionSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15OnFunctionCountEj:
  114|  2.44k|  Result OnFunctionCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop10OnFunctionEjj:
  115|  15.2k|  Result OnFunction(Index index, Index sig_index) override {
  116|  15.2k|    return Result::Ok;
  117|  15.2k|  }
_ZN4wabt15BinaryReaderNop18EndFunctionSectionEv:
  118|  2.96k|  Result EndFunctionSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17BeginTableSectionEm:
  121|  1.10k|  Result BeginTableSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnTableCountEj:
  122|    250|  Result OnTableCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop7OnTableEjNS_4TypeEPKNS_6LimitsE:
  125|    236|                 const Limits* elem_limits) override {
  126|    236|    return Result::Ok;
  127|    236|  }
_ZN4wabt15BinaryReaderNop15EndTableSectionEv:
  128|    105|  Result EndTableSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginMemorySectionEm:
  131|  1.20k|  Result BeginMemorySection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnMemoryCountEj:
  132|    348|  Result OnMemoryCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop8OnMemoryEjPKNS_6LimitsE:
  133|  6.51k|  Result OnMemory(Index index, const Limits* limits) override {
  134|  6.51k|    return Result::Ok;
  135|  6.51k|  }
_ZN4wabt15BinaryReaderNop16EndMemorySectionEv:
  136|    270|  Result EndMemorySection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginGlobalSectionEm:
  139|  2.30k|  Result BeginGlobalSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnGlobalCountEj:
  140|    800|  Result OnGlobalCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11BeginGlobalEjNS_4TypeEb:
  141|  2.25k|  Result BeginGlobal(Index index, Type type, bool mutable_) override {
  142|  2.25k|    return Result::Ok;
  143|  2.25k|  }
_ZN4wabt15BinaryReaderNop19BeginGlobalInitExprEj:
  144|  2.25k|  Result BeginGlobalInitExpr(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17EndGlobalInitExprEj:
  145|  1.81k|  Result EndGlobalInitExpr(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop9EndGlobalEj:
  146|  4.53k|  Result EndGlobal(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16EndGlobalSectionEv:
  147|     65|  Result EndGlobalSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginExportSectionEm:
  150|  2.46k|  Result BeginExportSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnExportCountEj:
  151|    796|  Result OnExportCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16EndExportSectionEv:
  158|    145|  Result EndExportSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17BeginStartSectionEm:
  161|    500|  Result BeginStartSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15OnStartFunctionEj:
  162|    138|  Result OnStartFunction(Index func_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15EndStartSectionEv:
  163|    345|  Result EndStartSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginCodeSectionEm:
  166|  8.60k|  Result BeginCodeSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19OnFunctionBodyCountEj:
  167|  3.27k|  Result OnFunctionBodyCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17BeginFunctionBodyEjm:
  168|  2.40k|  Result BeginFunctionBody(Index index, Offset size) override {
  169|  2.40k|    return Result::Ok;
  170|  2.40k|  }
_ZN4wabt15BinaryReaderNop16OnLocalDeclCountEj:
  171|  9.16k|  Result OnLocalDeclCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnLocalDeclEjjNS_4TypeE:
  172|  4.32k|  Result OnLocalDecl(Index decl_index, Index count, Type type) override {
  173|  4.32k|    return Result::Ok;
  174|  4.32k|  }
_ZN4wabt15BinaryReaderNop12OnOpcodeBareEv:
  179|  1.78M|  Result OnOpcodeBare() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnOpcodeUint32Ej:
  184|  58.3k|  Result OnOpcodeUint32(uint32_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnOpcodeIndexEj:
  180|  82.0k|  Result OnOpcodeIndex(Index value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop20OnOpcodeUint32Uint32Ejj:
  185|   113k|  Result OnOpcodeUint32Uint32(uint32_t value, uint32_t value2) override {
  186|   113k|    return Result::Ok;
  187|   113k|  }
_ZN4wabt15BinaryReaderNop26OnOpcodeUint32Uint32Uint32Ejjj:
  190|  24.6k|                                    uint32_t value3) override {
  191|  24.6k|    return Result::Ok;
  192|  24.6k|  }
_ZN4wabt15BinaryReaderNop32OnOpcodeUint32Uint32Uint32Uint32Ejjjj:
  196|  7.70k|                                          uint32_t value4) override {
  197|  7.70k|    return Result::Ok;
  198|  7.70k|  }
_ZN4wabt15BinaryReaderNop14OnOpcodeUint64Em:
  199|  31.8k|  Result OnOpcodeUint64(uint64_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnOpcodeF32Ej:
  200|   194k|  Result OnOpcodeF32(uint32_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnOpcodeF64Em:
  201|  21.2k|  Result OnOpcodeF64(uint64_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnOpcodeV128E4v128:
  202|  1.92k|  Result OnOpcodeV128(v128 value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16OnOpcodeBlockSigENS_4TypeE:
  203|  3.83M|  Result OnOpcodeBlockSig(Type sig_type) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnOpcodeTypeENS_4TypeE:
  204|  2.54k|  Result OnOpcodeType(Type type) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16OnAtomicLoadExprENS_6OpcodeEjmm:
  208|  2.39k|                          Address offset) override {
  209|  2.39k|    return Result::Ok;
  210|  2.39k|  }
_ZN4wabt15BinaryReaderNop17OnAtomicStoreExprENS_6OpcodeEjmm:
  214|  4.99k|                           Address offset) override {
  215|  4.99k|    return Result::Ok;
  216|  4.99k|  }
_ZN4wabt15BinaryReaderNop15OnAtomicRmwExprENS_6OpcodeEjmm:
  220|  21.9k|                         Address offset) override {
  221|  21.9k|    return Result::Ok;
  222|  21.9k|  }
_ZN4wabt15BinaryReaderNop22OnAtomicRmwCmpxchgExprENS_6OpcodeEjmm:
  226|  2.92k|                                Address offset) override {
  227|  2.92k|    return Result::Ok;
  228|  2.92k|  }
_ZN4wabt15BinaryReaderNop16OnAtomicWaitExprENS_6OpcodeEjmm:
  229|  3.93k|  Result OnAtomicWaitExpr(Opcode, Index, Address, Address) override {
  230|  3.93k|    return Result::Ok;
  231|  3.93k|  }
_ZN4wabt15BinaryReaderNop17OnAtomicFenceExprEj:
  232|  1.24k|  Result OnAtomicFenceExpr(uint32_t) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18OnAtomicNotifyExprENS_6OpcodeEjmm:
  233|  2.07k|  Result OnAtomicNotifyExpr(Opcode, Index, Address, Address) override {
  234|  2.07k|    return Result::Ok;
  235|  2.07k|  }
_ZN4wabt15BinaryReaderNop12OnBinaryExprENS_6OpcodeE:
  236|   486k|  Result OnBinaryExpr(Opcode opcode) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnBlockExprENS_4TypeE:
  237|   122k|  Result OnBlockExpr(Type sig_type) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop8OnBrExprEj:
  238|  6.95k|  Result OnBrExpr(Index depth) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop10OnBrIfExprEj:
  239|  3.59k|  Result OnBrIfExpr(Index depth) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnBrTableExprEjPjj:
  242|  11.0k|                       Index default_target_depth) override {
  243|  11.0k|    return Result::Ok;
  244|  11.0k|  }
_ZN4wabt15BinaryReaderNop10OnCallExprEj:
  245|  10.5k|  Result OnCallExpr(Index func_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18OnCallIndirectExprEjj:
  246|     48|  Result OnCallIndirectExpr(Index sig_index, Index table_index) override {
  247|     48|    return Result::Ok;
  248|     48|  }
_ZN4wabt15BinaryReaderNop13OnCallRefExprEv:
  249|  3.57k|  Result OnCallRefExpr() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnCatchExprEj:
  250|  6.15k|  Result OnCatchExpr(Index tag_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnCatchAllExprEv:
  251|  6.81k|  Result OnCatchAllExpr() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnCompareExprENS_6OpcodeE:
  252|   320k|  Result OnCompareExpr(Opcode opcode) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnConvertExprENS_6OpcodeE:
  253|   265k|  Result OnConvertExpr(Opcode opcode) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnDelegateExprEj:
  254|  1.43k|  Result OnDelegateExpr(Index depth) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop10OnDropExprEv:
  255|  10.4k|  Result OnDropExpr() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop10OnElseExprEv:
  256|  10.4k|  Result OnElseExpr() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop9OnEndExprEv:
  257|   102k|  Result OnEndExpr() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnF32ConstExprEj:
  258|  97.1k|  Result OnF32ConstExpr(uint32_t value_bits) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnF64ConstExprEm:
  259|  11.1k|  Result OnF64ConstExpr(uint64_t value_bits) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15OnV128ConstExprE4v128:
  260|    671|  Result OnV128ConstExpr(v128 value_bits) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15OnGlobalGetExprEj:
  261|  10.4k|  Result OnGlobalGetExpr(Index global_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15OnGlobalSetExprEj:
  262|  3.86k|  Result OnGlobalSetExpr(Index global_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnI32ConstExprEj:
  263|  4.51k|  Result OnI32ConstExpr(uint32_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnI64ConstExprEm:
  264|  10.4k|  Result OnI64ConstExpr(uint64_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop8OnIfExprENS_4TypeE:
  265|  3.58M|  Result OnIfExpr(Type sig_type) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop10OnLoadExprENS_6OpcodeEjmm:
  269|  68.5k|                    Address offset) override {
  270|  68.5k|    return Result::Ok;
  271|  68.5k|  }
_ZN4wabt15BinaryReaderNop14OnLocalGetExprEj:
  272|  12.7k|  Result OnLocalGetExpr(Index local_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnLocalSetExprEj:
  273|  6.08k|  Result OnLocalSetExpr(Index local_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnLocalTeeExprEj:
  274|  2.76k|  Result OnLocalTeeExpr(Index local_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop10OnLoopExprENS_4TypeE:
  275|   762k|  Result OnLoopExpr(Type sig_type) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16OnMemoryCopyExprEjj:
  276|    253|  Result OnMemoryCopyExpr(Index destmemidx, Index srcmemidx) override {
  277|    253|    return Result::Ok;
  278|    253|  }
_ZN4wabt15BinaryReaderNop14OnDataDropExprEj:
  279|     42|  Result OnDataDropExpr(Index segment_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16OnMemoryFillExprEj:
  280|  1.27k|  Result OnMemoryFillExpr(Index memidx) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16OnMemoryGrowExprEj:
  281|  7.41k|  Result OnMemoryGrowExpr(Index memidx) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16OnMemoryInitExprEjj:
  282|     63|  Result OnMemoryInitExpr(Index segment_index, Index memidx) override {
  283|     63|    return Result::Ok;
  284|     63|  }
_ZN4wabt15BinaryReaderNop16OnMemorySizeExprEj:
  285|  11.7k|  Result OnMemorySizeExpr(Index memidx) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15OnTableCopyExprEjj:
  286|  2.59k|  Result OnTableCopyExpr(Index dst_index, Index src_index) override {
  287|  2.59k|    return Result::Ok;
  288|  2.59k|  }
_ZN4wabt15BinaryReaderNop14OnElemDropExprEj:
  289|    551|  Result OnElemDropExpr(Index segment_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15OnTableInitExprEjj:
  290|    227|  Result OnTableInitExpr(Index segment_index, Index table_index) override {
  291|    227|    return Result::Ok;
  292|    227|  }
_ZN4wabt15BinaryReaderNop14OnTableGetExprEj:
  293|  2.36k|  Result OnTableGetExpr(Index table_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnTableSetExprEj:
  294|  2.36k|  Result OnTableSetExpr(Index table_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15OnTableGrowExprEj:
  295|    544|  Result OnTableGrowExpr(Index table_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15OnTableSizeExprEj:
  296|    689|  Result OnTableSizeExpr(Index table_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15OnTableFillExprEj:
  297|    428|  Result OnTableFillExpr(Index table_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnRefFuncExprEj:
  298|  13.8k|  Result OnRefFuncExpr(Index func_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnRefNullExprENS_4TypeE:
  299|  1.16k|  Result OnRefNullExpr(Type type) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15OnRefIsNullExprEv:
  300|    893|  Result OnRefIsNullExpr() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop9OnNopExprEv:
  301|   135k|  Result OnNopExpr() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnRethrowExprEj:
  302|  16.9k|  Result OnRethrowExpr(Index depth) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnReturnExprEv:
  307|  5.71k|  Result OnReturnExpr() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16OnReturnCallExprEj:
  303|  3.14k|  Result OnReturnCallExpr(Index sig_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop24OnReturnCallIndirectExprEjj:
  304|  5.37k|  Result OnReturnCallIndirectExpr(Index sig_index, Index table_index) override {
  305|  5.37k|    return Result::Ok;
  306|  5.37k|  }
_ZN4wabt15BinaryReaderNop12OnSelectExprEjPNS_4TypeE:
  308|  12.1k|  Result OnSelectExpr(Index result_count, Type* result_types) override {
  309|  12.1k|    return Result::Ok;
  310|  12.1k|  }
_ZN4wabt15BinaryReaderNop11OnStoreExprENS_6OpcodeEjmm:
  314|  44.2k|                     Address offset) override {
  315|  44.2k|    return Result::Ok;
  316|  44.2k|  }
_ZN4wabt15BinaryReaderNop11OnThrowExprEj:
  317|  6.34k|  Result OnThrowExpr(Index depth) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop9OnTryExprENS_4TypeE:
  318|   321k|  Result OnTryExpr(Type sig_type) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnUnaryExprENS_6OpcodeE:
  319|   173k|  Result OnUnaryExpr(Opcode opcode) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnTernaryExprENS_6OpcodeE:
  320|  5.48k|  Result OnTernaryExpr(Opcode opcode) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17OnUnreachableExprEv:
  321|   830k|  Result OnUnreachableExpr() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15EndFunctionBodyEj:
  322|  8.65k|  Result EndFunctionBody(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndCodeSectionEv:
  323|    414|  Result EndCodeSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16OnSimdLaneOpExprENS_6OpcodeEm:
  324|  14.6k|  Result OnSimdLaneOpExpr(Opcode opcode, uint64_t value) override {
  325|  14.6k|    return Result::Ok;
  326|  14.6k|  }
_ZN4wabt15BinaryReaderNop19OnSimdShuffleOpExprENS_6OpcodeE4v128:
  341|  1.75k|  Result OnSimdShuffleOpExpr(Opcode opcode, v128 value) override {
  342|  1.75k|    return Result::Ok;
  343|  1.75k|  }
_ZN4wabt15BinaryReaderNop18OnSimdLoadLaneExprENS_6OpcodeEjmmm:
  331|  7.45k|                            uint64_t value) override {
  332|  7.45k|    return Result::Ok;
  333|  7.45k|  }
_ZN4wabt15BinaryReaderNop19OnSimdStoreLaneExprENS_6OpcodeEjmmm:
  338|  7.82k|                             uint64_t value) override {
  339|  7.82k|    return Result::Ok;
  340|  7.82k|  }
_ZN4wabt15BinaryReaderNop15OnLoadSplatExprENS_6OpcodeEjmm:
  347|  7.67k|                         Address offset) override {
  348|  7.67k|    return Result::Ok;
  349|  7.67k|  }
_ZN4wabt15BinaryReaderNop14OnLoadZeroExprENS_6OpcodeEjmm:
  353|  2.50k|                        Address offset) override {
  354|  2.50k|    return Result::Ok;
  355|  2.50k|  }
_ZN4wabt15BinaryReaderNop16BeginElemSectionEm:
  358|  9.93k|  Result BeginElemSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18OnElemSegmentCountEj:
  359|  3.85k|  Result OnElemSegmentCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginElemSegmentEjjh:
  362|  13.3k|                          uint8_t flags) override {
  363|  13.3k|    return Result::Ok;
  364|  13.3k|  }
_ZN4wabt15BinaryReaderNop24BeginElemSegmentInitExprEj:
  365|  10.4k|  Result BeginElemSegmentInitExpr(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop22EndElemSegmentInitExprEj:
  366|  7.31k|  Result EndElemSegmentInitExpr(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop21OnElemSegmentElemTypeEjNS_4TypeE:
  367|  10.0k|  Result OnElemSegmentElemType(Index index, Type elem_type) override {
  368|  10.0k|    return Result::Ok;
  369|  10.0k|  }
_ZN4wabt15BinaryReaderNop26OnElemSegmentElemExprCountEjj:
  370|  9.89k|  Result OnElemSegmentElemExprCount(Index index, Index count) override {
  371|  9.89k|    return Result::Ok;
  372|  9.89k|  }
_ZN4wabt15BinaryReaderNop13BeginElemExprEjj:
  373|  15.1k|  Result BeginElemExpr(Index elem_index, Index expr_index) override {
  374|  15.1k|    return Result::Ok;
  375|  15.1k|  }
_ZN4wabt15BinaryReaderNop11EndElemExprEjj:
  376|  15.0k|  Result EndElemExpr(Index elem_index, Index expr_index) override {
  377|  15.0k|    return Result::Ok;
  378|  15.0k|  }
_ZN4wabt15BinaryReaderNop14EndElemSegmentEj:
  379|  24.2k|  Result EndElemSegment(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndElemSectionEv:
  380|     65|  Result EndElemSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginDataSectionEm:
  383|  4.53k|  Result BeginDataSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18OnDataSegmentCountEj:
  384|  1.66k|  Result OnDataSegmentCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginDataSegmentEjjh:
  387|  8.69k|                          uint8_t flags) override {
  388|  8.69k|    return Result::Ok;
  389|  8.69k|  }
_ZN4wabt15BinaryReaderNop24BeginDataSegmentInitExprEj:
  390|  5.27k|  Result BeginDataSegmentInitExpr(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop22EndDataSegmentInitExprEj:
  391|  4.10k|  Result EndDataSegmentInitExpr(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17OnDataSegmentDataEjPKvm:
  394|  7.42k|                           Address size) override {
  395|  7.42k|    return Result::Ok;
  396|  7.42k|  }
_ZN4wabt15BinaryReaderNop14EndDataSegmentEj:
  397|  18.5k|  Result EndDataSegment(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndDataSectionEv:
  398|    105|  Result EndDataSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop21BeginDataCountSectionEm:
  401|    490|  Result BeginDataCountSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnDataCountEj:
  402|    190|  Result OnDataCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19EndDataCountSectionEv:
  403|    475|  Result EndDataCountSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17BeginNamesSectionEm:
  406|  83.7k|  Result BeginNamesSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop22OnModuleNameSubsectionEjjm:
  409|  10.4k|                                Offset subsection_size) override {
  410|  10.4k|    return Result::Ok;
  411|  10.4k|  }
_ZN4wabt15BinaryReaderNop24OnFunctionNameSubsectionEjjm:
  415|  19.2k|                                  Offset subsection_size) override {
  416|  19.2k|    return Result::Ok;
  417|  19.2k|  }
_ZN4wabt15BinaryReaderNop20OnFunctionNamesCountEj:
  418|  18.0k|  Result OnFunctionNamesCount(Index num_functions) override {
  419|  18.0k|    return Result::Ok;
  420|  18.0k|  }
_ZN4wabt15BinaryReaderNop21OnLocalNameSubsectionEjjm:
  427|  30.0k|                               Offset subsection_size) override {
  428|  30.0k|    return Result::Ok;
  429|  30.0k|  }
_ZN4wabt15BinaryReaderNop24OnLocalNameFunctionCountEj:
  430|  25.5k|  Result OnLocalNameFunctionCount(Index num_functions) override {
  431|  25.5k|    return Result::Ok;
  432|  25.5k|  }
_ZN4wabt15BinaryReaderNop21OnLocalNameLocalCountEjj:
  434|  35.1k|                               Index num_locals) override {
  435|  35.1k|    return Result::Ok;
  436|  35.1k|  }
_ZN4wabt15BinaryReaderNop16OnNameSubsectionEjNS_21NameSectionSubsectionEm:
  446|  80.6k|                          Offset subsection_size) override {
  447|  80.6k|    return Result::Ok;
  448|  80.6k|  }
_ZN4wabt15BinaryReaderNop11OnNameCountEj:
  449|  11.4k|  Result OnNameCount(Index num_names) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15EndNamesSectionEv:
  442|  7.28k|  Result EndNamesSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17BeginRelocSectionEm:
  457|  39.6k|  Result BeginRelocSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15EndRelocSectionEv:
  467|  8.30k|  Result EndRelocSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginDylinkSectionEm:
  491|  90.6k|  Result BeginDylinkSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnDylinkInfoEjjjj:
  495|  8.51k|                      uint32_t table_align) override {
  496|  8.51k|    return Result::Ok;
  497|  8.51k|  }
_ZN4wabt15BinaryReaderNop19OnDylinkImportCountEj:
  502|  3.84k|  Result OnDylinkImportCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19OnDylinkExportCountEj:
  503|  13.4k|  Result OnDylinkExportCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnDylinkImportENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEES5_j:
  506|  2.99k|                        uint32_t flags) override {
  507|  2.99k|    return Result::Ok;
  508|  2.99k|  }
_ZN4wabt15BinaryReaderNop14OnDylinkExportENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEj:
  509|  21.6k|  Result OnDylinkExport(std::string_view name, uint32_t flags) override {
  510|  21.6k|    return Result::Ok;
  511|  21.6k|  }
_ZN4wabt15BinaryReaderNop19OnDylinkNeededCountEj:
  498|  4.91k|  Result OnDylinkNeededCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnDylinkNeededENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  499|  3.34k|  Result OnDylinkNeeded(std::string_view so_name) override {
  500|  3.34k|    return Result::Ok;
  501|  3.34k|  }
_ZN4wabt15BinaryReaderNop16EndDylinkSectionEv:
  512|  8.16k|  Result EndDylinkSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop26BeginTargetFeaturesSectionEm:
  515|  61.6k|  Result BeginTargetFeaturesSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnFeatureCountEj:
  516|  61.6k|  Result OnFeatureCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop9OnFeatureEhNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  517|  99.6k|  Result OnFeature(uint8_t prefix, std::string_view name) override {
  518|  99.6k|    return Result::Ok;
  519|  99.6k|  }
_ZN4wabt15BinaryReaderNop24EndTargetFeaturesSectionEv:
  520|  22.0k|  Result EndTargetFeaturesSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop25BeginGenericCustomSectionEm:
  523|   684k|  Result BeginGenericCustomSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop22OnGenericCustomSectionENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEPKvm:
  526|   684k|                                Offset size) override {
  527|   684k|    return Result::Ok;
  528|   684k|  };
_ZN4wabt15BinaryReaderNop23EndGenericCustomSectionEv:
  529|   684k|  Result EndGenericCustomSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19BeginLinkingSectionEm:
  532|  88.4k|  Result BeginLinkingSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18OnSegmentInfoCountEj:
  571|  8.59k|  Result OnSegmentInfoCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19OnInitFunctionCountEj:
  578|  1.28k|  Result OnInitFunctionCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnInitFunctionEjj:
  579|  6.99k|  Result OnInitFunction(uint32_t priority, Index symbol_index) override {
  580|  6.99k|    return Result::Ok;
  581|  6.99k|  }
_ZN4wabt15BinaryReaderNop13OnComdatCountEj:
  582|  8.29k|  Result OnComdatCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnComdatBeginENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEjj:
  585|  6.75k|                       Index count) override {
  586|  6.75k|    return Result::Ok;
  587|  6.75k|  }
_ZN4wabt15BinaryReaderNop13OnComdatEntryENS_10ComdatTypeEj:
  588|  14.1k|  Result OnComdatEntry(ComdatType kind, Index index) override {
  589|  14.1k|    return Result::Ok;
  590|  14.1k|  }
_ZN4wabt15BinaryReaderNop17EndLinkingSectionEv:
  591|  8.32k|  Result EndLinkingSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15BeginTagSectionEm:
  470|    400|  Result BeginTagSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop10OnTagCountEj:
  471|     56|  Result OnTagCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop9OnTagTypeEjj:
  472|  3.76k|  Result OnTagType(Index index, Index sig_index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13EndTagSectionEv:
  473|     20|  Result EndTagSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop24BeginCodeMetadataSectionENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEm:
  476|   134k|  Result BeginCodeMetadataSection(std::string_view name, Offset size) override {
  477|   134k|    return Result::Ok;
  478|   134k|  }
_ZN4wabt15BinaryReaderNop23OnCodeMetadataFuncCountEj:
  479|   132k|  Result OnCodeMetadataFuncCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19OnCodeMetadataCountEjj:
  480|  39.7k|  Result OnCodeMetadataCount(Index function_index, Index count) override {
  481|  39.7k|    return Result::Ok;
  482|  39.7k|  }
_ZN4wabt15BinaryReaderNop14OnCodeMetadataEmPKvm:
  485|  7.38k|                        Address size) override {
  486|  7.38k|    return Result::Ok;
  487|  7.38k|  }
_ZN4wabt15BinaryReaderNop22EndCodeMetadataSectionEv:
  488|  2.03k|  Result EndCodeMetadataSection() override { return Result::Ok; }

_ZN4wabt17ReadBinaryOptionsC2ERKNS_8FeaturesEPNS_6StreamEbbb:
   45|  45.6k|        fail_on_custom_section_error(fail_on_custom_section_error) {}
_ZN4wabt20BinaryReaderDelegate5StateC2EPKhm:
   66|  45.6k|        : data(data), size(size), offset(0) {}
_ZN4wabt20BinaryReaderDelegateD2Ev:
   73|  91.3k|  virtual ~BinaryReaderDelegate() {}
_ZN4wabt20BinaryReaderDelegate10OnSetStateEPKNS0_5StateE:
   76|  45.6k|  virtual void OnSetState(const State* s) { state = s; }

_ZN4wabt17MemcpyEndianAwareEPvPKvmmmmm:
   91|    948|                              size_t len) {
   92|       |#if WABT_BIG_ENDIAN
   93|       |  memcpy(static_cast<char*>(dst) + (dsize) - (len) - (doff),
   94|       |         static_cast<const char*>(src) + (ssize) - (len) - (soff), (len));
   95|       |#else
   96|    948|  memcpy(static_cast<char*>(dst) + (doff),
   97|    948|         static_cast<const char*>(src) + (soff), (len));
   98|    948|#endif
   99|    948|}
_ZNK4v1283u32Ei:
  118|    948|  uint32_t u32(int lane) const { return To<uint32_t>(lane); }
_ZN4wabt8LocationC2Em:
  215|  8.93M|  explicit Location(size_t offset) : offset(offset) {}
_ZNK4v1282ToIjEET_i:
  137|    948|  T To(int lane) const {
  138|    948|    static_assert(sizeof(T) <= sizeof(v), "Invalid cast!");
  139|    948|    assert((lane + 1) * sizeof(T) <= sizeof(v));
  140|    948|    T result;
  141|    948|    wabt::MemcpyEndianAware(&result, v, sizeof(result), sizeof(v), 0,
  142|    948|                            lane * sizeof(T), sizeof(result));
  143|    948|    return result;
  144|    948|  }
_ZN4wabt10ZeroMemoryIA14_mEEvRT_:
  168|  45.6k|void ZeroMemory(T& v) {
  169|  45.6k|  WABT_STATIC_ASSERT(std::is_trivial<T>::value);
  ------------------
  |  |   89|  45.6k|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
  170|  45.6k|  memset(&v, 0, sizeof(v));
  171|  45.6k|}
binary-reader-objdump.cc:_ZN4wabtL16GetRelocTypeNameENS_9RelocTypeE:
  405|  67.0k|static inline const char* GetRelocTypeName(RelocType reloc) {
  406|  67.0k|  return static_cast<size_t>(reloc) < kRelocTypeCount
  ------------------
  |  Branch (406:10): [True: 67.0k, False: 0]
  ------------------
  407|  67.0k|             ? g_reloc_type_name[static_cast<size_t>(reloc)]
  408|  67.0k|             : "<error_reloc_type>";
  409|  67.0k|}
binary-reader-objdump.cc:_ZN4wabtL11GetKindNameENS_12ExternalKindE:
  395|  6.02k|static inline const char* GetKindName(ExternalKind kind) {
  396|  6.02k|  return static_cast<size_t>(kind) < kExternalKindCount
  ------------------
  |  Branch (396:10): [True: 6.02k, False: 0]
  ------------------
  397|  6.02k|             ? g_kind_name[static_cast<size_t>(kind)]
  398|  6.02k|             : "<error_kind>";
  399|  6.02k|}
binary-reader.cc:_ZN4wabtL16GetRelocTypeNameENS_9RelocTypeE:
  405|  2.83k|static inline const char* GetRelocTypeName(RelocType reloc) {
  406|  2.83k|  return static_cast<size_t>(reloc) < kRelocTypeCount
  ------------------
  |  Branch (406:10): [True: 0, False: 2.83k]
  ------------------
  407|  2.83k|             ? g_reloc_type_name[static_cast<size_t>(reloc)]
  408|  2.83k|             : "<error_reloc_type>";
  409|  2.83k|}
_ZN4wabt6LimitsC2Ev:
  364|  35.4k|  Limits() = default;
_ZN4wabt10ZeroMemoryI4v128EEvRT_:
  168|    687|void ZeroMemory(T& v) {
  169|    687|  WABT_STATIC_ASSERT(std::is_trivial<T>::value);
  ------------------
  |  |   89|    687|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
  170|    687|  memset(&v, 0, sizeof(v));
  171|    687|}

_ZN4wabt5ErrorC2ENS_10ErrorLevelENS_8LocationENSt3__117basic_string_viewIcNS3_11char_traitsIcEEEE:
   47|  8.93M|      : error_level(error_level), loc(loc), message(message) {}
binary-reader.cc:_ZN4wabtL17GetErrorLevelNameENS_10ErrorLevelE:
   33|  1.78M|static inline const char* GetErrorLevelName(ErrorLevel error_level) {
   34|  1.78M|  switch (error_level) {
  ------------------
  |  Branch (34:11): [True: 0, False: 1.78M]
  ------------------
   35|  88.8k|    case ErrorLevel::Warning:
  ------------------
  |  Branch (35:5): [True: 88.8k, False: 1.69M]
  ------------------
   36|  88.8k|      return "warning";
   37|  1.69M|    case ErrorLevel::Error:
  ------------------
  |  Branch (37:5): [True: 1.69M, False: 88.8k]
  ------------------
   38|  1.69M|      return "error";
   39|  1.78M|  }
   40|      0|  WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
   41|  1.78M|}

_ZN4wabt8Features9EnableAllEv:
   30|  45.6k|  void EnableAll() {
   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
   32|  45.6k|#include "wabt/feature.def"
  ------------------
  |  |    1|       |/*
  |  |    2|       | * Copyright 2017 WebAssembly Community Group participants
  |  |    3|       | *
  |  |    4|       | * Licensed under the Apache License, Version 2.0 (the "License");
  |  |    5|       | * you may not use this file except in compliance with the License.
  |  |    6|       | * You may obtain a copy of the License at
  |  |    7|       | *
  |  |    8|       | *     http://www.apache.org/licenses/LICENSE-2.0
  |  |    9|       | *
  |  |   10|       | * Unless required by applicable law or agreed to in writing, software
  |  |   11|       | * distributed under the License is distributed on an "AS IS" BASIS,
  |  |   12|       | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  |  |   13|       | * See the License for the specific language governing permissions and
  |  |   14|       | * limitations under the License.
  |  |   15|       | */
  |  |   16|       |
  |  |   17|       |#ifndef WABT_FEATURE
  |  |   18|       |#error "You must define WABT_FEATURE before including this file."
  |  |   19|       |#endif
  |  |   20|       |
  |  |   21|       |/*
  |  |   22|       | *           variable          flag                       default  help
  |  |   23|       | * ========================================================================= */
  |  |   24|       |
  |  |   25|  45.6k|WABT_FEATURE(exceptions,          "exceptions",              false,   "Experimental exception handling")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   26|  45.6k|WABT_FEATURE(mutable_globals,     "mutable-globals",         true,    "Import/export mutable globals")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   27|  45.6k|WABT_FEATURE(sat_float_to_int,    "saturating-float-to-int", true,    "Saturating float-to-int operators")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   28|  45.6k|WABT_FEATURE(sign_extension,      "sign-extension",          true,    "Sign-extension operators")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   29|  45.6k|WABT_FEATURE(simd,                "simd",                    true,    "SIMD support")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   30|  45.6k|WABT_FEATURE(threads,             "threads",                 false,   "Threading support")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   31|  45.6k|WABT_FEATURE(function_references, "function-references",     false,   "Typed function references")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   32|  45.6k|WABT_FEATURE(multi_value,         "multi-value",             true,    "Multi-value")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   33|  45.6k|WABT_FEATURE(tail_call,           "tail-call",               false,   "Tail-call support")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   34|  45.6k|WABT_FEATURE(bulk_memory,         "bulk-memory",             true,    "Bulk-memory operations")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   35|  45.6k|WABT_FEATURE(reference_types,     "reference-types",         true,    "Reference types (externref)")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   36|  45.6k|WABT_FEATURE(annotations,         "annotations",             false,   "Custom annotation syntax")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   37|  45.6k|WABT_FEATURE(code_metadata,       "code-metadata",           false,   "Code metadata")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   38|  45.6k|WABT_FEATURE(gc,                  "gc",                      false,   "Garbage collection")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   39|  45.6k|WABT_FEATURE(memory64,            "memory64",                false,   "64-bit memory")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   40|  45.6k|WABT_FEATURE(multi_memory,        "multi-memory",            false,   "Multi-memory")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   41|  45.6k|WABT_FEATURE(extended_const,      "extended-const",          false,   "Extended constant expressions")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  |  |   42|  45.6k|WABT_FEATURE(relaxed_simd,        "relaxed-simd",            false,   "Relaxed SIMD")
  |  |  ------------------
  |  |  |  |   31|  45.6k|#define WABT_FEATURE(variable, flag, default_, help) enable_##variable();
  |  |  ------------------
  ------------------
   33|  45.6k|#undef WABT_FEATURE
   34|  45.6k|  }
_ZNK4wabt8Features18exceptions_enabledEv:
   37|   354k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features17enable_exceptionsEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features22set_exceptions_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZN4wabt8Features22enable_mutable_globalsEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features27set_mutable_globals_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features24sat_float_to_int_enabledEv:
   37|  10.9k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features23enable_sat_float_to_intEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features28set_sat_float_to_int_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features22sign_extension_enabledEv:
   37|  7.50k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features21enable_sign_extensionEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features26set_sign_extension_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features12simd_enabledEv:
   37|   188k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features11enable_simdEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features16set_simd_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features15threads_enabledEv:
   37|  45.7k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features14enable_threadsEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features19set_threads_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features27function_references_enabledEv:
   37|  9.55k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features26enable_function_referencesEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features31set_function_references_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features19multi_value_enabledEv:
   37|  4.76M|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features18enable_multi_valueEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features23set_multi_value_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features17tail_call_enabledEv:
   37|  8.56k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features16enable_tail_callEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features21set_tail_call_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features19bulk_memory_enabledEv:
   37|  15.7k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features18enable_bulk_memoryEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features23set_bulk_memory_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features23reference_types_enabledEv:
   37|  31.7k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features22enable_reference_typesEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features27set_reference_types_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZN4wabt8Features18enable_annotationsEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features23set_annotations_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features21code_metadata_enabledEv:
   37|   320k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features20enable_code_metadataEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features25set_code_metadata_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features10gc_enabledEv:
   37|  8.34k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features9enable_gcEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features14set_gc_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features16memory64_enabledEv:
   37|   202k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features15enable_memory64Ev:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features20set_memory64_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features20multi_memory_enabledEv:
   37|   148k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features19enable_multi_memoryEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features24set_multi_memory_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZN4wabt8Features21enable_extended_constEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features26set_extended_const_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }
_ZNK4wabt8Features20relaxed_simd_enabledEv:
   37|  9.33k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZN4wabt8Features19enable_relaxed_simdEv:
   38|  45.6k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features24set_relaxed_simd_enabledEb:
   40|  45.6k|  void set_##variable##_enabled(bool value) {                     \
   41|  45.6k|    variable##_enabled_ = value;                                  \
   42|  45.6k|    UpdateDependencies();                                         \
   43|  45.6k|  }

_ZN4wabt6OpcodeC2ENS0_4EnumE:
   52|  7.90M|  Opcode(Enum e) : enum_(e) {}
_ZNK4wabt6OpcodecvNS0_4EnumEEv:
   53|  13.0M|  operator Enum() const { return enum_; }
_ZNK4wabt6Opcode9HasPrefixEv:
   57|   296k|  bool HasPrefix() const { return GetInfo().prefix != 0; }
_ZNK4wabt6Opcode9GetPrefixEv:
   58|  21.4k|  uint8_t GetPrefix() const { return GetInfo().prefix; }
_ZNK4wabt6Opcode7GetCodeEv:
   59|   296k|  uint32_t GetCode() const { return GetInfo().code; }
_ZNK4wabt6Opcode9GetLengthEv:
   60|   293k|  size_t GetLength() const { return GetBytes().size(); }
_ZNK4wabt6Opcode7GetNameEv:
   61|   435k|  const char* GetName() const { return GetInfo().name; }
_ZN4wabt6Opcode12IsPrefixByteEh:
   86|  7.82M|  static bool IsPrefixByte(uint8_t byte) {
   87|  7.82M|    return byte == kMathPrefix || byte == kThreadsPrefix || byte == kSimdPrefix;
  ------------------
  |  Branch (87:12): [True: 18.0k, False: 7.80M]
  |  Branch (87:35): [True: 40.2k, False: 7.76M]
  |  Branch (87:61): [True: 265k, False: 7.50M]
  ------------------
   88|  7.82M|  }
_ZN4wabt6Opcode10PrefixCodeEhj:
  109|  7.83M|  static uint32_t PrefixCode(uint8_t prefix, uint32_t code) {
  110|  7.83M|    if (code >= (1 << MAX_OPCODE_BITS)) {
  ------------------
  |  |   32|  7.83M|#define MAX_OPCODE_BITS 9
  ------------------
  |  Branch (110:9): [True: 654, False: 7.83M]
  ------------------
  111|       |      // Clamp to (2^bits - 1), since we know that it is an invalid code.
  112|    654|      code = (1 << MAX_OPCODE_BITS) - 1;
  ------------------
  |  |   32|    654|#define MAX_OPCODE_BITS 9
  ------------------
  113|    654|    }
  114|  7.83M|    return (prefix << MAX_OPCODE_BITS) | code;
  ------------------
  |  |   32|  7.83M|#define MAX_OPCODE_BITS 9
  ------------------
  115|  7.83M|  }
_ZN4wabt6Opcode19EncodeInvalidOpcodeEj:
  129|  3.03k|  static Enum EncodeInvalidOpcode(uint32_t prefix_code) {
  130|  3.03k|    Enum result = static_cast<Enum>(~prefix_code + 1);
  131|  3.03k|    assert(result >= Invalid);
  132|  3.03k|    return result;
  133|  3.03k|  }
_ZN4wabt6Opcode19DecodeInvalidOpcodeENS0_4EnumEPhPj:
  137|  7.70k|                                  uint32_t* out_code) {
  138|  7.70k|    uint32_t prefix_code = ~static_cast<uint32_t>(e) + 1;
  139|  7.70k|    *out_prefix = prefix_code >> MAX_OPCODE_BITS;
  ------------------
  |  |   32|  7.70k|#define MAX_OPCODE_BITS 9
  ------------------
  140|  7.70k|    *out_code = prefix_code & 0xff;
  141|  7.70k|  }
_ZN4wabt6Opcode8FromCodeEj:
  150|  7.50M|inline Opcode Opcode::FromCode(uint32_t code) {
  151|  7.50M|  return FromCode(0, code);
  152|  7.50M|}
_ZN4wabt6Opcode8FromCodeEhj:
  155|  7.82M|inline Opcode Opcode::FromCode(uint8_t prefix, uint32_t code) {
  156|  7.82M|  uint32_t prefix_code = PrefixCode(prefix, code);
  157|       |
  158|  7.82M|  if (WABT_LIKELY(prefix_code < WABT_ARRAY_SIZE(WabtOpcodeCodeTable))) {
  ------------------
  |  |   73|  7.82M|#define WABT_LIKELY(x) __builtin_expect(!!(x), 1)
  |  |  ------------------
  |  |  |  Branch (73:24): [True: 7.82M, False: 0]
  |  |  ------------------
  ------------------
  159|  7.82M|    uint32_t value = WabtOpcodeCodeTable[prefix_code];
  160|       |    // The default value in the table is 0. That's a valid value, but only if
  161|       |    // the code is 0 (for nop).
  162|  7.82M|    if (WABT_LIKELY(value != 0 || code == 0)) {
  ------------------
  |  |   73|  8.65M|#define WABT_LIKELY(x) __builtin_expect(!!(x), 1)
  |  |  ------------------
  |  |  |  Branch (73:24): [True: 7.82M, False: 3.03k]
  |  |  |  Branch (73:44): [True: 6.99M, False: 833k]
  |  |  |  Branch (73:44): [True: 830k, False: 3.03k]
  |  |  ------------------
  ------------------
  163|  7.82M|      return Opcode(static_cast<Enum>(value));
  164|  7.82M|    }
  165|  7.82M|  }
  166|       |
  167|  3.03k|  return Opcode(EncodeInvalidOpcode(prefix_code));
  168|  7.82M|}

_ZN4wabt6ResultC2ENS0_4EnumE:
   29|   202M|  Result(Enum e) : enum_(e) {}
_ZNK4wabt6ResultcvNS0_4EnumEEv:
   30|   188M|  operator Enum() const { return enum_; }
_ZN4wabtorENS_6ResultES0_:
   37|  61.3k|inline Result operator|(Result lhs, Result rhs) {
   38|  61.3k|  return (lhs == Result::Error || rhs == Result::Error) ? Result::Error
  ------------------
  |  Branch (38:11): [True: 25.7k, False: 35.5k]
  |  Branch (38:35): [True: 31.9k, False: 3.69k]
  ------------------
   39|  61.3k|                                                        : Result::Ok;
   40|  61.3k|}
_ZN4wabt6ResultoRES0_:
   42|  61.3k|inline Result& Result::operator|=(Result rhs) {
   43|  61.3k|  enum_ = *this | rhs;
   44|  61.3k|  return *this;
   45|  61.3k|}
_ZN4wabt9SucceededENS_6ResultE:
   47|  45.5M|inline bool Succeeded(Result result) {
   48|  45.5M|  return result == Result::Ok;
   49|  45.5M|}
_ZN4wabt6FailedENS_6ResultE:
   50|   143M|inline bool Failed(Result result) {
   51|   143M|  return result == Result::Error;
   52|   143M|}

_ZN4wabt6Stream7WriteU8EjPKcNS_10PrintCharsE:
   88|  27.7M|               PrintChars print_chars = PrintChars::No) {
   89|  27.7M|    assert(value <= UINT8_MAX);
   90|  27.7M|    Write(static_cast<uint8_t>(value), desc, print_chars);
   91|  27.7M|  }
_ZN4wabt6Stream9WriteCharEcPKcNS_10PrintCharsE:
  110|  27.7M|                 PrintChars print_chars = PrintChars::No) {
  111|  27.7M|    WriteU8(static_cast<unsigned char>(c), desc, print_chars);
  112|  27.7M|  }
_ZN4wabt6Stream5WriteIhEEvRKT_PKcNS_10PrintCharsE:
  143|  27.7M|  void Write(const T& data, const char* desc, PrintChars print_chars) {
  144|       |#if WABT_BIG_ENDIAN
  145|       |    char tmp[sizeof(T)];
  146|       |    memcpy(tmp, &data, sizeof(tmp));
  147|       |    SwapBytesSized(tmp, sizeof(tmp));
  148|       |    WriteData(tmp, sizeof(tmp), desc, print_chars);
  149|       |#else
  150|  27.7M|    WriteData(&data, sizeof(data), desc, print_chars);
  151|  27.7M|#endif
  152|  27.7M|  }
_ZN4wabt6StreamD2Ev:
   38|  73.0k|  virtual ~Stream() = default;

_ZN4wabt12StringPrintfEPKcz:
   53|  25.1k|    StringPrintf(const char* format, ...) {
   54|  25.1k|  va_list args;
   55|  25.1k|  va_list args_copy;
   56|  25.1k|  va_start(args, format);
   57|  25.1k|  va_copy(args_copy, args);
   58|  25.1k|  size_t len = wabt_vsnprintf(nullptr, 0, format, args) + 1;  // For \0.
  ------------------
  |  |  301|  25.1k|#define wabt_vsnprintf vsnprintf
  ------------------
   59|  25.1k|  std::vector<char> buffer(len);
   60|  25.1k|  va_end(args);
   61|  25.1k|  wabt_vsnprintf(buffer.data(), len, format, args_copy);
  ------------------
  |  |  301|  25.1k|#define wabt_vsnprintf vsnprintf
  ------------------
   62|  25.1k|  va_end(args_copy);
   63|  25.1k|  return std::string(buffer.data(), len - 1);
   64|  25.1k|}

_ZN4wabtplERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEENS0_17basic_string_viewIcS3_EE:
   38|  7.18k|inline std::string operator+(const std::string& x, std::string_view y) {
   39|  7.18k|  return std::string_view(x) + y;
   40|  7.18k|}
_ZN4wabtplENSt3__117basic_string_viewIcNS0_11char_traitsIcEEEES4_:
   30|  14.3k|inline std::string operator+(std::string_view x, std::string_view y) {
   31|  14.3k|  std::string s;
   32|  14.3k|  s.reserve(x.size() + y.size());
   33|  14.3k|  s.append(x.data(), x.size());
   34|  14.3k|  s.append(y.data(), y.size());
   35|  14.3k|  return s;
   36|  14.3k|}
_ZN4wabtplENSt3__117basic_string_viewIcNS0_11char_traitsIcEEEEPKc:
   50|  7.18k|inline std::string operator+(std::string_view x, const char* y) {
   51|  7.18k|  return x + std::string_view(y);
   52|  7.18k|}

_ZN4wabt4TypeC2Ei:
   62|  4.90M|      : enum_(static_cast<Enum>(code)), type_index_(kInvalidIndex) {}
_ZN4wabt4TypeC2ENS0_4EnumE:
   63|  52.9k|  Type(Enum e) : enum_(e), type_index_(kInvalidIndex) {}
_ZN4wabt4TypeC2ENS0_4EnumEj:
   64|  5.99k|  Type(Enum e, Index type_index) : enum_(e), type_index_(type_index) {
   65|  5.99k|    assert(e == Enum::Reference);
   66|  5.99k|  }
_ZNK4wabt4TypecvNS0_4EnumEEv:
   67|  9.67M|  constexpr operator Enum() const { return enum_; }
_ZNK4wabt4Type5IsRefEv:
   69|  18.7k|  bool IsRef() const {
   70|  18.7k|    return enum_ == Type::ExternRef || enum_ == Type::FuncRef ||
  ------------------
  |  Branch (70:12): [True: 8.69k, False: 10.0k]
  |  Branch (70:40): [True: 695, False: 9.38k]
  ------------------
   71|  18.7k|           enum_ == Type::Reference;
  ------------------
  |  Branch (71:12): [True: 8.52k, False: 854]
  ------------------
   72|  18.7k|  }
_ZNK4wabt4Type7GetNameEv:
   81|  24.1k|  std::string GetName() const {
   82|  24.1k|    switch (enum_) {
   83|  1.96k|      case Type::I32:       return "i32";
  ------------------
  |  Branch (83:7): [True: 1.96k, False: 22.1k]
  ------------------
   84|    721|      case Type::I64:       return "i64";
  ------------------
  |  Branch (84:7): [True: 721, False: 23.4k]
  ------------------
   85|    914|      case Type::F32:       return "f32";
  ------------------
  |  Branch (85:7): [True: 914, False: 23.2k]
  ------------------
   86|  7.74k|      case Type::F64:       return "f64";
  ------------------
  |  Branch (86:7): [True: 7.74k, False: 16.4k]
  ------------------
   87|    809|      case Type::V128:      return "v128";
  ------------------
  |  Branch (87:7): [True: 809, False: 23.3k]
  ------------------
   88|     79|      case Type::I8:        return "i8";
  ------------------
  |  Branch (88:7): [True: 79, False: 24.0k]
  ------------------
   89|      0|      case Type::I16:       return "i16";
  ------------------
  |  Branch (89:7): [True: 0, False: 24.1k]
  ------------------
   90|  1.26k|      case Type::FuncRef:   return "funcref";
  ------------------
  |  Branch (90:7): [True: 1.26k, False: 22.8k]
  ------------------
   91|     77|      case Type::Func:      return "func";
  ------------------
  |  Branch (91:7): [True: 77, False: 24.0k]
  ------------------
   92|     45|      case Type::Void:      return "void";
  ------------------
  |  Branch (92:7): [True: 45, False: 24.1k]
  ------------------
   93|      6|      case Type::Any:       return "any";
  ------------------
  |  Branch (93:7): [True: 6, False: 24.1k]
  ------------------
   94|  4.89k|      case Type::ExternRef: return "externref";
  ------------------
  |  Branch (94:7): [True: 4.89k, False: 19.2k]
  ------------------
   95|  5.48k|      case Type::Reference:
  ------------------
  |  Branch (95:7): [True: 5.48k, False: 18.6k]
  ------------------
   96|  5.48k|        return StringPrintf("(ref %d)", type_index_);
   97|    143|      default:
  ------------------
  |  Branch (97:7): [True: 143, False: 24.0k]
  ------------------
   98|    143|        return StringPrintf("<type_index[%d]>", enum_);
   99|  24.1k|    }
  100|  24.1k|  }
_ZNK4wabt4Type14GetRefKindNameEv:
  102|    206|  const char* GetRefKindName() const {
  103|    206|    switch (enum_) {
  104|     45|      case Type::FuncRef:   return "func";
  ------------------
  |  Branch (104:7): [True: 45, False: 161]
  ------------------
  105|     84|      case Type::ExternRef: return "extern";
  ------------------
  |  Branch (105:7): [True: 84, False: 122]
  ------------------
  106|      0|      case Type::Struct:    return "struct";
  ------------------
  |  Branch (106:7): [True: 0, False: 206]
  ------------------
  107|      0|      case Type::Array:     return "array";
  ------------------
  |  Branch (107:7): [True: 0, False: 206]
  ------------------
  108|     77|      default:              return "<invalid>";
  ------------------
  |  Branch (108:7): [True: 77, False: 129]
  ------------------
  109|    206|    }
  110|    206|  }
_ZNK4wabt4Type7IsIndexEv:
  124|  4.78M|  bool IsIndex() const { return static_cast<int32_t>(enum_) >= 0; }
_ZNK4wabt4Type8GetIndexEv:
  126|  14.5k|  Index GetIndex() const {
  127|  14.5k|    assert(IsIndex());
  128|  14.5k|    return static_cast<Index>(enum_);
  129|  14.5k|  }

_ZN4wabt19BinaryReaderLoggingC2EPNS_6StreamEPNS_20BinaryReaderDelegateE:
   53|  45.6k|    : stream_(stream), reader_(forward), indent_(0) {}

_ZNK4wabt12ObjdumpNames3GetEj:
 2408|  5.19M|std::string_view ObjdumpNames::Get(Index index) const {
 2409|  5.19M|  auto iter = names.find(index);
 2410|  5.19M|  if (iter == names.end())
  ------------------
  |  Branch (2410:7): [True: 4.65M, False: 538k]
  ------------------
 2411|  4.65M|    return std::string_view();
 2412|   538k|  return iter->second;
 2413|  5.19M|}
_ZN4wabt12ObjdumpNames3SetEjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
 2415|   176k|void ObjdumpNames::Set(Index index, std::string_view name) {
 2416|   176k|  names[index] = std::string(name);
 2417|   176k|}
_ZNK4wabt17ObjdumpLocalNames3GetEjj:
 2420|  1.57k|                                        Index local_index) const {
 2421|  1.57k|  auto iter = names.find(std::pair<Index, Index>(function_index, local_index));
 2422|  1.57k|  if (iter == names.end())
  ------------------
  |  Branch (2422:7): [True: 1.56k, False: 9]
  ------------------
 2423|  1.56k|    return std::string_view();
 2424|      9|  return iter->second;
 2425|  1.57k|}
_ZN4wabt17ObjdumpLocalNames3SetEjjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
 2429|  6.06k|                            std::string_view name) {
 2430|  6.06k|  names[std::pair<Index, Index>(function_index, local_index)] =
 2431|  6.06k|      std::string(name);
 2432|  6.06k|}
_ZN4wabt17ReadBinaryObjdumpEPKhmPNS_14ObjdumpOptionsEPNS_12ObjdumpStateE:
 2437|  45.6k|                         ObjdumpState* state) {
 2438|  45.6k|  Features features;
 2439|  45.6k|  features.EnableAll();
 2440|  45.6k|  const bool kReadDebugNames = true;
 2441|  45.6k|  const bool kStopOnFirstError = false;
 2442|  45.6k|  const bool kFailOnCustomSectionError = false;
 2443|  45.6k|  ReadBinaryOptions read_options(features, options->log_stream, kReadDebugNames,
 2444|  45.6k|                                 kStopOnFirstError, kFailOnCustomSectionError);
 2445|       |
 2446|  45.6k|  switch (options->mode) {
 2447|  9.13k|    case ObjdumpMode::Prepass: {
  ------------------
  |  Branch (2447:5): [True: 9.13k, False: 36.5k]
  ------------------
 2448|  9.13k|      read_options.skip_function_bodies = true;
 2449|  9.13k|      BinaryReaderObjdumpPrepass reader(data, size, options, state);
 2450|  9.13k|      return ReadBinary(data, size, &reader, read_options);
 2451|      0|    }
 2452|  9.13k|    case ObjdumpMode::Disassemble: {
  ------------------
  |  Branch (2452:5): [True: 9.13k, False: 36.5k]
  ------------------
 2453|  9.13k|      BinaryReaderObjdumpDisassemble reader(data, size, options, state);
 2454|  9.13k|      return ReadBinary(data, size, &reader, read_options);
 2455|      0|    }
 2456|  27.3k|    default: {
  ------------------
  |  Branch (2456:5): [True: 27.3k, False: 18.2k]
  ------------------
 2457|  27.3k|      read_options.skip_function_bodies = true;
 2458|  27.3k|      BinaryReaderObjdump reader(data, size, options, state);
 2459|  27.3k|      return ReadBinary(data, size, &reader, read_options);
 2460|      0|    }
 2461|  45.6k|  }
 2462|  45.6k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_123BinaryReaderObjdumpBaseC2EPKhmPNS_14ObjdumpOptionsEPNS_12ObjdumpStateE:
   96|  45.6k|      err_stream_(FileStream::CreateStderr()) {
   97|  45.6k|  ZeroMemory(section_starts_);
   98|  45.6k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase12BeginSectionEjNS_13BinarySectionEm:
  102|  8.16M|                                             Offset size) {
  103|  8.16M|  section_starts_[static_cast<size_t>(section_code)] = state->offset;
  104|  8.16M|  section_types_.push_back(section_code);
  105|  8.16M|  return Result::Ok;
  106|  8.16M|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase7OnErrorERKNS_5ErrorE:
  108|  8.93M|bool BinaryReaderObjdumpBase::OnError(const Error&) {
  109|       |  // Tell the BinaryReader that this error is "handled" for all passes other
  110|       |  // than the prepass. When the error is handled the default message will be
  111|       |  // suppressed.
  112|  8.93M|  return options_->mode != ObjdumpMode::Prepass;
  113|  8.93M|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase11BeginModuleEj:
  115|  45.2k|Result BinaryReaderObjdumpBase::BeginModule(uint32_t version) {
  116|  45.2k|  switch (options_->mode) {
  ------------------
  |  Branch (116:11): [True: 0, False: 45.2k]
  ------------------
  117|  9.04k|    case ObjdumpMode::Headers:
  ------------------
  |  Branch (117:5): [True: 9.04k, False: 36.1k]
  ------------------
  118|  9.04k|      printf("\n");
  119|  9.04k|      printf("Sections:\n\n");
  120|  9.04k|      break;
  121|  9.04k|    case ObjdumpMode::Details:
  ------------------
  |  Branch (121:5): [True: 9.04k, False: 36.1k]
  ------------------
  122|  9.04k|      printf("\n");
  123|  9.04k|      printf("Section Details:\n\n");
  124|  9.04k|      break;
  125|  9.04k|    case ObjdumpMode::Disassemble:
  ------------------
  |  Branch (125:5): [True: 9.04k, False: 36.1k]
  ------------------
  126|  9.04k|      printf("\n");
  127|  9.04k|      printf("Code Disassembly:\n\n");
  128|  9.04k|      break;
  129|  9.04k|    case ObjdumpMode::Prepass: {
  ------------------
  |  Branch (129:5): [True: 9.04k, False: 36.1k]
  ------------------
  130|  9.04k|      std::string_view basename = GetBasename(options_->filename);
  131|  9.04k|      if (basename == "-") {
  ------------------
  |  Branch (131:11): [True: 0, False: 9.04k]
  ------------------
  132|      0|        basename = "<stdin>";
  133|      0|      }
  134|  9.04k|      printf("%s:\tfile format wasm %#x\n", std::string(basename).c_str(),
  135|  9.04k|             version);
  136|  9.04k|      break;
  137|      0|    }
  138|  9.04k|    case ObjdumpMode::RawData:
  ------------------
  |  Branch (138:5): [True: 9.04k, False: 36.1k]
  ------------------
  139|  9.04k|      break;
  140|  45.2k|  }
  141|       |
  142|  45.2k|  return Result::Ok;
  143|  45.2k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass12BeginSectionEjNS_13BinarySectionEm:
  243|  1.63M|                      Offset size) override {
  244|  1.63M|    BinaryReaderObjdumpBase::BeginSection(section_index, section_code, size);
  245|  1.63M|    if (section_code != BinarySection::Custom) {
  ------------------
  |  Branch (245:9): [True: 9.72k, False: 1.62M]
  ------------------
  246|  9.72k|      objdump_state_->section_names.Set(section_index,
  247|  9.72k|                                        wabt::GetSectionName(section_code));
  248|  9.72k|    }
  249|  1.63M|    return Result::Ok;
  250|  1.63M|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass18BeginCustomSectionEjmNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  254|   136k|                            std::string_view section_name) override {
  255|   136k|    objdump_state_->section_names.Set(section_index, section_name);
  256|   136k|    return Result::Ok;
  257|   136k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass10OnFuncTypeEjjPNS_4TypeEjS3_:
  268|    584|                    Type* result_types) override {
  269|    584|    objdump_state_->function_param_counts[index] = param_count;
  270|    584|    return Result::Ok;
  271|    584|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass12OnImportFuncEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jj:
  388|  3.71k|                      Index sig_index) override {
  389|  3.71k|    SetFunctionName(func_index, module_name + "." + field_name);
  390|  3.71k|    return Result::Ok;
  391|  3.71k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass15SetFunctionNameEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  473|  11.9k|                                                 std::string_view name) {
  474|  11.9k|  objdump_state_->function_names.Set(index, name);
  475|  11.9k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass13OnImportTableEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jNS_4TypeEPKNS_6LimitsE:
  417|  2.83k|                       const Limits* elem_limits) override {
  418|  2.83k|    SetTableName(table_index, module_name + "." + field_name);
  419|  2.83k|    return Result::Ok;
  420|  2.83k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass12SetTableNameEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  494|  6.58k|                                              std::string_view name) {
  495|  6.58k|  objdump_state_->table_names.Set(index, name);
  496|  6.58k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass14OnImportGlobalEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jNS_4TypeEb:
  407|    472|                        bool mutable_) override {
  408|    472|    SetGlobalName(global_index, module_name + "." + field_name);
  409|    472|    return Result::Ok;
  410|    472|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass13SetGlobalNameEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  478|  2.11k|                                               std::string_view name) {
  479|  2.11k|  objdump_state_->global_names.Set(index, name);
  480|  2.11k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass11OnImportTagEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jj:
  397|    166|                     Index sig_index) override {
  398|    166|    SetTagName(tag_index, module_name + "." + field_name);
  399|    166|    return Result::Ok;
  400|    166|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass10SetTagNameEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  489|    732|                                            std::string_view name) {
  490|    732|  objdump_state_->tag_names.Set(index, name);
  491|    732|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass8OnExportEjNS_12ExternalKindEjNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEE:
  425|  2.00k|                  std::string_view name) override {
  426|  2.00k|    if (kind == ExternalKind::Func) {
  ------------------
  |  Branch (426:9): [True: 1.58k, False: 427]
  ------------------
  427|  1.58k|      SetFunctionName(item_index, name);
  428|  1.58k|    } else if (kind == ExternalKind::Global) {
  ------------------
  |  Branch (428:16): [True: 155, False: 272]
  ------------------
  429|    155|      SetGlobalName(item_index, name);
  430|    155|    }
  431|  2.00k|    return Result::Ok;
  432|  2.00k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase8OnOpcodeENS_6OpcodeE:
  221|  7.86M|Result BinaryReaderObjdumpBase::OnOpcode(Opcode opcode) {
  222|  7.86M|  current_opcode = opcode;
  223|  7.86M|  return Result::Ok;
  224|  7.86M|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass12OnModuleNameENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  439|  1.62k|  Result OnModuleName(std::string_view name) override {
  440|  1.62k|    if (options_->mode == ObjdumpMode::Prepass) {
  ------------------
  |  Branch (440:9): [True: 1.62k, False: 0]
  ------------------
  441|  1.62k|      printf("module name: <" PRIstringview ">\n",
  442|  1.62k|             WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|  1.62k|  static_cast<int>((x).length()), (x).data()
  ------------------
  443|  1.62k|    }
  444|  1.62k|    return Result::Ok;
  445|  1.62k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass14OnFunctionNameEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  259|  5.97k|  Result OnFunctionName(Index index, std::string_view name) override {
  260|  5.97k|    SetFunctionName(index, name);
  261|  5.97k|    return Result::Ok;
  262|  5.97k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass11OnLocalNameEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  307|  6.06k|                     std::string_view local_name) override {
  308|  6.06k|    SetLocalName(function_index, local_index, local_name);
  309|  6.06k|    return Result::Ok;
  310|  6.06k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass12SetLocalNameEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  484|  6.06k|                                              std::string_view name) {
  485|  6.06k|  objdump_state_->local_names.Set(function_index, local_index, name);
  486|  6.06k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass11OnNameEntryENS_21NameSectionSubsectionEjNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEE:
  275|  5.37k|                     std::string_view name) override {
  276|  5.37k|    switch (type) {
  277|       |      // TODO(sbc): remove OnFunctionName in favor of just using
  278|       |      // OnNameEntry so that this works
  279|       |      /*
  280|       |      case NameSectionSubsection::Function:
  281|       |        SetFunctionName(index, name);
  282|       |        break;
  283|       |      */
  284|    134|      case NameSectionSubsection::Type:
  ------------------
  |  Branch (284:7): [True: 134, False: 5.24k]
  ------------------
  285|    134|        SetTypeName(index, name);
  286|    134|        break;
  287|    234|      case NameSectionSubsection::Global:
  ------------------
  |  Branch (287:7): [True: 234, False: 5.14k]
  ------------------
  288|    234|        SetGlobalName(index, name);
  289|    234|        break;
  290|    454|      case NameSectionSubsection::Table:
  ------------------
  |  Branch (290:7): [True: 454, False: 4.92k]
  ------------------
  291|    454|        SetTableName(index, name);
  292|    454|        break;
  293|  3.78k|      case NameSectionSubsection::DataSegment:
  ------------------
  |  Branch (293:7): [True: 3.78k, False: 1.58k]
  ------------------
  294|  3.78k|        SetSegmentName(index, name);
  295|  3.78k|        break;
  296|     46|      case NameSectionSubsection::Tag:
  ------------------
  |  Branch (296:7): [True: 46, False: 5.33k]
  ------------------
  297|     46|        SetTagName(index, name);
  298|     46|        break;
  299|    721|      default:
  ------------------
  |  Branch (299:7): [True: 721, False: 4.65k]
  ------------------
  300|    721|        break;
  301|  5.37k|    }
  302|  5.37k|    return Result::Ok;
  303|  5.37k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass11SetTypeNameEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  468|    134|                                             std::string_view name) {
  469|    134|  objdump_state_->type_names.Set(index, name);
  470|    134|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass14SetSegmentNameEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
  499|  7.94k|                                                std::string_view name) {
  500|  7.94k|  objdump_state_->segment_names.Set(index, name);
  501|  7.94k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase12OnRelocCountEjj:
  226|  37.9k|Result BinaryReaderObjdumpBase::OnRelocCount(Index count, Index section_index) {
  227|  37.9k|  if (section_index >= section_types_.size()) {
  ------------------
  |  Branch (227:7): [True: 7.77k, False: 30.1k]
  ------------------
  228|  7.77k|    err_stream_->Writef("invalid relocation section index: %" PRIindex "\n",
  229|  7.77k|                        section_index);
  230|  7.77k|    reloc_section_ = BinarySection::Invalid;
  231|  7.77k|    return Result::Error;
  232|  7.77k|  }
  233|  30.1k|  reloc_section_ = section_types_[section_index];
  234|  30.1k|  return Result::Ok;
  235|  37.9k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass7OnRelocENS_9RelocTypeEmjj:
  506|  20.4k|                                           uint32_t addend) {
  507|  20.4k|  BinaryReaderObjdumpBase::OnReloc(type, offset, index, addend);
  508|  20.4k|  if (reloc_section_ == BinarySection::Code) {
  ------------------
  |  Branch (508:7): [True: 254, False: 20.2k]
  ------------------
  509|    254|    objdump_state_->code_relocations.emplace_back(type, offset, index, addend);
  510|  20.2k|  } else if (reloc_section_ == BinarySection::Data) {
  ------------------
  |  Branch (510:14): [True: 4.43k, False: 15.8k]
  ------------------
  511|  4.43k|    objdump_state_->data_relocations.emplace_back(type, offset, index, addend);
  512|  4.43k|  }
  513|  20.4k|  return Result::Ok;
  514|  20.4k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass13OnSymbolCountEj:
  312|  11.4k|  Result OnSymbolCount(Index count) override {
  313|  11.4k|    objdump_state_->symtab.resize(count);
  314|  11.4k|    return Result::Ok;
  315|  11.4k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass12OnDataSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEjjj:
  322|  3.98k|                      uint32_t size) override {
  323|  3.98k|    objdump_state_->symtab[index] = {SymbolType::Data, std::string(name), 0};
  324|  3.98k|    return Result::Ok;
  325|  3.98k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass16OnFunctionSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
  330|  12.6k|                          Index func_index) override {
  331|  12.6k|    if (!name.empty()) {
  ------------------
  |  Branch (331:9): [True: 678, False: 11.9k]
  ------------------
  332|    678|      SetFunctionName(func_index, name);
  333|    678|    }
  334|  12.6k|    objdump_state_->symtab[index] = {SymbolType::Function, std::string(name),
  335|  12.6k|                                     func_index};
  336|  12.6k|    return Result::Ok;
  337|  12.6k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass14OnGlobalSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
  342|  3.46k|                        Index global_index) override {
  343|  3.46k|    if (!name.empty()) {
  ------------------
  |  Branch (343:9): [True: 1.25k, False: 2.21k]
  ------------------
  344|  1.25k|      SetGlobalName(global_index, name);
  345|  1.25k|    }
  346|  3.46k|    objdump_state_->symtab[index] = {SymbolType::Global, std::string(name),
  347|  3.46k|                                     global_index};
  348|  3.46k|    return Result::Ok;
  349|  3.46k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass15OnSectionSymbolEjjj:
  353|  4.28k|                         Index section_index) override {
  354|  4.28k|    objdump_state_->symtab[index] = {SymbolType::Section,
  355|  4.28k|                                     std::string(GetSectionName(section_index)),
  356|  4.28k|                                     section_index};
  357|  4.28k|    return Result::Ok;
  358|  4.28k|  }
binary-reader-objdump.cc:_ZNK4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase14GetSectionNameEj:
  163|  4.95M|std::string_view BinaryReaderObjdumpBase::GetSectionName(Index index) const {
  164|  4.95M|  return objdump_state_->section_names.Get(index);
  165|  4.95M|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass11OnTagSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
  363|  2.96k|                     Index tag_index) override {
  364|  2.96k|    if (!name.empty()) {
  ------------------
  |  Branch (364:9): [True: 520, False: 2.44k]
  ------------------
  365|    520|      SetTagName(tag_index, name);
  366|    520|    }
  367|  2.96k|    objdump_state_->symtab[index] = {SymbolType::Tag, std::string(name),
  368|  2.96k|                                     tag_index};
  369|  2.96k|    return Result::Ok;
  370|  2.96k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass13OnTableSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
  375|  5.48k|                       Index table_index) override {
  376|  5.48k|    if (!name.empty()) {
  ------------------
  |  Branch (376:9): [True: 3.29k, False: 2.18k]
  ------------------
  377|  3.29k|      SetTableName(table_index, name);
  378|  3.29k|    }
  379|  5.48k|    objdump_state_->symtab[index] = {SymbolType::Table, std::string(name),
  380|  5.48k|                                     table_index};
  381|  5.48k|    return Result::Ok;
  382|  5.48k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_126BinaryReaderObjdumpPrepass13OnSegmentInfoEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEmj:
  450|  4.15k|                       uint32_t flags) override {
  451|  4.15k|    SetSegmentName(index, name);
  452|  4.15k|    return Result::Ok;
  453|  4.15k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble10OnFunctionEjj:
  948|  15.2k|                                                  Index sig_index) {
  949|  15.2k|  objdump_state_->function_types[index] = sig_index;
  950|  15.2k|  return Result::Ok;
  951|  15.2k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble17BeginFunctionBodyEjm:
  954|  2.09k|                                                         Offset size) {
  955|  2.09k|  printf("%06" PRIzx " func[%" PRIindex "]", GetPrintOffset(state->offset),
  956|  2.09k|         index);
  957|  2.09k|  auto name = GetFunctionName(index);
  958|  2.09k|  if (!name.empty()) {
  ------------------
  |  Branch (958:7): [True: 66, False: 2.02k]
  ------------------
  959|     66|    printf(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|     66|  static_cast<int>((x).length()), (x).data()
  ------------------
  960|     66|  }
  961|  2.09k|  printf(":\n");
  962|       |
  963|  2.09k|  last_opcode_end = 0;
  964|  2.09k|  in_function_body = true;
  965|  2.09k|  current_function_index = index;
  966|  2.09k|  auto type_index = objdump_state_->function_types[index];
  967|  2.09k|  local_index_ = objdump_state_->function_param_counts[type_index];
  968|  2.09k|  return Result::Ok;
  969|  2.09k|}
binary-reader-objdump.cc:_ZNK4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase14GetPrintOffsetEm:
  215|   151k|Offset BinaryReaderObjdumpBase::GetPrintOffset(Offset offset) const {
  216|   151k|  return options_->section_offsets
  ------------------
  |  Branch (216:10): [True: 0, False: 151k]
  ------------------
  217|   151k|             ? offset - GetSectionStart(BinarySection::Code)
  218|   151k|             : offset;
  219|   151k|}
binary-reader-objdump.cc:_ZNK4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase15GetSectionStartENS_13BinarySectionE:
   68|  67.0k|  Offset GetSectionStart(BinarySection section_code) const {
   69|  67.0k|    return section_starts_[static_cast<size_t>(section_code)];
   70|  67.0k|  }
binary-reader-objdump.cc:_ZNK4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase15GetFunctionNameEj:
  149|   182k|std::string_view BinaryReaderObjdumpBase::GetFunctionName(Index index) const {
  150|   182k|  return objdump_state_->function_names.Get(index);
  151|   182k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble16OnLocalDeclCountEj:
  613|  2.03k|Result BinaryReaderObjdumpDisassemble::OnLocalDeclCount(Index count) {
  614|  2.03k|  if (!in_function_body) {
  ------------------
  |  Branch (614:7): [True: 0, False: 2.03k]
  ------------------
  615|      0|    return Result::Ok;
  616|      0|  }
  617|  2.03k|  current_opcode_offset = state->offset;
  618|  2.03k|  return Result::Ok;
  619|  2.03k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble11OnLocalDeclEjjNS_4TypeE:
  623|    920|                                                   Type type) {
  624|    920|  if (!in_function_body) {
  ------------------
  |  Branch (624:7): [True: 0, False: 920]
  ------------------
  625|      0|    return Result::Ok;
  626|      0|  }
  627|    920|  Offset offset = current_opcode_offset;
  628|    920|  size_t data_size = state->offset - offset;
  629|       |
  630|    920|  printf(" %06" PRIzx ":", GetPrintOffset(offset));
  631|  2.91k|  for (size_t i = 0; i < data_size && i < IMMEDIATE_OCTET_COUNT;
  ------------------
  |  |  611|  1.99k|#define IMMEDIATE_OCTET_COUNT 9
  ------------------
  |  Branch (631:22): [True: 1.99k, False: 920]
  |  Branch (631:39): [True: 1.99k, False: 0]
  ------------------
  632|  1.99k|       i++, offset++) {
  633|  1.99k|    printf(" %02x", data_[offset]);
  634|  1.99k|  }
  635|  7.20k|  for (size_t i = data_size; i < IMMEDIATE_OCTET_COUNT; i++) {
  ------------------
  |  |  611|  7.20k|#define IMMEDIATE_OCTET_COUNT 9
  ------------------
  |  Branch (635:30): [True: 6.28k, False: 920]
  ------------------
  636|  6.28k|    printf("   ");
  637|  6.28k|  }
  638|    920|  printf(" | local[");
  639|    920|  if (count > 0) {
  ------------------
  |  Branch (639:7): [True: 853, False: 67]
  ------------------
  640|    853|    printf("%" PRIindex, local_index_);
  ------------------
  |  |   80|    853|#define PRIindex "u"
  ------------------
  641|       |
  642|    853|    if (count != 1) {
  ------------------
  |  Branch (642:9): [True: 566, False: 287]
  ------------------
  643|    566|      printf("..%" PRIindex "", local_index_ + count - 1);
  644|    566|    }
  645|    853|    local_index_ += count;
  646|    853|  }
  647|    920|  printf("] type=%s\n", type.GetName().c_str());
  648|       |
  649|    920|  last_opcode_end = current_opcode_offset + data_size;
  650|    920|  current_opcode_offset = last_opcode_end;
  651|       |
  652|    920|  return Result::Ok;
  653|    920|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble8OnOpcodeENS_6OpcodeE:
  580|  1.60M|Result BinaryReaderObjdumpDisassemble::OnOpcode(Opcode opcode) {
  581|  1.60M|  BinaryReaderObjdumpBase::OnOpcode(opcode);
  582|  1.60M|  if (!in_function_body) {
  ------------------
  |  Branch (582:7): [True: 1.46M, False: 147k]
  ------------------
  583|  1.46M|    return Result::Ok;
  584|  1.46M|  }
  585|   147k|  if (options_->debug) {
  ------------------
  |  Branch (585:7): [True: 0, False: 147k]
  ------------------
  586|      0|    const char* opcode_name = opcode.GetName();
  587|      0|    err_stream_->Writef("on_opcode: %#" PRIzx ": %s\n", state->offset,
  588|      0|                        opcode_name);
  589|      0|  }
  590|       |
  591|   147k|  if (last_opcode_end) {
  ------------------
  |  Branch (591:7): [True: 146k, False: 1.78k]
  ------------------
  592|       |    // Takes care of cases where opcode's bytes was a non-canonical leb128
  593|       |    // encoding. In this case, opcode.GetLength() under-reports the length,
  594|       |    // since it canonicalizes the opcode.
  595|   146k|    if (state->offset < last_opcode_end + opcode.GetLength()) {
  ------------------
  |  Branch (595:9): [True: 0, False: 146k]
  ------------------
  596|      0|      Opcode missing_opcode = Opcode::FromCode(data_[last_opcode_end]);
  597|      0|      const char* opcode_name = missing_opcode.GetName();
  598|      0|      fprintf(stderr,
  599|      0|              "error: %#" PRIzx " missing opcode callback at %#" PRIzx
  600|      0|              " (%#02x=%s)\n",
  601|      0|              state->offset, last_opcode_end + 1, data_[last_opcode_end],
  602|      0|              opcode_name);
  603|      0|      return Result::Error;
  604|      0|    }
  605|   146k|  }
  606|       |
  607|   147k|  current_opcode_offset = state->offset;
  608|   147k|  return Result::Ok;
  609|   147k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble12OnOpcodeBareEv:
  735|   479k|Result BinaryReaderObjdumpDisassemble::OnOpcodeBare() {
  736|   479k|  if (!in_function_body) {
  ------------------
  |  Branch (736:7): [True: 388k, False: 91.1k]
  ------------------
  737|   388k|    return Result::Ok;
  738|   388k|  }
  739|  91.1k|  LogOpcode(0, nullptr);
  740|  91.1k|  return Result::Ok;
  741|   479k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble9LogOpcodeEPKcz:
  655|   147k|void BinaryReaderObjdumpDisassemble::LogOpcode(const char* fmt, ...) {
  656|       |  // BinaryReaderObjdumpDisassemble is only used to disassembly function bodies
  657|       |  // so this should never be called for instructions outside of function bodies
  658|       |  // (i.e. init expresions).
  659|   147k|  assert(in_function_body);
  660|   147k|  if (skip_next_opcode_) {
  ------------------
  |  Branch (660:7): [True: 349, False: 147k]
  ------------------
  661|    349|    skip_next_opcode_ = false;
  662|    349|    return;
  663|    349|  }
  664|   147k|  const Offset immediate_len = state->offset - current_opcode_offset;
  665|   147k|  const Offset opcode_size = current_opcode.GetLength();
  666|   147k|  const Offset total_size = opcode_size + immediate_len;
  667|       |  // current_opcode_offset has already read past this opcode; rewind it by the
  668|       |  // size of this opcode, which may be more than one byte.
  669|   147k|  Offset offset = current_opcode_offset - opcode_size;
  670|   147k|  const Offset offset_end = offset + total_size;
  671|       |
  672|   147k|  bool first_line = true;
  673|   295k|  while (offset < offset_end) {
  ------------------
  |  Branch (673:10): [True: 148k, False: 147k]
  ------------------
  674|       |    // Print bytes, but only display a maximum of IMMEDIATE_OCTET_COUNT on each
  675|       |    // line.
  676|   148k|    printf(" %06" PRIzx ":", GetPrintOffset(offset));
  677|   148k|    size_t i;
  678|   469k|    for (i = 0; offset < offset_end && i < IMMEDIATE_OCTET_COUNT;
  ------------------
  |  |  611|   322k|#define IMMEDIATE_OCTET_COUNT 9
  ------------------
  |  Branch (678:17): [True: 322k, False: 147k]
  |  Branch (678:40): [True: 320k, False: 1.53k]
  ------------------
  679|   320k|         ++i, ++offset) {
  680|   320k|      printf(" %02x", data_[offset]);
  681|   320k|    }
  682|       |    // Fill the rest of the remaining space with spaces.
  683|  1.16M|    for (; i < IMMEDIATE_OCTET_COUNT; ++i) {
  ------------------
  |  |  611|  1.16M|#define IMMEDIATE_OCTET_COUNT 9
  ------------------
  |  Branch (683:12): [True: 1.01M, False: 148k]
  ------------------
  684|  1.01M|      printf("   ");
  685|  1.01M|    }
  686|   148k|    printf(" | ");
  687|       |
  688|   148k|    if (first_line) {
  ------------------
  |  Branch (688:9): [True: 147k, False: 1.53k]
  ------------------
  689|   147k|      first_line = false;
  690|       |
  691|       |      // Print disassembly.
  692|   147k|      int indent_level = this->indent_level;
  693|   147k|      switch (current_opcode) {
  694|    259|        case Opcode::Else:
  ------------------
  |  Branch (694:9): [True: 259, False: 146k]
  ------------------
  695|    615|        case Opcode::Catch:
  ------------------
  |  Branch (695:9): [True: 356, False: 146k]
  ------------------
  696|  1.18k|        case Opcode::CatchAll:
  ------------------
  |  Branch (696:9): [True: 567, False: 146k]
  ------------------
  697|  1.18k|          indent_level--;
  698|  1.18k|          break;
  699|   145k|        default:
  ------------------
  |  Branch (699:9): [True: 145k, False: 1.18k]
  ------------------
  700|   145k|          break;
  701|   147k|      }
  702|  16.0M|      for (int j = 0; j < indent_level; j++) {
  ------------------
  |  Branch (702:23): [True: 15.9M, False: 147k]
  ------------------
  703|  15.9M|        printf("  ");
  704|  15.9M|      }
  705|       |
  706|   147k|      const char* opcode_name = current_opcode.GetName();
  707|   147k|      printf("%s", opcode_name);
  708|   147k|      if (fmt) {
  ------------------
  |  Branch (708:11): [True: 53.9k, False: 93.0k]
  ------------------
  709|  53.9k|        printf(" ");
  710|  53.9k|        va_list args;
  711|  53.9k|        va_start(args, fmt);
  712|  53.9k|        vprintf(fmt, args);
  713|  53.9k|        va_end(args);
  714|  53.9k|      }
  715|   147k|    }
  716|       |
  717|   148k|    printf("\n");
  718|   148k|  }
  719|       |
  720|   147k|  last_opcode_end = state->offset;
  721|       |
  722|       |  // Print relocation after then full (potentially multi-line) instruction.
  723|   147k|  if (options_->relocs &&
  ------------------
  |  Branch (723:7): [True: 0, False: 147k]
  ------------------
  724|   147k|      next_reloc < objdump_state_->code_relocations.size()) {
  ------------------
  |  Branch (724:7): [True: 0, False: 0]
  ------------------
  725|      0|    const Reloc& reloc = objdump_state_->code_relocations[next_reloc];
  726|      0|    Offset code_start = GetSectionStart(BinarySection::Code);
  727|      0|    Offset abs_offset = code_start + reloc.offset;
  728|      0|    if (last_opcode_end > abs_offset) {
  ------------------
  |  Branch (728:9): [True: 0, False: 0]
  ------------------
  729|      0|      PrintRelocation(reloc, abs_offset);
  730|      0|      next_reloc++;
  731|      0|    }
  732|      0|  }
  733|   147k|}
binary-reader-objdump.cc:_ZNK4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase13GetSymbolNameEj:
  180|   136k|    Index symbol_index) const {
  181|   136k|  if (symbol_index >= objdump_state_->symtab.size())
  ------------------
  |  Branch (181:7): [True: 89.1k, False: 47.2k]
  ------------------
  182|  89.1k|    return "<illegal_symbol_index>";
  183|  47.2k|  ObjdumpSymbol& sym = objdump_state_->symtab[symbol_index];
  184|  47.2k|  switch (sym.kind) {
  ------------------
  |  Branch (184:11): [True: 0, False: 47.2k]
  ------------------
  185|  35.1k|    case SymbolType::Function:
  ------------------
  |  Branch (185:5): [True: 35.1k, False: 12.0k]
  ------------------
  186|  35.1k|      return GetFunctionName(sym.index);
  187|    225|    case SymbolType::Data:
  ------------------
  |  Branch (187:5): [True: 225, False: 47.0k]
  ------------------
  188|    225|      return sym.name;
  189|  7.11k|    case SymbolType::Global:
  ------------------
  |  Branch (189:5): [True: 7.11k, False: 40.1k]
  ------------------
  190|  7.11k|      return GetGlobalName(sym.index);
  191|    852|    case SymbolType::Section:
  ------------------
  |  Branch (191:5): [True: 852, False: 46.4k]
  ------------------
  192|    852|      return GetSectionName(sym.index);
  193|    651|    case SymbolType::Tag:
  ------------------
  |  Branch (193:5): [True: 651, False: 46.6k]
  ------------------
  194|    651|      return GetTagName(sym.index);
  195|  3.24k|    case SymbolType::Table:
  ------------------
  |  Branch (195:5): [True: 3.24k, False: 44.0k]
  ------------------
  196|  3.24k|      return GetTableName(sym.index);
  197|  47.2k|  }
  198|      0|  WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
  199|  47.2k|}
binary-reader-objdump.cc:_ZNK4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase13GetGlobalNameEj:
  153|  19.2k|std::string_view BinaryReaderObjdumpBase::GetGlobalName(Index index) const {
  154|  19.2k|  return objdump_state_->global_names.Get(index);
  155|  19.2k|}
binary-reader-objdump.cc:_ZNK4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase10GetTagNameEj:
  167|  9.37k|std::string_view BinaryReaderObjdumpBase::GetTagName(Index index) const {
  168|  9.37k|  return objdump_state_->tag_names.Get(index);
  169|  9.37k|}
binary-reader-objdump.cc:_ZNK4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase12GetTableNameEj:
  175|  10.5k|std::string_view BinaryReaderObjdumpBase::GetTableName(Index index) const {
  176|  10.5k|  return objdump_state_->table_names.Get(index);
  177|  10.5k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble14OnOpcodeUint32Ej:
  781|  15.7k|Result BinaryReaderObjdumpDisassemble::OnOpcodeUint32(uint32_t value) {
  782|  15.7k|  if (!in_function_body) {
  ------------------
  |  Branch (782:7): [True: 13.0k, False: 2.73k]
  ------------------
  783|  13.0k|    return Result::Ok;
  784|  13.0k|  }
  785|  2.73k|  std::string_view name;
  786|  2.73k|  if (current_opcode == Opcode::DataDrop &&
  ------------------
  |  Branch (786:7): [True: 42, False: 2.69k]
  |  Branch (786:7): [True: 5, False: 2.73k]
  ------------------
  787|  2.73k|      !(name = GetSegmentName(value)).empty()) {
  ------------------
  |  Branch (787:7): [True: 5, False: 37]
  ------------------
  788|      5|    LogOpcode("%d <" PRIstringview ">", value,
  789|      5|              WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|      5|  static_cast<int>((x).length()), (x).data()
  ------------------
  790|  2.73k|  } else {
  791|  2.73k|    LogOpcode("%u", value);
  792|  2.73k|  }
  793|  2.73k|  return Result::Ok;
  794|  15.7k|}
binary-reader-objdump.cc:_ZNK4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase14GetSegmentNameEj:
  171|  12.1k|std::string_view BinaryReaderObjdumpBase::GetSegmentName(Index index) const {
  172|  12.1k|  return objdump_state_->segment_names.Get(index);
  173|  12.1k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble13OnOpcodeIndexEj:
  743|  24.5k|Result BinaryReaderObjdumpDisassemble::OnOpcodeIndex(Index value) {
  744|  24.5k|  if (!in_function_body) {
  ------------------
  |  Branch (744:7): [True: 18.4k, False: 6.06k]
  ------------------
  745|  18.4k|    return Result::Ok;
  746|  18.4k|  }
  747|  6.06k|  std::string_view name;
  748|  6.06k|  if (current_opcode == Opcode::Call &&
  ------------------
  |  Branch (748:7): [True: 512, False: 5.54k]
  |  Branch (748:7): [True: 135, False: 5.92k]
  ------------------
  749|  6.06k|      !(name = GetFunctionName(value)).empty()) {
  ------------------
  |  Branch (749:7): [True: 135, False: 377]
  ------------------
  750|    135|    LogOpcode("%d <" PRIstringview ">", value,
  751|    135|              WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|    135|  static_cast<int>((x).length()), (x).data()
  ------------------
  752|  5.92k|  } else if (current_opcode == Opcode::Throw &&
  ------------------
  |  Branch (752:14): [True: 948, False: 4.97k]
  |  Branch (752:14): [True: 315, False: 5.61k]
  ------------------
  753|  5.92k|             !(name = GetTagName(value)).empty()) {
  ------------------
  |  Branch (753:14): [True: 315, False: 633]
  ------------------
  754|    315|    LogOpcode("%d <" PRIstringview ">", value,
  755|    315|              WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|    315|  static_cast<int>((x).length()), (x).data()
  ------------------
  756|  5.61k|  } else if ((current_opcode == Opcode::GlobalGet ||
  ------------------
  |  Branch (756:14): [True: 7, False: 5.60k]
  |  Branch (756:15): [True: 726, False: 4.88k]
  ------------------
  757|  5.61k|              current_opcode == Opcode::GlobalSet) &&
  ------------------
  |  Branch (757:15): [True: 509, False: 4.37k]
  ------------------
  758|  5.61k|             !(name = GetGlobalName(value)).empty()) {
  ------------------
  |  Branch (758:14): [True: 7, False: 1.22k]
  ------------------
  759|      7|    LogOpcode("%d <" PRIstringview ">", value,
  760|      7|              WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|      7|  static_cast<int>((x).length()), (x).data()
  ------------------
  761|  5.60k|  } else if ((current_opcode == Opcode::LocalGet ||
  ------------------
  |  Branch (761:14): [True: 9, False: 5.59k]
  |  Branch (761:15): [True: 1.03k, False: 4.56k]
  ------------------
  762|  5.60k|              current_opcode == Opcode::LocalSet) &&
  ------------------
  |  Branch (762:15): [True: 538, False: 4.03k]
  ------------------
  763|  5.60k|             !(name = GetLocalName(current_function_index, value)).empty()) {
  ------------------
  |  Branch (763:14): [True: 9, False: 1.56k]
  ------------------
  764|      9|    LogOpcode("%d <" PRIstringview ">", value,
  765|      9|              WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|      9|  static_cast<int>((x).length()), (x).data()
  ------------------
  766|  5.59k|  } else {
  767|  5.59k|    LogOpcode("%d", value);
  768|  5.59k|  }
  769|  6.06k|  return Result::Ok;
  770|  24.5k|}
binary-reader-objdump.cc:_ZNK4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase12GetLocalNameEjj:
  159|  1.57k|    Index local_index) const {
  160|  1.57k|  return objdump_state_->local_names.Get(function_index, local_index);
  161|  1.57k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble20OnOpcodeUint32Uint32Ejj:
  797|  30.7k|                                                            uint32_t value2) {
  798|  30.7k|  if (!in_function_body)
  ------------------
  |  Branch (798:7): [True: 27.5k, False: 3.19k]
  ------------------
  799|  27.5k|    return Result::Ok;
  800|  3.19k|  std::string_view name;
  801|  3.19k|  if (current_opcode == Opcode::MemoryInit &&
  ------------------
  |  Branch (801:7): [True: 58, False: 3.13k]
  |  Branch (801:7): [True: 5, False: 3.18k]
  ------------------
  802|  3.19k|      !(name = GetSegmentName(value)).empty()) {
  ------------------
  |  Branch (802:7): [True: 5, False: 53]
  ------------------
  803|      5|    LogOpcode("%u %u <" PRIstringview ">", value, value2,
  804|      5|              WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|      5|  static_cast<int>((x).length()), (x).data()
  ------------------
  805|  3.18k|  } else {
  806|  3.18k|    LogOpcode("%u %u", value, value2);
  807|  3.18k|  }
  808|  3.19k|  return Result::Ok;
  809|  30.7k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble26OnOpcodeUint32Uint32Uint32Ejjj:
  836|  6.52k|    uint32_t value3) {
  837|  6.52k|  if (!in_function_body) {
  ------------------
  |  Branch (837:7): [True: 5.29k, False: 1.23k]
  ------------------
  838|  5.29k|    return Result::Ok;
  839|  5.29k|  }
  840|  1.23k|  LogOpcode("%u %u %u", value, value2, value3);
  841|  1.23k|  return Result::Ok;
  842|  6.52k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble32OnOpcodeUint32Uint32Uint32Uint32Ejjjj:
  848|  2.01k|    uint32_t value4) {
  849|  2.01k|  if (!in_function_body) {
  ------------------
  |  Branch (849:7): [True: 1.86k, False: 146]
  ------------------
  850|  1.86k|    return Result::Ok;
  851|  1.86k|  }
  852|    146|  LogOpcode("%u %u %u %u", value, value2, value3, value4);
  853|    146|  return Result::Ok;
  854|  2.01k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble14OnOpcodeUint64Em:
  856|  8.43k|Result BinaryReaderObjdumpDisassemble::OnOpcodeUint64(uint64_t value) {
  857|  8.43k|  if (!in_function_body) {
  ------------------
  |  Branch (857:7): [True: 6.94k, False: 1.48k]
  ------------------
  858|  6.94k|    return Result::Ok;
  859|  6.94k|  }
  860|  1.48k|  LogOpcode("%" PRIu64, value);
  861|  1.48k|  return Result::Ok;
  862|  8.43k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble11OnOpcodeF32Ej:
  864|  48.6k|Result BinaryReaderObjdumpDisassemble::OnOpcodeF32(uint32_t value) {
  865|  48.6k|  if (!in_function_body) {
  ------------------
  |  Branch (865:7): [True: 28.5k, False: 20.0k]
  ------------------
  866|  28.5k|    return Result::Ok;
  867|  28.5k|  }
  868|  20.0k|  char buffer[WABT_MAX_FLOAT_HEX];
  869|  20.0k|  WriteFloatHex(buffer, sizeof(buffer), value);
  870|  20.0k|  LogOpcode(buffer);
  871|  20.0k|  return Result::Ok;
  872|  48.6k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble11OnOpcodeF64Em:
  874|  5.85k|Result BinaryReaderObjdumpDisassemble::OnOpcodeF64(uint64_t value) {
  875|  5.85k|  if (!in_function_body) {
  ------------------
  |  Branch (875:7): [True: 3.50k, False: 2.35k]
  ------------------
  876|  3.50k|    return Result::Ok;
  877|  3.50k|  }
  878|  2.35k|  char buffer[WABT_MAX_DOUBLE_HEX];
  879|  2.35k|  WriteDoubleHex(buffer, sizeof(buffer), value);
  880|  2.35k|  LogOpcode(buffer);
  881|  2.35k|  return Result::Ok;
  882|  5.85k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble12OnOpcodeV128E4v128:
  884|    505|Result BinaryReaderObjdumpDisassemble::OnOpcodeV128(v128 value) {
  885|    505|  if (!in_function_body) {
  ------------------
  |  Branch (885:7): [True: 268, False: 237]
  ------------------
  886|    268|    return Result::Ok;
  887|    268|  }
  888|       |  // v128 is always dumped as i32x4:
  889|    237|  LogOpcode("0x%08x 0x%08x 0x%08x 0x%08x", value.u32(0), value.u32(1),
  890|    237|            value.u32(2), value.u32(3));
  891|    237|  return Result::Ok;
  892|    505|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble16OnOpcodeBlockSigENS_4TypeE:
  977|   960k|Result BinaryReaderObjdumpDisassemble::OnOpcodeBlockSig(Type sig_type) {
  978|   960k|  if (!in_function_body) {
  ------------------
  |  Branch (978:7): [True: 945k, False: 15.0k]
  ------------------
  979|   945k|    return Result::Ok;
  980|   945k|  }
  981|  15.0k|  if (sig_type != Type::Void) {
  ------------------
  |  Branch (981:7): [True: 14.9k, False: 38]
  ------------------
  982|  14.9k|    LogOpcode("%s", BlockSigToString(sig_type).c_str());
  983|  14.9k|  } else {
  984|     38|    LogOpcode(nullptr);
  985|     38|  }
  986|  15.0k|  indent_level++;
  987|  15.0k|  return Result::Ok;
  988|   960k|}
binary-reader-objdump.cc:_ZNK4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble16BlockSigToStringENS_4TypeE:
  570|  14.9k|std::string BinaryReaderObjdumpDisassemble::BlockSigToString(Type type) const {
  571|  14.9k|  if (type.IsIndex()) {
  ------------------
  |  Branch (571:7): [True: 14.5k, False: 440]
  ------------------
  572|  14.5k|    return StringPrintf("type[%d]", type.GetIndex());
  573|  14.5k|  } else if (type == Type::Void) {
  ------------------
  |  Branch (573:14): [True: 0, False: 440]
  ------------------
  574|      0|    return "";
  575|    440|  } else {
  576|    440|    return type.GetName();
  577|    440|  }
  578|  14.9k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble12OnOpcodeTypeENS_4TypeE:
  894|    883|Result BinaryReaderObjdumpDisassemble::OnOpcodeType(Type type) {
  895|    883|  if (!in_function_body) {
  ------------------
  |  Branch (895:7): [True: 576, False: 307]
  ------------------
  896|    576|    return Result::Ok;
  897|    576|  }
  898|    307|  if (current_opcode == Opcode::SelectT) {
  ------------------
  |  Branch (898:7): [True: 101, False: 206]
  ------------------
  899|    101|    LogOpcode(type.GetName().c_str());
  900|    206|  } else {
  901|    206|    LogOpcode(type.GetRefKindName());
  902|    206|  }
  903|    307|  return Result::Ok;
  904|    883|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble13OnBrTableExprEjPjj:
  909|  3.03k|    Index default_target_depth) {
  910|  3.03k|  if (!in_function_body) {
  ------------------
  |  Branch (910:7): [True: 1.84k, False: 1.19k]
  ------------------
  911|  1.84k|    return Result::Ok;
  912|  1.84k|  }
  913|       |
  914|  1.19k|  std::string buffer = std::string();
  915|  11.6k|  for (Index i = 0; i < num_targets; i++) {
  ------------------
  |  Branch (915:21): [True: 10.4k, False: 1.19k]
  ------------------
  916|  10.4k|    buffer.append(std::to_string(target_depths[i])).append(" ");
  917|  10.4k|  }
  918|  1.19k|  buffer.append(std::to_string(default_target_depth));
  919|       |
  920|  1.19k|  LogOpcode("%s", buffer.c_str());
  921|  1.19k|  return Result::Ok;
  922|  3.03k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble18OnCallIndirectExprEjj:
  813|    349|    uint32_t table_index) {
  814|    349|  std::string_view table_name = GetTableName(table_index);
  815|    349|  std::string_view type_name = GetTypeName(sig_index);
  816|    349|  if (!type_name.empty() && !table_name.empty()) {
  ------------------
  |  Branch (816:7): [True: 22, False: 327]
  |  Branch (816:29): [True: 0, False: 22]
  ------------------
  817|      0|    LogOpcode("%u <" PRIstringview "> (type %u <" PRIstringview ">)",
  818|      0|              table_index, WABT_PRINTF_STRING_VIEW_ARG(table_name), sig_index,
  ------------------
  |  |   28|      0|  static_cast<int>((x).length()), (x).data()
  ------------------
  819|      0|              WABT_PRINTF_STRING_VIEW_ARG(type_name));
  ------------------
  |  |   28|      0|  static_cast<int>((x).length()), (x).data()
  ------------------
  820|    349|  } else if (!table_name.empty()) {
  ------------------
  |  Branch (820:14): [True: 18, False: 331]
  ------------------
  821|     18|    LogOpcode("%u <" PRIstringview "> (type %u)", table_index,
  822|     18|              WABT_PRINTF_STRING_VIEW_ARG(table_name), sig_index);
  ------------------
  |  |   28|     18|  static_cast<int>((x).length()), (x).data()
  ------------------
  823|    331|  } else if (!type_name.empty()) {
  ------------------
  |  Branch (823:14): [True: 22, False: 309]
  ------------------
  824|     22|    LogOpcode("%u (type %u <" PRIstringview ">)", table_index, sig_index,
  825|     22|              WABT_PRINTF_STRING_VIEW_ARG(type_name));
  ------------------
  |  |   28|     22|  static_cast<int>((x).length()), (x).data()
  ------------------
  826|    309|  } else {
  827|    309|    LogOpcode("%u (type %u)", table_index, sig_index);
  828|    309|  }
  829|    349|  skip_next_opcode_ = true;
  830|    349|  return Result::Ok;
  831|    349|}
binary-reader-objdump.cc:_ZNK4wabt12_GLOBAL__N_123BinaryReaderObjdumpBase11GetTypeNameEj:
  145|    349|std::string_view BinaryReaderObjdumpBase::GetTypeName(Index index) const {
  146|    349|  return objdump_state_->type_names.Get(index);
  147|    349|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble14OnDelegateExprEj:
  924|    416|Result BinaryReaderObjdumpDisassemble::OnDelegateExpr(Index depth) {
  925|    416|  if (!in_function_body) {
  ------------------
  |  Branch (925:7): [True: 359, False: 57]
  ------------------
  926|    359|    return Result::Ok;
  927|    359|  }
  928|       |  // Because `delegate` ends the block we need to dedent here, and
  929|       |  // we don't need to dedent it in LogOpcode.
  930|     57|  if (indent_level > 0) {
  ------------------
  |  Branch (930:7): [True: 57, False: 0]
  ------------------
  931|     57|    indent_level--;
  932|     57|  }
  933|     57|  return Result::Ok;
  934|    416|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble9OnEndExprEv:
  936|  26.1k|Result BinaryReaderObjdumpDisassemble::OnEndExpr() {
  937|  26.1k|  if (!in_function_body) {
  ------------------
  |  Branch (937:7): [True: 24.2k, False: 1.86k]
  ------------------
  938|  24.2k|    return Result::Ok;
  939|  24.2k|  }
  940|  1.86k|  if (indent_level > 0) {
  ------------------
  |  Branch (940:7): [True: 610, False: 1.25k]
  ------------------
  941|    610|    indent_level--;
  942|    610|  }
  943|  1.86k|  LogOpcode(0, nullptr);
  944|  1.86k|  return Result::Ok;
  945|  26.1k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_130BinaryReaderObjdumpDisassemble15EndFunctionBodyEj:
  971|    459|Result BinaryReaderObjdumpDisassemble::EndFunctionBody(Index index) {
  972|    459|  assert(in_function_body);
  973|    459|  in_function_body = false;
  974|    459|  return Result::Ok;
  975|    459|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdumpC2EPKhmPNS_14ObjdumpOptionsEPNS_12ObjdumpStateE:
 1277|  27.3k|      out_stream_(FileStream::CreateStdout()) {}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump9EndModuleEv:
 1370|  3.40k|Result BinaryReaderObjdump::EndModule() {
 1371|  3.40k|  if (options_->section_name && !section_found_) {
  ------------------
  |  Branch (1371:7): [True: 0, False: 3.40k]
  |  Branch (1371:33): [True: 0, False: 0]
  ------------------
 1372|      0|    err_stream_->Writef("Section not found: %s\n", options_->section_name);
 1373|      0|    return Result::Error;
 1374|      0|  }
 1375|       |
 1376|  3.40k|  if (options_->relocs && ShouldPrintDetails()) {
  ------------------
  |  Branch (1376:7): [True: 0, False: 3.40k]
  |  Branch (1376:27): [True: 0, False: 0]
  ------------------
 1377|      0|    if (next_data_reloc_ != objdump_state_->data_relocations.size()) {
  ------------------
  |  Branch (1377:9): [True: 0, False: 0]
  ------------------
 1378|      0|      err_stream_->Writef("Data reloctions outside of segments!:\n");
 1379|      0|      for (size_t i = next_data_reloc_;
 1380|      0|           i < objdump_state_->data_relocations.size(); i++) {
  ------------------
  |  Branch (1380:12): [True: 0, False: 0]
  ------------------
 1381|      0|        const Reloc& reloc = objdump_state_->data_relocations[i];
 1382|      0|        PrintRelocation(reloc, reloc.offset);
 1383|      0|      }
 1384|       |
 1385|      0|      return Result::Error;
 1386|      0|    }
 1387|      0|  }
 1388|       |
 1389|  3.40k|  return Result::Ok;
 1390|  3.40k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump18ShouldPrintDetailsEv:
 1343|  2.61M|bool BinaryReaderObjdump::ShouldPrintDetails() {
 1344|  2.61M|  if (options_->mode != ObjdumpMode::Details) {
  ------------------
  |  Branch (1344:7): [True: 1.71M, False: 904k]
  ------------------
 1345|  1.71M|    return false;
 1346|  1.71M|  }
 1347|   904k|  return print_details_;
 1348|  2.61M|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump12BeginSectionEjNS_13BinarySectionEm:
 1293|  4.89M|                                         Offset size) {
 1294|  4.89M|  BinaryReaderObjdumpBase::BeginSection(section_index, section_code, size);
 1295|       |
 1296|       |  // |section_name| and |match_name| are identical for known sections. For
 1297|       |  // custom sections, |section_name| is "Custom", but |match_name| is the name
 1298|       |  // of the custom section.
 1299|  4.89M|  const char* section_name = wabt::GetSectionName(section_code);
 1300|  4.89M|  std::string match_name(GetSectionName(section_index));
 1301|       |
 1302|  4.89M|  bool section_match = !options_->section_name ||
  ------------------
  |  Branch (1302:24): [True: 4.89M, False: 0]
  ------------------
 1303|  4.89M|                       !strcasecmp(options_->section_name, match_name.c_str());
  ------------------
  |  Branch (1303:24): [True: 0, False: 0]
  ------------------
 1304|  4.89M|  if (section_match) {
  ------------------
  |  Branch (1304:7): [True: 4.89M, False: 0]
  ------------------
 1305|  4.89M|    section_found_ = true;
 1306|  4.89M|  }
 1307|       |
 1308|  4.89M|  switch (options_->mode) {
  ------------------
  |  Branch (1308:11): [True: 0, False: 4.89M]
  ------------------
 1309|  1.63M|    case ObjdumpMode::Headers:
  ------------------
  |  Branch (1309:5): [True: 1.63M, False: 3.26M]
  ------------------
 1310|  1.63M|      printf("%9s start=%#010" PRIzx " end=%#010" PRIzx " (size=%#010" PRIoffset
 1311|  1.63M|             ") ",
 1312|  1.63M|             section_name, state->offset, state->offset + size, size);
 1313|  1.63M|      break;
 1314|  1.63M|    case ObjdumpMode::Details:
  ------------------
  |  Branch (1314:5): [True: 1.63M, False: 3.26M]
  ------------------
 1315|  1.63M|      if (section_match) {
  ------------------
  |  Branch (1315:11): [True: 1.63M, False: 0]
  ------------------
 1316|  1.63M|        printf("%s", section_name);
 1317|       |        // All known section types except the Start and DataCount sections have
 1318|       |        // a count in which case this line gets completed in OnCount().
 1319|  1.63M|        if (section_code == BinarySection::Start ||
  ------------------
  |  Branch (1319:13): [True: 100, False: 1.63M]
  ------------------
 1320|  1.63M|            section_code == BinarySection::DataCount ||
  ------------------
  |  Branch (1320:13): [True: 98, False: 1.63M]
  ------------------
 1321|  1.63M|            section_code == BinarySection::Custom) {
  ------------------
  |  Branch (1321:13): [True: 1.62M, False: 9.52k]
  ------------------
 1322|  1.62M|          printf(":\n");
 1323|  1.62M|        }
 1324|  1.63M|        print_details_ = true;
 1325|  1.63M|      } else {
 1326|      0|        print_details_ = false;
 1327|      0|      }
 1328|  1.63M|      break;
 1329|  1.63M|    case ObjdumpMode::RawData:
  ------------------
  |  Branch (1329:5): [True: 1.63M, False: 3.26M]
  ------------------
 1330|  1.63M|      if (section_match) {
  ------------------
  |  Branch (1330:11): [True: 1.63M, False: 0]
  ------------------
 1331|  1.63M|        printf("\nContents of section %s:\n", section_name);
 1332|  1.63M|        out_stream_->WriteMemoryDump(data_ + state->offset, size, state->offset,
 1333|  1.63M|                                     PrintChars::Yes);
 1334|  1.63M|      }
 1335|  1.63M|      break;
 1336|      0|    case ObjdumpMode::Prepass:
  ------------------
  |  Branch (1336:5): [True: 0, False: 4.89M]
  ------------------
 1337|      0|    case ObjdumpMode::Disassemble:
  ------------------
  |  Branch (1337:5): [True: 0, False: 4.89M]
  ------------------
 1338|      0|      break;
 1339|  4.89M|  }
 1340|  4.89M|  return Result::Ok;
 1341|  4.89M|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump18BeginCustomSectionEjmNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
 1281|   410k|                                               std::string_view section_name) {
 1282|   410k|  PrintDetails(" - name: \"" PRIstringview "\"\n",
 1283|   410k|               WABT_PRINTF_STRING_VIEW_ARG(section_name));
  ------------------
  |  |   28|   410k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1284|   410k|  if (options_->mode == ObjdumpMode::Headers) {
  ------------------
  |  Branch (1284:7): [True: 136k, False: 273k]
  ------------------
 1285|   136k|    printf("\"" PRIstringview "\"\n",
 1286|   136k|           WABT_PRINTF_STRING_VIEW_ARG(section_name));
  ------------------
  |  |   28|   136k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1287|   136k|  }
 1288|   410k|  return Result::Ok;
 1289|   410k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump12PrintDetailsEPKcz:
 1351|  2.52M|                                                                ...) {
 1352|  2.52M|  if (!ShouldPrintDetails()) {
  ------------------
  |  Branch (1352:7): [True: 1.65M, False: 874k]
  ------------------
 1353|  1.65M|    return;
 1354|  1.65M|  }
 1355|   874k|  va_list args;
 1356|   874k|  va_start(args, fmt);
 1357|   874k|  vprintf(fmt, args);
 1358|   874k|  va_end(args);
 1359|   874k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump11OnTypeCountEj:
 1392|  1.45k|Result BinaryReaderObjdump::OnTypeCount(Index count) {
 1393|  1.45k|  return OnCount(count);
 1394|  1.45k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump7OnCountEj:
 1361|  22.2k|Result BinaryReaderObjdump::OnCount(Index count) {
 1362|  22.2k|  if (options_->mode == ObjdumpMode::Headers) {
  ------------------
  |  Branch (1362:7): [True: 7.40k, False: 14.8k]
  ------------------
 1363|  7.40k|    printf("count: %" PRIindex "\n", count);
 1364|  14.8k|  } else if (options_->mode == ObjdumpMode::Details && print_details_) {
  ------------------
  |  Branch (1364:14): [True: 7.40k, False: 7.40k]
  |  Branch (1364:56): [True: 7.40k, False: 0]
  ------------------
 1365|  7.40k|    printf("[%" PRIindex "]:\n", count);
 1366|  7.40k|  }
 1367|  22.2k|  return Result::Ok;
 1368|  22.2k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump10OnFuncTypeEjjPNS_4TypeEjS3_:
 1400|  1.75k|                                       Type* result_types) {
 1401|  1.75k|  if (!ShouldPrintDetails()) {
  ------------------
  |  Branch (1401:7): [True: 1.16k, False: 584]
  ------------------
 1402|  1.16k|    return Result::Ok;
 1403|  1.16k|  }
 1404|    584|  printf(" - type[%" PRIindex "] (", index);
 1405|  4.54k|  for (Index i = 0; i < param_count; i++) {
  ------------------
  |  Branch (1405:21): [True: 3.96k, False: 584]
  ------------------
 1406|  3.96k|    if (i != 0) {
  ------------------
  |  Branch (1406:9): [True: 3.63k, False: 323]
  ------------------
 1407|  3.63k|      printf(", ");
 1408|  3.63k|    }
 1409|  3.96k|    printf("%s", param_types[i].GetName().c_str());
 1410|  3.96k|  }
 1411|    584|  printf(") -> ");
 1412|    584|  switch (result_count) {
 1413|    278|    case 0:
  ------------------
  |  Branch (1413:5): [True: 278, False: 306]
  ------------------
 1414|    278|      printf("nil");
 1415|    278|      break;
 1416|    146|    case 1:
  ------------------
  |  Branch (1416:5): [True: 146, False: 438]
  ------------------
 1417|    146|      printf("%s", result_types[0].GetName().c_str());
 1418|    146|      break;
 1419|    160|    default:
  ------------------
  |  Branch (1419:5): [True: 160, False: 424]
  ------------------
 1420|    160|      printf("(");
 1421|  4.54k|      for (Index i = 0; i < result_count; i++) {
  ------------------
  |  Branch (1421:25): [True: 4.38k, False: 160]
  ------------------
 1422|  4.38k|        if (i != 0) {
  ------------------
  |  Branch (1422:13): [True: 4.22k, False: 160]
  ------------------
 1423|  4.22k|          printf(", ");
 1424|  4.22k|        }
 1425|  4.38k|        printf("%s", result_types[i].GetName().c_str());
 1426|  4.38k|      }
 1427|    160|      printf(")");
 1428|    160|      break;
 1429|    584|  }
 1430|    584|  printf("\n");
 1431|    584|  return Result::Ok;
 1432|    584|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump12OnStructTypeEjjPNS_7TypeMutE:
 1436|    705|                                         TypeMut* fields) {
 1437|    705|  if (!ShouldPrintDetails()) {
  ------------------
  |  Branch (1437:7): [True: 470, False: 235]
  ------------------
 1438|    470|    return Result::Ok;
 1439|    470|  }
 1440|    235|  printf(" - type[%" PRIindex "] (struct", index);
 1441|    366|  for (Index i = 0; i < field_count; i++) {
  ------------------
  |  Branch (1441:21): [True: 131, False: 235]
  ------------------
 1442|    131|    if (fields[i].mutable_) {
  ------------------
  |  Branch (1442:9): [True: 25, False: 106]
  ------------------
 1443|     25|      printf(" (mut");
 1444|     25|    }
 1445|    131|    printf(" %s", fields[i].type.GetName().c_str());
 1446|    131|    if (fields[i].mutable_) {
  ------------------
  |  Branch (1446:9): [True: 25, False: 106]
  ------------------
 1447|     25|      printf(")");
 1448|     25|    }
 1449|    131|  }
 1450|    235|  printf(")\n");
 1451|    235|  return Result::Ok;
 1452|    705|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump11OnArrayTypeEjNS_7TypeMutE:
 1454|     72|Result BinaryReaderObjdump::OnArrayType(Index index, TypeMut field) {
 1455|     72|  if (!ShouldPrintDetails()) {
  ------------------
  |  Branch (1455:7): [True: 48, False: 24]
  ------------------
 1456|     48|    return Result::Ok;
 1457|     48|  }
 1458|     24|  printf(" - type[%" PRIindex "] (array", index);
 1459|     24|  if (field.mutable_) {
  ------------------
  |  Branch (1459:7): [True: 15, False: 9]
  ------------------
 1460|     15|    printf(" (mut");
 1461|     15|  }
 1462|     24|  printf(" %s", field.type.GetName().c_str());
 1463|     24|  if (field.mutable_) {
  ------------------
  |  Branch (1463:7): [True: 15, False: 9]
  ------------------
 1464|     15|    printf(")");
 1465|     15|  }
 1466|     24|  printf(")\n");
 1467|     24|  return Result::Ok;
 1468|     72|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnImportCountEj:
 1522|    519|Result BinaryReaderObjdump::OnImportCount(Index count) {
 1523|    519|  return OnCount(count);
 1524|    519|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump12OnImportFuncEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jj:
 1530|  11.1k|                                         Index sig_index) {
 1531|  11.1k|  PrintDetails(" - func[%" PRIindex "] sig=%" PRIindex, func_index, sig_index);
  ------------------
  |  |   80|  11.1k|#define PRIindex "u"
  ------------------
 1532|  11.1k|  auto name = GetFunctionName(func_index);
 1533|  11.1k|  if (!name.empty()) {
  ------------------
  |  Branch (1533:7): [True: 11.1k, False: 9]
  ------------------
 1534|  11.1k|    PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|  11.1k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1535|  11.1k|  }
 1536|  11.1k|  PrintDetails(" <- " PRIstringview "." PRIstringview "\n",
 1537|  11.1k|               WABT_PRINTF_STRING_VIEW_ARG(module_name),
  ------------------
  |  |   28|  11.1k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1538|  11.1k|               WABT_PRINTF_STRING_VIEW_ARG(field_name));
  ------------------
  |  |   28|  11.1k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1539|  11.1k|  return Result::Ok;
 1540|  11.1k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnImportTableEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jNS_4TypeEPKNS_6LimitsE:
 1547|  8.49k|                                          const Limits* elem_limits) {
 1548|  8.49k|  PrintDetails(" - table[%" PRIindex "] type=%s initial=%" PRId64, table_index,
 1549|  8.49k|               elem_type.GetName().c_str(), elem_limits->initial);
 1550|  8.49k|  if (elem_limits->has_max) {
  ------------------
  |  Branch (1550:7): [True: 2.09k, False: 6.39k]
  ------------------
 1551|  2.09k|    PrintDetails(" max=%" PRId64, elem_limits->max);
 1552|  2.09k|  }
 1553|  8.49k|  if (elem_limits->is_64) {
  ------------------
  |  Branch (1553:7): [True: 555, False: 7.93k]
  ------------------
 1554|    555|    PrintDetails(" i64");
 1555|    555|  }
 1556|  8.49k|  PrintDetails(" <- " PRIstringview "." PRIstringview "\n",
 1557|  8.49k|               WABT_PRINTF_STRING_VIEW_ARG(module_name),
  ------------------
  |  |   28|  8.49k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1558|  8.49k|               WABT_PRINTF_STRING_VIEW_ARG(field_name));
  ------------------
  |  |   28|  8.49k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1559|  8.49k|  return Result::Ok;
 1560|  8.49k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnImportMemoryEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jPKNS_6LimitsE:
 1566|  1.91k|                                           const Limits* page_limits) {
 1567|  1.91k|  PrintDetails(" - memory[%" PRIindex "] pages: initial=%" PRId64, memory_index,
 1568|  1.91k|               page_limits->initial);
 1569|  1.91k|  if (page_limits->has_max) {
  ------------------
  |  Branch (1569:7): [True: 1.47k, False: 441]
  ------------------
 1570|  1.47k|    PrintDetails(" max=%" PRId64, page_limits->max);
 1571|  1.47k|  }
 1572|  1.91k|  if (page_limits->is_shared) {
  ------------------
  |  Branch (1572:7): [True: 135, False: 1.77k]
  ------------------
 1573|    135|    PrintDetails(" shared");
 1574|    135|  }
 1575|  1.91k|  if (page_limits->is_64) {
  ------------------
  |  Branch (1575:7): [True: 15, False: 1.89k]
  ------------------
 1576|     15|    PrintDetails(" i64");
 1577|     15|  }
 1578|  1.91k|  PrintDetails(" <- " PRIstringview "." PRIstringview "\n",
 1579|  1.91k|               WABT_PRINTF_STRING_VIEW_ARG(module_name),
  ------------------
  |  |   28|  1.91k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1580|  1.91k|               WABT_PRINTF_STRING_VIEW_ARG(field_name));
  ------------------
  |  |   28|  1.91k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1581|  1.91k|  return Result::Ok;
 1582|  1.91k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnImportGlobalEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jNS_4TypeEb:
 1589|  1.41k|                                           bool mutable_) {
 1590|  1.41k|  PrintDetails(" - global[%" PRIindex "] %s mutable=%d", global_index,
 1591|  1.41k|               type.GetName().c_str(), mutable_);
 1592|  1.41k|  PrintDetails(" <- " PRIstringview "." PRIstringview "\n",
 1593|  1.41k|               WABT_PRINTF_STRING_VIEW_ARG(module_name),
  ------------------
  |  |   28|  1.41k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1594|  1.41k|               WABT_PRINTF_STRING_VIEW_ARG(field_name));
  ------------------
  |  |   28|  1.41k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1595|  1.41k|  return Result::Ok;
 1596|  1.41k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump11OnImportTagEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jj:
 1602|    498|                                        Index sig_index) {
 1603|    498|  PrintDetails(" - tag[%" PRIindex "] sig=%" PRIindex, tag_index, sig_index);
  ------------------
  |  |   80|    498|#define PRIindex "u"
  ------------------
 1604|    498|  auto name = GetTagName(tag_index);
 1605|    498|  if (!name.empty()) {
  ------------------
  |  Branch (1605:7): [True: 498, False: 0]
  ------------------
 1606|    498|    PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|    498|  static_cast<int>((x).length()), (x).data()
  ------------------
 1607|    498|  }
 1608|    498|  PrintDetails(" <- " PRIstringview "." PRIstringview "\n",
 1609|    498|               WABT_PRINTF_STRING_VIEW_ARG(module_name),
  ------------------
  |  |   28|    498|  static_cast<int>((x).length()), (x).data()
  ------------------
 1610|    498|               WABT_PRINTF_STRING_VIEW_ARG(field_name));
  ------------------
  |  |   28|    498|  static_cast<int>((x).length()), (x).data()
  ------------------
 1611|    498|  return Result::Ok;
 1612|    498|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump15OnFunctionCountEj:
 1470|  3.66k|Result BinaryReaderObjdump::OnFunctionCount(Index count) {
 1471|  3.66k|  return OnCount(count);
 1472|  3.66k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump10OnFunctionEjj:
 1474|  45.6k|Result BinaryReaderObjdump::OnFunction(Index index, Index sig_index) {
 1475|  45.6k|  PrintDetails(" - func[%" PRIindex "] sig=%" PRIindex, index, sig_index);
  ------------------
  |  |   80|  45.6k|#define PRIindex "u"
  ------------------
 1476|  45.6k|  auto name = GetFunctionName(index);
 1477|  45.6k|  if (!name.empty()) {
  ------------------
  |  Branch (1477:7): [True: 789, False: 44.8k]
  ------------------
 1478|    789|    PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|    789|  static_cast<int>((x).length()), (x).data()
  ------------------
 1479|    789|  }
 1480|  45.6k|  PrintDetails("\n");
 1481|  45.6k|  objdump_state_->function_types[index] = sig_index;
 1482|  45.6k|  return Result::Ok;
 1483|  45.6k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump12OnTableCountEj:
 1634|    375|Result BinaryReaderObjdump::OnTableCount(Index count) {
 1635|    375|  return OnCount(count);
 1636|    375|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump7OnTableEjNS_4TypeEPKNS_6LimitsE:
 1640|    354|                                    const Limits* elem_limits) {
 1641|    354|  PrintDetails(" - table[%" PRIindex "] type=%s initial=%" PRId64, index,
 1642|    354|               elem_type.GetName().c_str(), elem_limits->initial);
 1643|    354|  if (elem_limits->has_max) {
  ------------------
  |  Branch (1643:7): [True: 84, False: 270]
  ------------------
 1644|     84|    PrintDetails(" max=%" PRId64, elem_limits->max);
 1645|     84|  }
 1646|    354|  auto name = GetTableName(index);
 1647|    354|  if (!name.empty()) {
  ------------------
  |  Branch (1647:7): [True: 3, False: 351]
  ------------------
 1648|      3|    PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|      3|  static_cast<int>((x).length()), (x).data()
  ------------------
 1649|      3|  }
 1650|    354|  if (elem_limits->is_64) {
  ------------------
  |  Branch (1650:7): [True: 0, False: 354]
  ------------------
 1651|      0|    PrintDetails(" i64");
 1652|      0|  }
 1653|    354|  PrintDetails("\n");
 1654|    354|  return Result::Ok;
 1655|    354|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnMemoryCountEj:
 1614|    522|Result BinaryReaderObjdump::OnMemoryCount(Index count) {
 1615|    522|  return OnCount(count);
 1616|    522|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump8OnMemoryEjPKNS_6LimitsE:
 1618|  9.77k|Result BinaryReaderObjdump::OnMemory(Index index, const Limits* page_limits) {
 1619|  9.77k|  PrintDetails(" - memory[%" PRIindex "] pages: initial=%" PRId64, index,
 1620|  9.77k|               page_limits->initial);
 1621|  9.77k|  if (page_limits->has_max) {
  ------------------
  |  Branch (1621:7): [True: 2.49k, False: 7.27k]
  ------------------
 1622|  2.49k|    PrintDetails(" max=%" PRId64, page_limits->max);
 1623|  2.49k|  }
 1624|  9.77k|  if (page_limits->is_shared) {
  ------------------
  |  Branch (1624:7): [True: 3.26k, False: 6.51k]
  ------------------
 1625|  3.26k|    PrintDetails(" shared");
 1626|  3.26k|  }
 1627|  9.77k|  if (page_limits->is_64) {
  ------------------
  |  Branch (1627:7): [True: 3.05k, False: 6.72k]
  ------------------
 1628|  3.05k|    PrintDetails(" i64");
 1629|  3.05k|  }
 1630|  9.77k|  PrintDetails("\n");
 1631|  9.77k|  return Result::Ok;
 1632|  9.77k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnGlobalCountEj:
 1709|  1.20k|Result BinaryReaderObjdump::OnGlobalCount(Index count) {
 1710|  1.20k|  return OnCount(count);
 1711|  1.20k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump11BeginGlobalEjNS_4TypeEb:
 1713|  3.38k|Result BinaryReaderObjdump::BeginGlobal(Index index, Type type, bool mutable_) {
 1714|  3.38k|  PrintDetails(" - global[%" PRIindex "] %s mutable=%d", index,
 1715|  3.38k|               type.GetName().c_str(), mutable_);
 1716|  3.38k|  std::string_view name = GetGlobalName(index);
 1717|  3.38k|  if (!name.empty()) {
  ------------------
  |  Branch (1717:7): [True: 60, False: 3.32k]
  ------------------
 1718|     60|    PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|     60|  static_cast<int>((x).length()), (x).data()
  ------------------
 1719|     60|  }
 1720|  3.38k|  return Result::Ok;
 1721|  3.38k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump19BeginGlobalInitExprEj:
 1126|  3.38k|  Result BeginGlobalInitExpr(Index index) override {
 1127|  3.38k|    reading_global_init_expr_ = true;
 1128|  3.38k|    BeginInitExpr();
 1129|  3.38k|    return Result::Ok;
 1130|  3.38k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13BeginInitExprEv:
 1108|  49.7k|  void BeginInitExpr() { current_init_expr_.insts.clear(); }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump17EndGlobalInitExprEj:
 1132|  2.71k|  Result EndGlobalInitExpr(Index index) override { return EndInitExpr(); }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump11EndInitExprEv:
 1859|  42.3k|Result BinaryReaderObjdump::EndInitExpr() {
 1860|  42.3k|  if (reading_data_init_expr_) {
  ------------------
  |  Branch (1860:7): [True: 6.15k, False: 36.2k]
  ------------------
 1861|  6.15k|    reading_data_init_expr_ = false;
 1862|  6.15k|    InitExprToConstOffset(current_init_expr_, &data_offset_);
 1863|  36.2k|  } else if (reading_elem_init_expr_) {
  ------------------
  |  Branch (1863:14): [True: 10.9k, False: 25.2k]
  ------------------
 1864|  10.9k|    reading_elem_init_expr_ = false;
 1865|  10.9k|    InitExprToConstOffset(current_init_expr_, &elem_offset_);
 1866|  25.2k|  } else if (reading_global_init_expr_) {
  ------------------
  |  Branch (1866:14): [True: 2.72k, False: 22.5k]
  ------------------
 1867|  2.72k|    reading_global_init_expr_ = false;
 1868|  2.72k|    PrintInitExpr(current_init_expr_);
 1869|  22.5k|  } else if (reading_elem_expr_) {
  ------------------
  |  Branch (1869:14): [True: 22.5k, False: 0]
  ------------------
 1870|  22.5k|    reading_elem_expr_ = false;
 1871|  22.5k|    PrintDetails("  - elem[%" PRIu64 "] = ", elem_offset_ + elem_index_);
 1872|  22.5k|    PrintInitExpr(current_init_expr_, /*as_unsigned=*/false,
 1873|  22.5k|                  /*with_prefix=*/false);
 1874|  22.5k|  } else {
 1875|      0|    WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
 1876|      0|  }
 1877|  42.3k|  return Result::Ok;
 1878|  42.3k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_121InitExprToConstOffsetERKNS0_8InitExprEPm:
 1844|  17.1k|static void InitExprToConstOffset(const InitExpr& expr, uint64_t* out_offset) {
 1845|  17.1k|  if (expr.insts.size() == 1) {
  ------------------
  |  Branch (1845:7): [True: 2.76k, False: 14.3k]
  ------------------
 1846|  2.76k|    switch (expr.type) {
 1847|     81|      case InitExprType::I32:
  ------------------
  |  Branch (1847:7): [True: 81, False: 2.68k]
  ------------------
 1848|     81|        *out_offset = expr.insts[0].imm.i32;
 1849|     81|        break;
 1850|     90|      case InitExprType::I64:
  ------------------
  |  Branch (1850:7): [True: 90, False: 2.67k]
  ------------------
 1851|     90|        *out_offset = expr.insts[0].imm.i64;
 1852|     90|        break;
 1853|  2.59k|      default:
  ------------------
  |  Branch (1853:7): [True: 2.59k, False: 171]
  ------------------
 1854|  2.59k|        break;
 1855|  2.76k|    }
 1856|  2.76k|  }
 1857|  17.1k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13PrintInitExprERKNS0_8InitExprEbb:
 1725|  38.1k|                                        bool with_prefix) {
 1726|  38.1k|  if (with_prefix) {
  ------------------
  |  Branch (1726:7): [True: 15.6k, False: 22.5k]
  ------------------
 1727|  15.6k|    PrintDetails(" - init ");
 1728|  15.6k|  }
 1729|       |
 1730|  38.1k|  if (expr.insts.empty()) {
  ------------------
  |  Branch (1730:7): [True: 4.73k, False: 33.4k]
  ------------------
 1731|  4.73k|    PrintDetails("<EMPTY>\n");
 1732|  4.73k|    return;
 1733|  4.73k|  }
 1734|       |
 1735|       |  // We have two different way to print init expressions.  One for
 1736|       |  // extended expressions involving more than one instruction, and
 1737|       |  // a short form for the more traditional single instruction form.
 1738|  33.4k|  if (expr.insts.size() > 1) {
  ------------------
  |  Branch (1738:7): [True: 9.03k, False: 24.3k]
  ------------------
 1739|  9.03k|    PrintDetails("(");
 1740|  9.03k|    bool first = true;
 1741|   288k|    for (auto& inst : expr.insts) {
  ------------------
  |  Branch (1741:21): [True: 288k, False: 9.03k]
  ------------------
 1742|   288k|      if (!first) {
  ------------------
  |  Branch (1742:11): [True: 278k, False: 9.03k]
  ------------------
 1743|   278k|        PrintDetails(", ");
 1744|   278k|      }
 1745|   288k|      first = false;
 1746|   288k|      PrintDetails("%s", inst.opcode.GetName());
 1747|   288k|      switch (inst.opcode) {
 1748|    509|        case Opcode::I32Const:
  ------------------
  |  Branch (1748:9): [True: 509, False: 287k]
  ------------------
 1749|    509|          PrintDetails(" %d", inst.imm.i32);
 1750|    509|          break;
 1751|  3.20k|        case Opcode::I64Const:
  ------------------
  |  Branch (1751:9): [True: 3.20k, False: 284k]
  ------------------
 1752|  3.20k|          PrintDetails(" %" PRId64, inst.imm.i64);
 1753|  3.20k|          break;
 1754|  68.9k|        case Opcode::F32Const: {
  ------------------
  |  Branch (1754:9): [True: 68.9k, False: 219k]
  ------------------
 1755|  68.9k|          char buffer[WABT_MAX_FLOAT_HEX];
 1756|  68.9k|          WriteFloatHex(buffer, sizeof(buffer), inst.imm.f32);
 1757|  68.9k|          PrintDetails(" %s\n", buffer);
 1758|  68.9k|          break;
 1759|      0|        }
 1760|  5.18k|        case Opcode::F64Const: {
  ------------------
  |  Branch (1760:9): [True: 5.18k, False: 282k]
  ------------------
 1761|  5.18k|          char buffer[WABT_MAX_DOUBLE_HEX];
 1762|  5.18k|          WriteDoubleHex(buffer, sizeof(buffer), inst.imm.f64);
 1763|  5.18k|          PrintDetails(" %s\n", buffer);
 1764|  5.18k|          break;
 1765|      0|        }
 1766|    757|        case Opcode::GlobalGet: {
  ------------------
  |  Branch (1766:9): [True: 757, False: 287k]
  ------------------
 1767|    757|          PrintDetails(" %" PRIindex, inst.imm.index);
  ------------------
  |  |   80|    757|#define PRIindex "u"
  ------------------
 1768|    757|          std::string_view name = GetGlobalName(inst.imm.index);
 1769|    757|          if (!name.empty()) {
  ------------------
  |  Branch (1769:15): [True: 33, False: 724]
  ------------------
 1770|     33|            PrintDetails(" <" PRIstringview ">",
 1771|     33|                         WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|     33|  static_cast<int>((x).length()), (x).data()
  ------------------
 1772|     33|          }
 1773|    757|          break;
 1774|      0|        }
 1775|   209k|        default:
  ------------------
  |  Branch (1775:9): [True: 209k, False: 78.6k]
  ------------------
 1776|   209k|          break;
 1777|   288k|      }
 1778|   288k|    }
 1779|  9.03k|    PrintDetails(")\n");
 1780|  9.03k|    return;
 1781|  9.03k|  }
 1782|       |
 1783|  24.3k|  switch (expr.type) {
  ------------------
  |  Branch (1783:11): [True: 0, False: 24.3k]
  ------------------
 1784|     75|    case InitExprType::I32:
  ------------------
  |  Branch (1784:5): [True: 75, False: 24.3k]
  ------------------
 1785|     75|      if (as_unsigned) {
  ------------------
  |  Branch (1785:11): [True: 36, False: 39]
  ------------------
 1786|     36|        PrintDetails("i32=%u\n", expr.insts[0].imm.i32);
 1787|     39|      } else {
 1788|     39|        PrintDetails("i32=%d\n", expr.insts[0].imm.i32);
 1789|     39|      }
 1790|     75|      break;
 1791|    229|    case InitExprType::I64:
  ------------------
  |  Branch (1791:5): [True: 229, False: 24.1k]
  ------------------
 1792|    229|      if (as_unsigned) {
  ------------------
  |  Branch (1792:11): [True: 31, False: 198]
  ------------------
 1793|     31|        PrintDetails("i64=%" PRIu64 "\n", expr.insts[0].imm.i64);
 1794|    198|      } else {
 1795|    198|        PrintDetails("i64=%" PRId64 "\n", expr.insts[0].imm.i64);
 1796|    198|      }
 1797|    229|      break;
 1798|  1.81k|    case InitExprType::F64: {
  ------------------
  |  Branch (1798:5): [True: 1.81k, False: 22.5k]
  ------------------
 1799|  1.81k|      char buffer[WABT_MAX_DOUBLE_HEX];
 1800|  1.81k|      WriteDoubleHex(buffer, sizeof(buffer), expr.insts[0].imm.f64);
 1801|  1.81k|      PrintDetails("f64=%s\n", buffer);
 1802|  1.81k|      break;
 1803|      0|    }
 1804|    315|    case InitExprType::F32: {
  ------------------
  |  Branch (1804:5): [True: 315, False: 24.0k]
  ------------------
 1805|    315|      char buffer[WABT_MAX_FLOAT_HEX];
 1806|    315|      WriteFloatHex(buffer, sizeof(buffer), expr.insts[0].imm.f32);
 1807|    315|      PrintDetails("f32=%s\n", buffer);
 1808|    315|      break;
 1809|      0|    }
 1810|      0|    case InitExprType::V128: {
  ------------------
  |  Branch (1810:5): [True: 0, False: 24.3k]
  ------------------
 1811|      0|      PrintDetails(
 1812|      0|          "v128=0x%08x 0x%08x 0x%08x 0x%08x \n",
 1813|      0|          expr.insts[0].imm.v128_v.u32(0), expr.insts[0].imm.v128_v.u32(1),
 1814|      0|          expr.insts[0].imm.v128_v.u32(2), expr.insts[0].imm.v128_v.u32(3));
 1815|      0|      break;
 1816|      0|    }
 1817|    213|    case InitExprType::Global: {
  ------------------
  |  Branch (1817:5): [True: 213, False: 24.1k]
  ------------------
 1818|    213|      PrintDetails("global=%" PRIindex, expr.insts[0].imm.index);
  ------------------
  |  |   80|    213|#define PRIindex "u"
  ------------------
 1819|    213|      std::string_view name = GetGlobalName(expr.insts[0].imm.index);
 1820|    213|      if (!name.empty()) {
  ------------------
  |  Branch (1820:11): [True: 24, False: 189]
  ------------------
 1821|     24|        PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|     24|  static_cast<int>((x).length()), (x).data()
  ------------------
 1822|     24|      }
 1823|    213|      PrintDetails("\n");
 1824|    213|      break;
 1825|      0|    }
 1826|  20.7k|    case InitExprType::FuncRef: {
  ------------------
  |  Branch (1826:5): [True: 20.7k, False: 3.68k]
  ------------------
 1827|  20.7k|      PrintDetails("ref.func:%" PRIindex, expr.insts[0].imm.index);
  ------------------
  |  |   80|  20.7k|#define PRIindex "u"
  ------------------
 1828|  20.7k|      std::string_view name = GetFunctionName(expr.insts[0].imm.index);
 1829|  20.7k|      if (!name.empty()) {
  ------------------
  |  Branch (1829:11): [True: 918, False: 19.7k]
  ------------------
 1830|    918|        PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|    918|  static_cast<int>((x).length()), (x).data()
  ------------------
 1831|    918|      }
 1832|  20.7k|      PrintDetails("\n");
 1833|  20.7k|      break;
 1834|      0|    }
 1835|    383|    case InitExprType::NullRef:
  ------------------
  |  Branch (1835:5): [True: 383, False: 24.0k]
  ------------------
 1836|    383|      PrintDetails("ref.null %s\n", expr.insts[0].imm.type.GetName().c_str());
 1837|    383|      break;
 1838|    648|    case InitExprType::Invalid:
  ------------------
  |  Branch (1838:5): [True: 648, False: 23.7k]
  ------------------
 1839|    648|      PrintDetails("<INVALID>\n");
 1840|    648|      break;
 1841|  24.3k|  }
 1842|  24.3k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnExportCountEj:
 1657|  1.19k|Result BinaryReaderObjdump::OnExportCount(Index count) {
 1658|  1.19k|  return OnCount(count);
 1659|  1.19k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump8OnExportEjNS_12ExternalKindEjNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEE:
 1664|  6.02k|                                     std::string_view name) {
 1665|  6.02k|  PrintDetails(" - %s[%" PRIindex "]", GetKindName(kind), item_index);
 1666|  6.02k|  if (kind == ExternalKind::Func) {
  ------------------
  |  Branch (1666:7): [True: 4.74k, False: 1.28k]
  ------------------
 1667|  4.74k|    auto name = GetFunctionName(item_index);
 1668|  4.74k|    if (!name.empty()) {
  ------------------
  |  Branch (1668:9): [True: 1.78k, False: 2.96k]
  ------------------
 1669|  1.78k|      PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|  1.78k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1670|  1.78k|    }
 1671|  4.74k|  }
 1672|       |
 1673|  6.02k|  PrintDetails(" -> \"" PRIstringview "\"\n",
 1674|  6.02k|               WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|  6.02k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1675|  6.02k|  return Result::Ok;
 1676|  6.02k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump15OnStartFunctionEj:
 1499|    207|Result BinaryReaderObjdump::OnStartFunction(Index func_index) {
 1500|    207|  if (options_->mode == ObjdumpMode::Headers) {
  ------------------
  |  Branch (1500:7): [True: 69, False: 138]
  ------------------
 1501|     69|    printf("start: %" PRIindex "\n", func_index);
 1502|    138|  } else {
 1503|    138|    PrintDetails(" - start function: %" PRIindex, func_index);
  ------------------
  |  |   80|    138|#define PRIindex "u"
  ------------------
 1504|    138|    auto name = GetFunctionName(func_index);
 1505|    138|    if (!name.empty()) {
  ------------------
  |  Branch (1505:9): [True: 0, False: 138]
  ------------------
 1506|      0|      PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|      0|  static_cast<int>((x).length()), (x).data()
  ------------------
 1507|      0|    }
 1508|    138|    PrintDetails("\n");
 1509|    138|  }
 1510|    207|  return Result::Ok;
 1511|    207|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump19OnFunctionBodyCountEj:
 1485|  4.90k|Result BinaryReaderObjdump::OnFunctionBodyCount(Index count) {
 1486|  4.90k|  return OnCount(count);
 1487|  4.90k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump17BeginFunctionBodyEjm:
 1489|  7.20k|Result BinaryReaderObjdump::BeginFunctionBody(Index index, Offset size) {
 1490|  7.20k|  PrintDetails(" - func[%" PRIindex "] size=%" PRIzd, index, size);
  ------------------
  |  |  278|  7.20k|#define PRIzd "zd"
  ------------------
 1491|  7.20k|  auto name = GetFunctionName(index);
 1492|  7.20k|  if (!name.empty()) {
  ------------------
  |  Branch (1492:7): [True: 222, False: 6.97k]
  ------------------
 1493|    222|    PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|    222|  static_cast<int>((x).length()), (x).data()
  ------------------
 1494|    222|  }
 1495|  7.20k|  PrintDetails("\n");
 1496|  7.20k|  return Result::Ok;
 1497|  7.20k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump8OnOpcodeENS_6OpcodeE:
 1928|  4.68M|Result BinaryReaderObjdump::OnOpcode(Opcode opcode) {
 1929|  4.68M|  BinaryReaderObjdumpBase::OnOpcode(opcode);
 1930|  4.68M|  if (ReadingInitExpr() && opcode != Opcode::End) {
  ------------------
  |  Branch (1930:7): [True: 4.68M, False: 0]
  |  Branch (1930:28): [True: 4.63M, False: 56.5k]
  ------------------
 1931|  4.63M|    InitInst i;
 1932|  4.63M|    i.opcode = current_opcode;
 1933|  4.63M|    current_init_expr_.insts.push_back(i);
 1934|  4.63M|  }
 1935|  4.68M|  return Result::Ok;
 1936|  4.68M|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump15ReadingInitExprEv:
 1266|  4.90M|  bool ReadingInitExpr() {
 1267|  4.90M|    return reading_elem_init_expr_ || reading_data_init_expr_ ||
  ------------------
  |  Branch (1267:12): [True: 1.49M, False: 3.41M]
  |  Branch (1267:39): [True: 3.24M, False: 170k]
  ------------------
 1268|  4.90M|           reading_global_init_expr_ || reading_elem_expr_;
  ------------------
  |  Branch (1268:12): [True: 110k, False: 60.4k]
  |  Branch (1268:41): [True: 60.4k, False: 0]
  ------------------
 1269|  4.90M|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnF32ConstExprEj:
 1896|   145k|Result BinaryReaderObjdump::OnF32ConstExpr(uint32_t value) {
 1897|   145k|  if (ReadingInitExpr()) {
  ------------------
  |  Branch (1897:7): [True: 145k, False: 0]
  ------------------
 1898|   145k|    current_init_expr_.type = InitExprType::F32;
 1899|   145k|    current_init_expr_.insts.back().imm.f32 = value;
 1900|   145k|  }
 1901|   145k|  return Result::Ok;
 1902|   145k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnF64ConstExprEm:
 1904|  15.9k|Result BinaryReaderObjdump::OnF64ConstExpr(uint64_t value) {
 1905|  15.9k|  if (ReadingInitExpr()) {
  ------------------
  |  Branch (1905:7): [True: 15.9k, False: 0]
  ------------------
 1906|  15.9k|    current_init_expr_.type = InitExprType::F64;
 1907|  15.9k|    current_init_expr_.insts.back().imm.f64 = value;
 1908|  15.9k|  }
 1909|  15.9k|  return Result::Ok;
 1910|  15.9k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump15OnGlobalGetExprEj:
 1938|  15.2k|Result BinaryReaderObjdump::OnGlobalGetExpr(Index global_index) {
 1939|  15.2k|  if (ReadingInitExpr()) {
  ------------------
  |  Branch (1939:7): [True: 15.2k, False: 0]
  ------------------
 1940|  15.2k|    current_init_expr_.type = InitExprType::Global;
 1941|  15.2k|    current_init_expr_.insts.back().imm.index = global_index;
 1942|  15.2k|  }
 1943|  15.2k|  return Result::Ok;
 1944|  15.2k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnI32ConstExprEj:
 1880|  6.24k|Result BinaryReaderObjdump::OnI32ConstExpr(uint32_t value) {
 1881|  6.24k|  if (ReadingInitExpr()) {
  ------------------
  |  Branch (1881:7): [True: 6.24k, False: 0]
  ------------------
 1882|  6.24k|    current_init_expr_.type = InitExprType::I32;
 1883|  6.24k|    current_init_expr_.insts.back().imm.i32 = value;
 1884|  6.24k|  }
 1885|  6.24k|  return Result::Ok;
 1886|  6.24k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnI64ConstExprEm:
 1888|  15.2k|Result BinaryReaderObjdump::OnI64ConstExpr(uint64_t value) {
 1889|  15.2k|  if (ReadingInitExpr()) {
  ------------------
  |  Branch (1889:7): [True: 15.2k, False: 0]
  ------------------
 1890|  15.2k|    current_init_expr_.type = InitExprType::I64;
 1891|  15.2k|    current_init_expr_.insts.back().imm.i64 = value;
 1892|  15.2k|  }
 1893|  15.2k|  return Result::Ok;
 1894|  15.2k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnRefFuncExprEj:
 1912|  20.7k|Result BinaryReaderObjdump::OnRefFuncExpr(Index func_index) {
 1913|  20.7k|  if (ReadingInitExpr()) {
  ------------------
  |  Branch (1913:7): [True: 20.7k, False: 0]
  ------------------
 1914|  20.7k|    current_init_expr_.type = InitExprType::FuncRef;
 1915|  20.7k|    current_init_expr_.insts.back().imm.index = func_index;
 1916|  20.7k|  }
 1917|  20.7k|  return Result::Ok;
 1918|  20.7k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnRefNullExprENS_4TypeE:
 1920|  1.53k|Result BinaryReaderObjdump::OnRefNullExpr(Type type) {
 1921|  1.53k|  if (ReadingInitExpr()) {
  ------------------
  |  Branch (1921:7): [True: 1.53k, False: 0]
  ------------------
 1922|  1.53k|    current_init_expr_.type = InitExprType::NullRef;
 1923|  1.53k|    current_init_expr_.insts.back().imm.type = type;
 1924|  1.53k|  }
 1925|  1.53k|  return Result::Ok;
 1926|  1.53k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump18OnElemSegmentCountEj:
 1678|  5.78k|Result BinaryReaderObjdump::OnElemSegmentCount(Index count) {
 1679|  5.78k|  return OnCount(count);
 1680|  5.78k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump16BeginElemSegmentEjjh:
 1684|  19.9k|                                             uint8_t flags) {
 1685|  19.9k|  table_index_ = table_index;
 1686|  19.9k|  elem_index_ = 0;
 1687|  19.9k|  elem_flags_ = flags;
 1688|  19.9k|  return Result::Ok;
 1689|  19.9k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump24BeginElemSegmentInitExprEj:
 1110|  15.6k|  Result BeginElemSegmentInitExpr(Index index) override {
 1111|  15.6k|    reading_elem_init_expr_ = true;
 1112|  15.6k|    BeginInitExpr();
 1113|  15.6k|    return Result::Ok;
 1114|  15.6k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump22EndElemSegmentInitExprEj:
 1116|  10.9k|  Result EndElemSegmentInitExpr(Index index) override { return EndInitExpr(); }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump21OnElemSegmentElemTypeEjNS_4TypeE:
 1691|  15.0k|Result BinaryReaderObjdump::OnElemSegmentElemType(Index index, Type elem_type) {
 1692|       |  // TODO: Add support for this.
 1693|  15.0k|  return Result::Ok;
 1694|  15.0k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump26OnElemSegmentElemExprCountEjj:
 1697|  14.8k|                                                       Index count) {
 1698|  14.8k|  PrintDetails(" - segment[%" PRIindex "] flags=%d table=%" PRIindex
 1699|  14.8k|               " count=%" PRIindex,
  ------------------
  |  |   80|  14.8k|#define PRIindex "u"
  ------------------
 1700|  14.8k|               index, elem_flags_, table_index_, count);
 1701|  14.8k|  if (elem_flags_ & SegPassive) {
  ------------------
  |  Branch (1701:7): [True: 3.96k, False: 10.8k]
  ------------------
 1702|  3.96k|    PrintDetails("\n");
 1703|  10.8k|  } else {
 1704|  10.8k|    PrintInitExpr(current_init_expr_, /*as_unsigned=*/true);
 1705|  10.8k|  }
 1706|  14.8k|  return Result::Ok;
 1707|  14.8k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13BeginElemExprEjj:
 1134|  22.7k|  Result BeginElemExpr(Index elem_index, Index expr_index) override {
 1135|  22.7k|    reading_elem_expr_ = true;
 1136|  22.7k|    elem_index_ = expr_index;
 1137|  22.7k|    BeginInitExpr();
 1138|  22.7k|    return Result::Ok;
 1139|  22.7k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump11EndElemExprEjj:
 1141|  22.5k|  Result EndElemExpr(Index elem_index, Index expr_index) override {
 1142|  22.5k|    assert(expr_index == elem_index_);
 1143|  22.5k|    return EndInitExpr();
 1144|  22.5k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump18OnDataSegmentCountEj:
 1978|  2.50k|Result BinaryReaderObjdump::OnDataSegmentCount(Index count) {
 1979|  2.50k|  return OnCount(count);
 1980|  2.50k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump16BeginDataSegmentEjjh:
 1984|  13.0k|                                             uint8_t flags) {
 1985|  13.0k|  data_mem_index_ = memory_index;
 1986|  13.0k|  data_flags_ = flags;
 1987|  13.0k|  return Result::Ok;
 1988|  13.0k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump24BeginDataSegmentInitExprEj:
 1118|  7.91k|  Result BeginDataSegmentInitExpr(Index index) override {
 1119|  7.91k|    reading_data_init_expr_ = true;
 1120|  7.91k|    BeginInitExpr();
 1121|  7.91k|    return Result::Ok;
 1122|  7.91k|  }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump22EndDataSegmentInitExprEj:
 1124|  6.15k|  Result EndDataSegmentInitExpr(Index index) override { return EndInitExpr(); }
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump17OnDataSegmentDataEjPKvm:
 1992|  11.1k|                                              Address size) {
 1993|  11.1k|  if (!ShouldPrintDetails()) {
  ------------------
  |  Branch (1993:7): [True: 7.42k, False: 3.71k]
  ------------------
 1994|  7.42k|    return Result::Ok;
 1995|  7.42k|  }
 1996|       |
 1997|  3.71k|  PrintDetails(" - segment[%" PRIindex "]", index);
 1998|  3.71k|  auto name = GetSegmentName(index);
 1999|  3.71k|  if (!name.empty()) {
  ------------------
  |  Branch (1999:7): [True: 23, False: 3.68k]
  ------------------
 2000|     23|    PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|     23|  static_cast<int>((x).length()), (x).data()
  ------------------
 2001|     23|  }
 2002|  3.71k|  if (data_flags_ & SegPassive) {
  ------------------
  |  Branch (2002:7): [True: 1.67k, False: 2.03k]
  ------------------
 2003|  1.67k|    PrintDetails(" passive");
 2004|  2.03k|  } else {
 2005|  2.03k|    PrintDetails(" memory=%" PRIindex, data_mem_index_);
  ------------------
  |  |   80|  2.03k|#define PRIindex "u"
  ------------------
 2006|  2.03k|  }
 2007|  3.71k|  PrintDetails(" size=%" PRIaddress, size);
  ------------------
  |  |   81|  3.71k|#define PRIaddress PRIu64
  ------------------
 2008|  3.71k|  if (data_flags_ & SegPassive) {
  ------------------
  |  Branch (2008:7): [True: 1.67k, False: 2.03k]
  ------------------
 2009|  1.67k|    PrintDetails("\n");
 2010|  2.03k|  } else {
 2011|  2.03k|    PrintInitExpr(current_init_expr_, /*as_unsigned=*/true);
 2012|  2.03k|  }
 2013|       |
 2014|  3.71k|  out_stream_->WriteMemoryDump(src_data, size, data_offset_, PrintChars::Yes,
 2015|  3.71k|                               "  - ");
 2016|       |
 2017|       |  // Print relocations from this segment.
 2018|  3.71k|  if (!options_->relocs) {
  ------------------
  |  Branch (2018:7): [True: 3.71k, False: 0]
  ------------------
 2019|  3.71k|    return Result::Ok;
 2020|  3.71k|  }
 2021|       |
 2022|      0|  Offset data_start = GetSectionStart(BinarySection::Data);
 2023|      0|  Offset segment_start = state->offset - size;
 2024|      0|  Offset segment_offset = segment_start - data_start;
 2025|      0|  while (next_data_reloc_ < objdump_state_->data_relocations.size()) {
  ------------------
  |  Branch (2025:10): [True: 0, False: 0]
  ------------------
 2026|      0|    const Reloc& reloc = objdump_state_->data_relocations[next_data_reloc_];
 2027|      0|    Offset abs_offset = data_start + reloc.offset;
 2028|      0|    if (abs_offset > state->offset) {
  ------------------
  |  Branch (2028:9): [True: 0, False: 0]
  ------------------
 2029|      0|      break;
 2030|      0|    }
 2031|      0|    PrintRelocation(reloc, reloc.offset - segment_offset + data_offset_);
 2032|      0|    next_data_reloc_++;
 2033|      0|  }
 2034|       |
 2035|      0|  return Result::Ok;
 2036|  3.71k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump11OnDataCountEj:
 1513|    285|Result BinaryReaderObjdump::OnDataCount(Index count) {
 1514|    285|  if (options_->mode == ObjdumpMode::Headers) {
  ------------------
  |  Branch (1514:7): [True: 95, False: 190]
  ------------------
 1515|     95|    printf("count: %" PRIindex "\n", count);
 1516|    190|  } else {
 1517|    190|    PrintDetails(" - data count: %" PRIindex "\n", count);
 1518|    190|  }
 1519|    285|  return Result::Ok;
 1520|    285|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump12OnModuleNameENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
 1946|  4.87k|Result BinaryReaderObjdump::OnModuleName(std::string_view name) {
 1947|  4.87k|  PrintDetails(" - module <" PRIstringview ">\n",
 1948|  4.87k|               WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|  4.87k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1949|  4.87k|  return Result::Ok;
 1950|  4.87k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnFunctionNameEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
 1952|  17.9k|Result BinaryReaderObjdump::OnFunctionName(Index index, std::string_view name) {
 1953|  17.9k|  PrintDetails(" - func[%" PRIindex "] <" PRIstringview ">\n", index,
 1954|  17.9k|               WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|  17.9k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1955|  17.9k|  return Result::Ok;
 1956|  17.9k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump11OnLocalNameEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
 1969|  18.1k|                                        std::string_view name) {
 1970|  18.1k|  if (!name.empty()) {
  ------------------
  |  Branch (1970:7): [True: 1.96k, False: 16.2k]
  ------------------
 1971|  1.96k|    PrintDetails(" - func[%" PRIindex "] local[%" PRIindex "] <" PRIstringview
 1972|  1.96k|                 ">\n",
 1973|  1.96k|                 func_index, local_index, WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|  1.96k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1974|  1.96k|  }
 1975|  18.1k|  return Result::Ok;
 1976|  18.1k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump11OnNameEntryENS_21NameSectionSubsectionEjNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEE:
 1960|  16.1k|                                        std::string_view name) {
 1961|  16.1k|  PrintDetails(" - %s[%" PRIindex "] <" PRIstringview ">\n",
 1962|  16.1k|               GetNameSectionSubsectionName(type), index,
 1963|  16.1k|               WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|  16.1k|  static_cast<int>((x).length()), (x).data()
  ------------------
 1964|  16.1k|  return Result::Ok;
 1965|  16.1k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump12OnRelocCountEjj:
 2086|  22.7k|Result BinaryReaderObjdump::OnRelocCount(Index count, Index section_index) {
 2087|  22.7k|  BinaryReaderObjdumpBase::OnRelocCount(count, section_index);
 2088|  22.7k|  PrintDetails("  - relocations for section: %d (" PRIstringview ") [%d]\n",
 2089|  22.7k|               section_index,
 2090|  22.7k|               WABT_PRINTF_STRING_VIEW_ARG(GetSectionName(section_index)),
  ------------------
  |  |   28|  22.7k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2091|  22.7k|               count);
 2092|  22.7k|  return Result::Ok;
 2093|  22.7k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump7OnRelocENS_9RelocTypeEmjj:
 2098|  67.0k|                                    uint32_t addend) {
 2099|  67.0k|  Offset total_offset = GetSectionStart(reloc_section_) + offset;
 2100|  67.0k|  PrintDetails("   - %-18s offset=%#08" PRIoffset "(file=%#08" PRIoffset ") ",
 2101|  67.0k|               GetRelocTypeName(type), offset, total_offset);
 2102|  67.0k|  if (type == RelocType::TypeIndexLEB) {
  ------------------
  |  Branch (2102:7): [True: 4.07k, False: 62.9k]
  ------------------
 2103|  4.07k|    PrintDetails("type=%" PRIindex, index);
  ------------------
  |  |   80|  4.07k|#define PRIindex "u"
  ------------------
 2104|  62.9k|  } else {
 2105|  62.9k|    PrintDetails("symbol=%" PRIindex " <" PRIstringview ">", index,
 2106|  62.9k|                 WABT_PRINTF_STRING_VIEW_ARG(GetSymbolName(index)));
  ------------------
  |  |   28|  62.9k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2107|  62.9k|  }
 2108|       |
 2109|  67.0k|  if (addend) {
  ------------------
  |  Branch (2109:7): [True: 11.7k, False: 55.2k]
  ------------------
 2110|  11.7k|    int32_t signed_addend = static_cast<int32_t>(addend);
 2111|  11.7k|    if (signed_addend < 0) {
  ------------------
  |  Branch (2111:9): [True: 837, False: 10.9k]
  ------------------
 2112|    837|      PrintDetails("-");
 2113|    837|      signed_addend = -signed_addend;
 2114|  10.9k|    } else {
 2115|  10.9k|      PrintDetails("+");
 2116|  10.9k|    }
 2117|  11.7k|    PrintDetails("%#x", signed_addend);
 2118|  11.7k|  }
 2119|  67.0k|  PrintDetails("\n");
 2120|  67.0k|  return Result::Ok;
 2121|  67.0k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump12OnDylinkInfoEjjjj:
 2041|  12.7k|                                         uint32_t table_align_log2) {
 2042|  12.7k|  PrintDetails(" - mem_size     : %u\n", mem_size);
 2043|  12.7k|  PrintDetails(" - mem_p2align  : %u\n", mem_align_log2);
 2044|  12.7k|  PrintDetails(" - table_size   : %u\n", table_size);
 2045|  12.7k|  PrintDetails(" - table_p2align: %u\n", table_align_log2);
 2046|  12.7k|  return Result::Ok;
 2047|  12.7k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump19OnDylinkImportCountEj:
 2056|  5.76k|Result BinaryReaderObjdump::OnDylinkImportCount(Index count) {
 2057|  5.76k|  PrintDetails(" - imports[%u]:\n", count);
 2058|  5.76k|  return Result::Ok;
 2059|  5.76k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump19OnDylinkExportCountEj:
 2061|  20.2k|Result BinaryReaderObjdump::OnDylinkExportCount(Index count) {
 2062|  20.2k|  PrintDetails(" - exports[%u]:\n", count);
 2063|  20.2k|  return Result::Ok;
 2064|  20.2k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnDylinkImportENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_j:
 2074|  4.41k|                                           uint32_t flags) {
 2075|  4.41k|  PrintDetails("  - " PRIstringview "." PRIstringview,
  ------------------
  |  |   26|  4.41k|#define PRIstringview "%.*s"
  ------------------
 2076|  4.41k|               WABT_PRINTF_STRING_VIEW_ARG(module),
  ------------------
  |  |   28|  4.41k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2077|  4.41k|               WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|  4.41k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2078|  4.41k|  return PrintSymbolFlags(flags);
 2079|  4.41k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump16PrintSymbolFlagsEj:
 2134|   114k|Result BinaryReaderObjdump::PrintSymbolFlags(uint32_t flags) {
 2135|   114k|  if (flags > WABT_SYMBOL_FLAG_MAX) {
  ------------------
  |  |  332|   114k|#define WABT_SYMBOL_FLAG_MAX 0x3ff
  ------------------
  |  Branch (2135:7): [True: 23.2k, False: 91.0k]
  ------------------
 2136|  23.2k|    err_stream_->Writef("Unknown symbols flags: %x\n", flags);
 2137|  23.2k|    return Result::Error;
 2138|  23.2k|  }
 2139|       |
 2140|  91.0k|  const char* binding_name = nullptr;
 2141|  91.0k|  SymbolBinding binding =
 2142|  91.0k|      static_cast<SymbolBinding>(flags & WABT_SYMBOL_MASK_BINDING);
  ------------------
  |  |  325|  91.0k|#define WABT_SYMBOL_MASK_BINDING 0x3
  ------------------
 2143|  91.0k|  switch (binding) {
  ------------------
  |  Branch (2143:11): [True: 14.7k, False: 76.2k]
  ------------------
 2144|  53.6k|    case SymbolBinding::Global:
  ------------------
  |  Branch (2144:5): [True: 53.6k, False: 37.4k]
  ------------------
 2145|  53.6k|      binding_name = "global";
 2146|  53.6k|      break;
 2147|  6.87k|    case SymbolBinding::Local:
  ------------------
  |  Branch (2147:5): [True: 6.87k, False: 84.1k]
  ------------------
 2148|  6.87k|      binding_name = "local";
 2149|  6.87k|      break;
 2150|  15.7k|    case SymbolBinding::Weak:
  ------------------
  |  Branch (2150:5): [True: 15.7k, False: 75.2k]
  ------------------
 2151|  15.7k|      binding_name = "weak";
 2152|  15.7k|      break;
 2153|  91.0k|  }
 2154|  91.0k|  flags &= ~WABT_SYMBOL_MASK_BINDING;
  ------------------
  |  |  325|  91.0k|#define WABT_SYMBOL_MASK_BINDING 0x3
  ------------------
 2155|       |
 2156|  91.0k|  const char* vis_name = nullptr;
 2157|  91.0k|  SymbolVisibility vis =
 2158|  91.0k|      static_cast<SymbolVisibility>(flags & WABT_SYMBOL_MASK_VISIBILITY);
  ------------------
  |  |  324|  91.0k|#define WABT_SYMBOL_MASK_VISIBILITY 0x4
  ------------------
 2159|  91.0k|  switch (vis) {
  ------------------
  |  Branch (2159:11): [True: 0, False: 91.0k]
  ------------------
 2160|  24.7k|    case SymbolVisibility::Hidden:
  ------------------
  |  Branch (2160:5): [True: 24.7k, False: 66.3k]
  ------------------
 2161|  24.7k|      vis_name = "hidden";
 2162|  24.7k|      break;
 2163|  66.3k|    case SymbolVisibility::Default:
  ------------------
  |  Branch (2163:5): [True: 66.3k, False: 24.7k]
  ------------------
 2164|  66.3k|      vis_name = "default";
 2165|  66.3k|      break;
 2166|  91.0k|  }
 2167|  91.0k|  flags &= ~WABT_SYMBOL_MASK_VISIBILITY;
  ------------------
  |  |  324|  91.0k|#define WABT_SYMBOL_MASK_VISIBILITY 0x4
  ------------------
 2168|       |
 2169|  91.0k|  PrintDetails(" [");
 2170|  91.0k|  if (flags & WABT_SYMBOL_FLAG_UNDEFINED) {
  ------------------
  |  |  326|  91.0k|#define WABT_SYMBOL_FLAG_UNDEFINED 0x10
  ------------------
  |  Branch (2170:7): [True: 33.1k, False: 57.9k]
  ------------------
 2171|  33.1k|    PrintDetails(" undefined");
 2172|  33.1k|    flags &= ~WABT_SYMBOL_FLAG_UNDEFINED;
  ------------------
  |  |  326|  33.1k|#define WABT_SYMBOL_FLAG_UNDEFINED 0x10
  ------------------
 2173|  33.1k|  }
 2174|  91.0k|  if (flags & WABT_SYMBOL_FLAG_EXPORTED) {
  ------------------
  |  |  327|  91.0k|#define WABT_SYMBOL_FLAG_EXPORTED 0x20
  ------------------
  |  Branch (2174:7): [True: 12.8k, False: 78.2k]
  ------------------
 2175|  12.8k|    PrintDetails(" exported");
 2176|  12.8k|    flags &= ~WABT_SYMBOL_FLAG_EXPORTED;
  ------------------
  |  |  327|  12.8k|#define WABT_SYMBOL_FLAG_EXPORTED 0x20
  ------------------
 2177|  12.8k|  }
 2178|  91.0k|  if (flags & WABT_SYMBOL_FLAG_EXPLICIT_NAME) {
  ------------------
  |  |  328|  91.0k|#define WABT_SYMBOL_FLAG_EXPLICIT_NAME 0x40
  ------------------
  |  Branch (2178:7): [True: 13.0k, False: 78.0k]
  ------------------
 2179|  13.0k|    PrintDetails(" explicit_name");
 2180|  13.0k|    flags &= ~WABT_SYMBOL_FLAG_EXPLICIT_NAME;
  ------------------
  |  |  328|  13.0k|#define WABT_SYMBOL_FLAG_EXPLICIT_NAME 0x40
  ------------------
 2181|  13.0k|  }
 2182|  91.0k|  if (flags & WABT_SYMBOL_FLAG_NO_STRIP) {
  ------------------
  |  |  329|  91.0k|#define WABT_SYMBOL_FLAG_NO_STRIP 0x80
  ------------------
  |  Branch (2182:7): [True: 5.14k, False: 85.9k]
  ------------------
 2183|  5.14k|    PrintDetails(" no_strip");
 2184|  5.14k|    flags &= ~WABT_SYMBOL_FLAG_NO_STRIP;
  ------------------
  |  |  329|  5.14k|#define WABT_SYMBOL_FLAG_NO_STRIP 0x80
  ------------------
 2185|  5.14k|  }
 2186|  91.0k|  if (flags & WABT_SYMBOL_FLAG_TLS) {
  ------------------
  |  |  330|  91.0k|#define WABT_SYMBOL_FLAG_TLS 0x100
  ------------------
  |  Branch (2186:7): [True: 1.07k, False: 89.9k]
  ------------------
 2187|  1.07k|    PrintDetails(" tls");
 2188|  1.07k|    flags &= ~WABT_SYMBOL_FLAG_TLS;
  ------------------
  |  |  330|  1.07k|#define WABT_SYMBOL_FLAG_TLS 0x100
  ------------------
 2189|  1.07k|  }
 2190|  91.0k|  if (flags & WABT_SYMBOL_FLAG_ABS) {
  ------------------
  |  |  331|  91.0k|#define WABT_SYMBOL_FLAG_ABS 0x200
  ------------------
  |  Branch (2190:7): [True: 4.40k, False: 86.6k]
  ------------------
 2191|  4.40k|    PrintDetails(" abs");
 2192|  4.40k|    flags &= ~WABT_SYMBOL_FLAG_ABS;
  ------------------
  |  |  331|  4.40k|#define WABT_SYMBOL_FLAG_ABS 0x200
  ------------------
 2193|  4.40k|  }
 2194|  91.0k|  if (flags != 0) {
  ------------------
  |  Branch (2194:7): [True: 24.6k, False: 66.3k]
  ------------------
 2195|  24.6k|    PrintDetails(" unknown_flags=%#x", flags);
 2196|  24.6k|  }
 2197|  91.0k|  PrintDetails(" binding=%s vis=%s ]\n", binding_name, vis_name);
 2198|  91.0k|  return Result::Ok;
 2199|  91.0k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnDylinkExportENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
 2067|  21.5k|                                           uint32_t flags) {
 2068|  21.5k|  PrintDetails("  - " PRIstringview, WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   26|  21.5k|#define PRIstringview "%.*s"
  ------------------
                PrintDetails("  - " PRIstringview, WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|  21.5k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2069|  21.5k|  return PrintSymbolFlags(flags);
 2070|  21.5k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump19OnDylinkNeededCountEj:
 2049|  7.36k|Result BinaryReaderObjdump::OnDylinkNeededCount(Index count) {
 2050|  7.36k|  if (count) {
  ------------------
  |  Branch (2050:7): [True: 1.96k, False: 5.39k]
  ------------------
 2051|  1.96k|    PrintDetails(" - needed_dynlibs[%u]:\n", count);
 2052|  1.96k|  }
 2053|  7.36k|  return Result::Ok;
 2054|  7.36k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnDylinkNeededENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
 2081|  5.01k|Result BinaryReaderObjdump::OnDylinkNeeded(std::string_view so_name) {
 2082|  5.01k|  PrintDetails("  - " PRIstringview "\n", WABT_PRINTF_STRING_VIEW_ARG(so_name));
  ------------------
  |  |   28|  5.01k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2083|  5.01k|  return Result::Ok;
 2084|  5.01k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump9OnFeatureEhNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
 2123|   149k|Result BinaryReaderObjdump::OnFeature(uint8_t prefix, std::string_view name) {
 2124|   149k|  PrintDetails("  - [%c] " PRIstringview "\n", prefix,
 2125|   149k|               WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|   149k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2126|   149k|  return Result::Ok;
 2127|   149k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnSymbolCountEj:
 2129|  34.3k|Result BinaryReaderObjdump::OnSymbolCount(Index count) {
 2130|  34.3k|  PrintDetails("  - symbol table [count=%d]\n", count);
 2131|  34.3k|  return Result::Ok;
 2132|  34.3k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump12OnDataSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEjjj:
 2231|  11.8k|                                         uint32_t size) {
 2232|  11.8k|  PrintDetails("   - %d: D <" PRIstringview ">", index,
 2233|  11.8k|               WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|  11.8k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2234|  11.8k|  if (!(flags & WABT_SYMBOL_FLAG_UNDEFINED)) {
  ------------------
  |  |  326|  11.8k|#define WABT_SYMBOL_FLAG_UNDEFINED 0x10
  ------------------
  |  Branch (2234:7): [True: 10.4k, False: 1.37k]
  ------------------
 2235|  10.4k|    if (flags & WABT_SYMBOL_FLAG_ABS) {
  ------------------
  |  |  331|  10.4k|#define WABT_SYMBOL_FLAG_ABS 0x200
  ------------------
  |  Branch (2235:9): [True: 4.18k, False: 6.29k]
  ------------------
 2236|  4.18k|      PrintDetails(" address=%d size=%d", offset, size);
 2237|  6.29k|    } else {
 2238|  6.29k|      PrintDetails(" segment=%" PRIindex " offset=%d size=%d", segment, offset,
 2239|  6.29k|                   size);
 2240|  6.29k|    }
 2241|  10.4k|  }
 2242|  11.8k|  return PrintSymbolFlags(flags);
 2243|  11.8k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump16OnFunctionSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
 2248|  31.7k|                                             Index func_index) {
 2249|  31.7k|  if (name.empty()) {
  ------------------
  |  Branch (2249:7): [True: 29.8k, False: 1.89k]
  ------------------
 2250|  29.8k|    name = GetFunctionName(func_index);
 2251|  29.8k|  }
 2252|  31.7k|  PrintDetails("   - %d: F <" PRIstringview "> func=%" PRIindex, index,
  ------------------
  |  |   80|  31.7k|#define PRIindex "u"
  ------------------
 2253|  31.7k|               WABT_PRINTF_STRING_VIEW_ARG(name), func_index);
  ------------------
  |  |   28|  31.7k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2254|  31.7k|  return PrintSymbolFlags(flags);
 2255|  31.7k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnGlobalSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
 2260|  9.93k|                                           Index global_index) {
 2261|  9.93k|  if (name.empty()) {
  ------------------
  |  Branch (2261:7): [True: 6.58k, False: 3.34k]
  ------------------
 2262|  6.58k|    name = GetGlobalName(global_index);
 2263|  6.58k|  }
 2264|  9.93k|  PrintDetails("   - %d: G <" PRIstringview "> global=%" PRIindex, index,
  ------------------
  |  |   80|  9.93k|#define PRIindex "u"
  ------------------
 2265|  9.93k|               WABT_PRINTF_STRING_VIEW_ARG(name), global_index);
  ------------------
  |  |   28|  9.93k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2266|  9.93k|  return PrintSymbolFlags(flags);
 2267|  9.93k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump15OnSectionSymbolEjjj:
 2271|  9.50k|                                            Index section_index) {
 2272|  9.50k|  auto sym_name = GetSectionName(section_index);
 2273|  9.50k|  assert(!sym_name.empty());
 2274|  9.50k|  PrintDetails("   - %d: S <" PRIstringview "> section=%" PRIindex, index,
  ------------------
  |  |   80|  9.50k|#define PRIindex "u"
  ------------------
 2275|  9.50k|               WABT_PRINTF_STRING_VIEW_ARG(sym_name), section_index);
  ------------------
  |  |   28|  9.50k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2276|  9.50k|  return PrintSymbolFlags(flags);
 2277|  9.50k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump11OnTagSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
 2282|  8.83k|                                        Index tag_index) {
 2283|  8.83k|  if (name.empty()) {
  ------------------
  |  Branch (2283:7): [True: 7.28k, False: 1.55k]
  ------------------
 2284|  7.28k|    name = GetTagName(tag_index);
 2285|  7.28k|  }
 2286|  8.83k|  PrintDetails("   - %d: E <" PRIstringview "> tag=%" PRIindex, index,
  ------------------
  |  |   80|  8.83k|#define PRIindex "u"
  ------------------
 2287|  8.83k|               WABT_PRINTF_STRING_VIEW_ARG(name), tag_index);
  ------------------
  |  |   28|  8.83k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2288|  8.83k|  return PrintSymbolFlags(flags);
 2289|  8.83k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnTableSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
 2294|  16.4k|                                          Index table_index) {
 2295|  16.4k|  if (name.empty()) {
  ------------------
  |  Branch (2295:7): [True: 6.56k, False: 9.87k]
  ------------------
 2296|  6.56k|    name = GetTableName(table_index);
 2297|  6.56k|  }
 2298|  16.4k|  PrintDetails("   - %d: T <" PRIstringview "> table=%" PRIindex, index,
  ------------------
  |  |   80|  16.4k|#define PRIindex "u"
  ------------------
 2299|  16.4k|               WABT_PRINTF_STRING_VIEW_ARG(name), table_index);
  ------------------
  |  |   28|  16.4k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2300|  16.4k|  return PrintSymbolFlags(flags);
 2301|  16.4k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump18OnSegmentInfoCountEj:
 2303|  12.8k|Result BinaryReaderObjdump::OnSegmentInfoCount(Index count) {
 2304|  12.8k|  PrintDetails("  - segment info [count=%d]\n", count);
 2305|  12.8k|  return Result::Ok;
 2306|  12.8k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnSegmentInfoEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEmj:
 2311|  12.3k|                                          uint32_t flags) {
 2312|  12.3k|  PrintDetails("   - %d: " PRIstringview " p2align=%" PRIaddress, index,
  ------------------
  |  |   81|  12.3k|#define PRIaddress PRIu64
  ------------------
 2313|  12.3k|               WABT_PRINTF_STRING_VIEW_ARG(name), alignment_log2);
  ------------------
  |  |   28|  12.3k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2314|  12.3k|  return PrintSegmentFlags(flags);
 2315|  12.3k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump17PrintSegmentFlagsEj:
 2201|  12.3k|Result BinaryReaderObjdump::PrintSegmentFlags(uint32_t flags) {
 2202|  12.3k|  if (flags > WABT_SYMBOL_FLAG_MAX) {
  ------------------
  |  |  332|  12.3k|#define WABT_SYMBOL_FLAG_MAX 0x3ff
  ------------------
  |  Branch (2202:7): [True: 1.48k, False: 10.8k]
  ------------------
 2203|  1.48k|    err_stream_->Writef("Unknown symbols flags: %x\n", flags);
 2204|  1.48k|    return Result::Error;
 2205|  1.48k|  }
 2206|  10.8k|  PrintDetails(" [");
 2207|  10.8k|  if (flags & WABT_SEGMENT_FLAG_STRINGS) {
  ------------------
  |  |  334|  10.8k|#define WABT_SEGMENT_FLAG_STRINGS 0x1
  ------------------
  |  Branch (2207:7): [True: 7.49k, False: 3.34k]
  ------------------
 2208|  7.49k|    PrintDetails(" STRINGS");
 2209|  7.49k|    flags &= ~WABT_SEGMENT_FLAG_STRINGS;
  ------------------
  |  |  334|  7.49k|#define WABT_SEGMENT_FLAG_STRINGS 0x1
  ------------------
 2210|  7.49k|  }
 2211|  10.8k|  if (flags & WABT_SEGMENT_FLAG_TLS) {
  ------------------
  |  |  335|  10.8k|#define WABT_SEGMENT_FLAG_TLS 0x2
  ------------------
  |  Branch (2211:7): [True: 5.81k, False: 5.03k]
  ------------------
 2212|  5.81k|    PrintDetails(" TLS");
 2213|  5.81k|    flags &= ~WABT_SEGMENT_FLAG_TLS;
  ------------------
  |  |  335|  5.81k|#define WABT_SEGMENT_FLAG_TLS 0x2
  ------------------
 2214|  5.81k|  }
 2215|  10.8k|  if (flags & WASM_SEGMENT_FLAG_RETAIN) {
  ------------------
  |  |  336|  10.8k|#define WASM_SEGMENT_FLAG_RETAIN 0x4
  ------------------
  |  Branch (2215:7): [True: 3.65k, False: 7.19k]
  ------------------
 2216|  3.65k|    PrintDetails(" RETAIN");
 2217|  3.65k|    flags &= ~WASM_SEGMENT_FLAG_RETAIN;
  ------------------
  |  |  336|  3.65k|#define WASM_SEGMENT_FLAG_RETAIN 0x4
  ------------------
 2218|  3.65k|  }
 2219|  10.8k|  if (flags != 0) {
  ------------------
  |  Branch (2219:7): [True: 7.75k, False: 3.08k]
  ------------------
 2220|  7.75k|    PrintDetails(" unknown_flags=%#x", flags);
 2221|  7.75k|  }
 2222|  10.8k|  PrintDetails(" ]\n");
 2223|  10.8k|  return Result::Ok;
 2224|  12.3k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump19OnInitFunctionCountEj:
 2317|  1.92k|Result BinaryReaderObjdump::OnInitFunctionCount(Index count) {
 2318|  1.92k|  PrintDetails("  - init functions [count=%d]\n", count);
 2319|  1.92k|  return Result::Ok;
 2320|  1.92k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnInitFunctionEjj:
 2323|  10.4k|                                           Index symbol_index) {
 2324|  10.4k|  PrintDetails("   - %d: priority=%d", symbol_index, priority);
 2325|  10.4k|  auto name = GetSymbolName(symbol_index);
 2326|  10.4k|  if (!name.empty()) {
  ------------------
  |  Branch (2326:7): [True: 7.30k, False: 3.17k]
  ------------------
 2327|  7.30k|    PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|  7.30k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2328|  7.30k|  }
 2329|  10.4k|  PrintDetails("\n");
 2330|  10.4k|  return Result::Ok;
 2331|  10.4k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnComdatCountEj:
 2333|  12.4k|Result BinaryReaderObjdump::OnComdatCount(Index count) {
 2334|  12.4k|  PrintDetails("  - comdat groups [count=%d]\n", count);
 2335|  12.4k|  return Result::Ok;
 2336|  12.4k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnComdatBeginENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEjj:
 2340|  10.1k|                                          Index count) {
 2341|  10.1k|  PrintDetails("   - " PRIstringview ": [count=%d]\n",
 2342|  10.1k|               WABT_PRINTF_STRING_VIEW_ARG(name), count);
  ------------------
  |  |   28|  10.1k|  static_cast<int>((x).length()), (x).data()
  ------------------
 2343|  10.1k|  return Result::Ok;
 2344|  10.1k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump13OnComdatEntryENS_10ComdatTypeEj:
 2346|  21.2k|Result BinaryReaderObjdump::OnComdatEntry(ComdatType kind, Index index) {
 2347|  21.2k|  switch (kind) {
  ------------------
  |  Branch (2347:11): [True: 7.18k, False: 14.0k]
  ------------------
 2348|  8.36k|    case ComdatType::Data: {
  ------------------
  |  Branch (2348:5): [True: 8.36k, False: 12.8k]
  ------------------
 2349|  8.36k|      PrintDetails("    - segment[%" PRIindex "]", index);
 2350|  8.36k|      auto name = GetSegmentName(index);
 2351|  8.36k|      if (!name.empty()) {
  ------------------
  |  Branch (2351:11): [True: 540, False: 7.82k]
  ------------------
 2352|    540|        PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|    540|  static_cast<int>((x).length()), (x).data()
  ------------------
 2353|    540|      }
 2354|  8.36k|      break;
 2355|      0|    }
 2356|  5.69k|    case ComdatType::Function: {
  ------------------
  |  Branch (2356:5): [True: 5.69k, False: 15.5k]
  ------------------
 2357|  5.69k|      PrintDetails("    - func[%" PRIindex "]", index);
 2358|  5.69k|      auto name = GetFunctionName(index);
 2359|  5.69k|      if (!name.empty()) {
  ------------------
  |  Branch (2359:11): [True: 63, False: 5.63k]
  ------------------
 2360|     63|        PrintDetails(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|     63|  static_cast<int>((x).length()), (x).data()
  ------------------
 2361|     63|      }
 2362|  5.69k|      break;
 2363|      0|    }
 2364|  21.2k|  }
 2365|  21.2k|  PrintDetails("\n");
 2366|  21.2k|  return Result::Ok;
 2367|  21.2k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump10OnTagCountEj:
 2369|     84|Result BinaryReaderObjdump::OnTagCount(Index count) {
 2370|     84|  return OnCount(count);
 2371|     84|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump9OnTagTypeEjj:
 2373|  5.65k|Result BinaryReaderObjdump::OnTagType(Index index, Index sig_index) {
 2374|  5.65k|  if (!ShouldPrintDetails()) {
  ------------------
  |  Branch (2374:7): [True: 3.76k, False: 1.88k]
  ------------------
 2375|  3.76k|    return Result::Ok;
 2376|  3.76k|  }
 2377|  1.88k|  printf(" - tag[%" PRIindex "] sig=%" PRIindex "\n", index, sig_index);
 2378|  1.88k|  return Result::Ok;
 2379|  5.65k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump19OnCodeMetadataCountEjj:
 2382|  59.6k|                                                Index count) {
 2383|  59.6k|  if (!ShouldPrintDetails()) {
  ------------------
  |  Branch (2383:7): [True: 39.7k, False: 19.8k]
  ------------------
 2384|  39.7k|    return Result::Ok;
 2385|  39.7k|  }
 2386|  19.8k|  printf("   - func[%" PRIindex "]", function_index);
 2387|  19.8k|  auto name = GetFunctionName(function_index);
 2388|  19.8k|  if (!name.empty()) {
  ------------------
  |  Branch (2388:7): [True: 293, False: 19.5k]
  ------------------
 2389|    293|    printf(" <" PRIstringview ">", WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|    293|  static_cast<int>((x).length()), (x).data()
  ------------------
 2390|    293|  }
 2391|  19.8k|  printf(":\n");
 2392|  19.8k|  return Result::Ok;
 2393|  59.6k|}
binary-reader-objdump.cc:_ZN4wabt12_GLOBAL__N_119BinaryReaderObjdump14OnCodeMetadataEmPKvm:
 2396|  11.0k|                                           Address size) {
 2397|  11.0k|  if (!ShouldPrintDetails()) {
  ------------------
  |  Branch (2397:7): [True: 7.38k, False: 3.69k]
  ------------------
 2398|  7.38k|    return Result::Ok;
 2399|  7.38k|  }
 2400|  3.69k|  printf("    - meta[%" PRIzx "]:\n", code_offset);
 2401|       |
 2402|  3.69k|  out_stream_->WriteMemoryDump(data, size, 0, PrintChars::Yes, "     - ");
 2403|  3.69k|  return Result::Ok;
 2404|  11.0k|}

_ZN4wabt10ReadBinaryEPKvmPNS_20BinaryReaderDelegateERKNS_17ReadBinaryOptionsE:
 3029|  45.6k|                  const ReadBinaryOptions& options) {
 3030|  45.6k|  BinaryReader reader(data, size, delegate, options);
 3031|  45.6k|  return reader.ReadModule(
 3032|  45.6k|      BinaryReader::ReadModuleOptions{options.stop_on_first_error});
 3033|  45.6k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReaderC2EPKvmPNS_20BinaryReaderDelegateERKNS_17ReadBinaryOptionsE:
  218|  45.6k|      last_known_section_(BinarySection::Invalid) {
  219|  45.6k|  delegate->OnSetState(&state_);
  220|  45.6k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadModuleERKNS1_17ReadModuleOptionsE:
 3003|  45.6k|Result BinaryReader::ReadModule(const ReadModuleOptions& options) {
 3004|  45.6k|  uint32_t magic = 0;
 3005|  45.6k|  CHECK_RESULT(ReadU32(&magic, "magic"));
  ------------------
  |  |   55|  45.6k|  do {                              \
  |  |   56|  45.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 45.6k]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|  45.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3006|  45.6k|  ERROR_UNLESS(magic == WABT_BINARY_MAGIC, "bad magic value");
  ------------------
  |  |   48|  45.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  45.6k|  do {                         \
  |  |  |  |   42|  45.6k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 215, False: 45.4k]
  |  |  |  |  ------------------
  |  |  |  |   43|    215|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    215|      return Result::Error;    \
  |  |  |  |   45|    215|    }                          \
  |  |  |  |   46|  45.6k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3007|  45.4k|  uint32_t version = 0;
 3008|  45.4k|  CHECK_RESULT(ReadU32(&version, "version"));
  ------------------
  |  |   55|  45.4k|  do {                              \
  |  |   56|  45.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 45.4k]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|  45.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3009|  45.4k|  ERROR_UNLESS(version == WABT_BINARY_VERSION,
  ------------------
  |  |   48|  45.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  45.4k|  do {                         \
  |  |  |  |   42|  45.4k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 200, False: 45.2k]
  |  |  |  |  ------------------
  |  |  |  |   43|    200|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    200|      return Result::Error;    \
  |  |  |  |   45|    200|    }                          \
  |  |  |  |   46|  45.4k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3010|  45.2k|               "bad wasm file version: %#x (expected %#x)", version,
 3011|  45.2k|               WABT_BINARY_VERSION);
 3012|       |
 3013|  45.2k|  CALLBACK(BeginModule, version);
  ------------------
  |  |   61|  45.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  45.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  45.2k|  do {                         \
  |  |  |  |  |  |   42|  45.2k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 45.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  45.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  45.2k|               #member " callback failed")
  ------------------
 3014|  45.2k|  CHECK_RESULT(ReadSections(ReadSectionsOptions{options.stop_on_first_error}));
  ------------------
  |  |   55|  45.2k|  do {                              \
  |  |   56|  45.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 39.4k, False: 5.76k]
  |  |  ------------------
  |  |   57|  39.4k|      return ::wabt::Result::Error; \
  |  |   58|  39.4k|    }                               \
  |  |   59|  45.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3015|       |  // This is checked in ReadCodeSection, but it must be checked at the end too,
 3016|       |  // in case the code section was omitted.
 3017|  5.76k|  ERROR_UNLESS(num_function_signatures_ == num_function_bodies_,
  ------------------
  |  |   48|  5.76k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  5.76k|  do {                         \
  |  |  |  |   42|  5.76k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 65, False: 5.70k]
  |  |  |  |  ------------------
  |  |  |  |   43|     65|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     65|      return Result::Error;    \
  |  |  |  |   45|     65|    }                          \
  |  |  |  |   46|  5.76k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3018|  5.70k|               "function signature count != function body count");
 3019|  5.70k|  CALLBACK0(EndModule);
  ------------------
  |  |   58|  5.70k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  5.70k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.70k|  do {                         \
  |  |  |  |  |  |   42|  5.70k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.70k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.70k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3020|       |
 3021|  5.70k|  return Result::Ok;
 3022|  5.70k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadU32EPjPKc:
  298|  91.0k|Result BinaryReader::ReadU32(uint32_t* out_value, const char* desc) {
  299|  91.0k|  return ReadT(out_value, "uint32_t", desc);
  300|  91.0k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTIjEENS_6ResultEPT_PKcS7_:
  277|   333k|                           const char* desc) {
  278|   333k|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (278:7): [True: 53, False: 333k]
  ------------------
  279|     53|    PrintError("unable to read %s: %s", type_name, desc);
  280|     53|    return Result::Error;
  281|     53|  }
  282|       |#if WABT_BIG_ENDIAN
  283|       |  uint8_t tmp[sizeof(T)];
  284|       |  memcpy(tmp, state_.data + state_.offset, sizeof(tmp));
  285|       |  SwapBytesSized(tmp, sizeof(tmp));
  286|       |  memcpy(out_value, tmp, sizeof(T));
  287|       |#else
  288|   333k|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  289|   333k|#endif
  290|   333k|  state_.offset += sizeof(T);
  291|   333k|  return Result::Ok;
  292|   333k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10PrintErrorEPKcz:
  223|  8.93M|                                                       ...) {
  224|  8.93M|  ErrorLevel error_level =
  225|  8.93M|      reading_custom_section_ && !options_.fail_on_custom_section_error
  ------------------
  |  Branch (225:7): [True: 442k, False: 8.49M]
  |  Branch (225:34): [True: 442k, False: 0]
  ------------------
  226|  8.93M|          ? ErrorLevel::Warning
  227|  8.93M|          : ErrorLevel::Error;
  228|       |
  229|  8.93M|  WABT_SNPRINTF_ALLOCA(buffer, length, format);
  ------------------
  |  |   36|  8.93M|  va_list args;                                                            \
  |  |   37|  8.93M|  va_list args_copy;                                                       \
  |  |   38|  8.93M|  va_start(args, format);                                                  \
  |  |   39|  8.93M|  va_copy(args_copy, args);                                                \
  |  |   40|  8.93M|  char fixed_buf[WABT_DEFAULT_SNPRINTF_ALLOCA_BUFSIZE];                    \
  |  |   41|  8.93M|  char* buffer = fixed_buf;                                                \
  |  |   42|  8.93M|  size_t len = wabt_vsnprintf(fixed_buf, sizeof(fixed_buf), format, args); \
  |  |  ------------------
  |  |  |  |  301|  8.93M|#define wabt_vsnprintf vsnprintf
  |  |  ------------------
  |  |   43|  8.93M|  va_end(args);                                                            \
  |  |   44|  8.93M|  if (len + 1 > sizeof(fixed_buf)) {                                       \
  |  |  ------------------
  |  |  |  Branch (44:7): [True: 0, False: 8.93M]
  |  |  ------------------
  |  |   45|      0|    buffer = static_cast<char*>(alloca(len + 1));                          \
  |  |   46|      0|    len = wabt_vsnprintf(buffer, len + 1, format, args_copy);              \
  |  |  ------------------
  |  |  |  |  301|      0|#define wabt_vsnprintf vsnprintf
  |  |  ------------------
  |  |   47|      0|  }                                                                        \
  |  |   48|  8.93M|  va_end(args_copy)
  ------------------
  230|  8.93M|  Error error(error_level, Location(state_.offset), buffer);
  231|  8.93M|  bool handled = delegate_->OnError(error);
  232|       |
  233|  8.93M|  if (!handled) {
  ------------------
  |  Branch (233:7): [True: 1.78M, False: 7.14M]
  ------------------
  234|       |    // Not great to just print, but we don't want to eat the error either.
  235|  1.78M|    fprintf(stderr, "%07" PRIzx ": %s: %s\n", state_.offset,
  236|  1.78M|            GetErrorLevelName(error_level), buffer);
  237|  1.78M|  }
  238|  8.93M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader12ReadSectionsERKNS1_19ReadSectionsOptionsE:
 2854|  45.2k|Result BinaryReader::ReadSections(const ReadSectionsOptions& options) {
 2855|  45.2k|  Result result = Result::Ok;
 2856|  45.2k|  Index section_index = 0;
 2857|  45.2k|  bool seen_section_code[static_cast<int>(BinarySection::Last) + 1] = {false};
 2858|       |
 2859|  9.20M|  for (; state_.offset < state_.size; ++section_index) {
  ------------------
  |  Branch (2859:10): [True: 9.17M, False: 31.0k]
  ------------------
 2860|  9.17M|    uint8_t section_code;
 2861|  9.17M|    Offset section_size;
 2862|  9.17M|    CHECK_RESULT(ReadU8(&section_code, "section code"));
  ------------------
  |  |   55|  9.17M|  do {                              \
  |  |   56|  9.17M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 9.17M]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  9.17M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2863|  9.17M|    CHECK_RESULT(ReadOffset(&section_size, "section size"));
  ------------------
  |  |   55|  9.17M|  do {                              \
  |  |   56|  9.17M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6.48k, False: 9.16M]
  |  |  ------------------
  |  |   57|  6.48k|      return ::wabt::Result::Error; \
  |  |   58|  6.48k|    }                               \
  |  |   59|  9.17M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2864|  9.16M|    ReadEndRestoreGuard guard(this);
 2865|  9.16M|    read_end_ = state_.offset + section_size;
 2866|  9.16M|    if (section_code >= kBinarySectionCount) {
  ------------------
  |  Branch (2866:9): [True: 991k, False: 8.17M]
  ------------------
 2867|   991k|      PrintError("invalid section code: %u", section_code);
 2868|   991k|      if (options.stop_on_first_error) {
  ------------------
  |  Branch (2868:11): [True: 0, False: 991k]
  ------------------
 2869|      0|        return Result::Error;
 2870|      0|      }
 2871|       |      // If we don't have to stop on first error, continue reading
 2872|       |      // sections, because although we could not understand the
 2873|       |      // current section, we can continue and correctly parse
 2874|       |      // subsequent sections, so we can give back as much information
 2875|       |      // as we can understand.
 2876|   991k|      result = Result::Error;
 2877|   991k|      state_.offset = read_end_;
 2878|   991k|      continue;
 2879|   991k|    }
 2880|       |
 2881|  8.17M|    BinarySection section = static_cast<BinarySection>(section_code);
 2882|  8.17M|    if (section != BinarySection::Custom) {
  ------------------
  |  Branch (2882:9): [True: 52.6k, False: 8.11M]
  ------------------
 2883|  52.6k|      if (seen_section_code[section_code]) {
  ------------------
  |  Branch (2883:11): [True: 990, False: 51.6k]
  ------------------
 2884|    990|        PrintError("multiple %s sections", GetSectionName(section));
 2885|    990|        return Result::Error;
 2886|    990|      }
 2887|  51.6k|      seen_section_code[section_code] = true;
 2888|  51.6k|    }
 2889|       |
 2890|  8.17M|    ERROR_UNLESS(read_end_ <= state_.size,
  ------------------
  |  |   48|  8.17M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  8.17M|  do {                         \
  |  |  |  |   42|  8.17M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 5.26k, False: 8.16M]
  |  |  |  |  ------------------
  |  |  |  |   43|  5.26k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  5.26k|      return Result::Error;    \
  |  |  |  |   45|  5.26k|    }                          \
  |  |  |  |   46|  8.17M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2891|  8.16M|                 "invalid section size: extends past end");
 2892|       |
 2893|  8.16M|    ERROR_UNLESS(
  ------------------
  |  |   48|  8.16M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  8.16M|  do {                         \
  |  |  |  |   42|  29.7M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 2.97M, False: 5.18M]
  |  |  |  |  |  Branch (42:9): [True: 5.17M, False: 15.2k]
  |  |  |  |  |  Branch (42:9): [True: 13.8k, False: 1.41k]
  |  |  |  |  ------------------
  |  |  |  |   43|  1.41k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  1.41k|      return Result::Error;    \
  |  |  |  |   45|  1.41k|    }                          \
  |  |  |  |   46|  8.16M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2894|  8.16M|        last_known_section_ == BinarySection::Invalid ||
 2895|  8.16M|            section == BinarySection::Custom ||
 2896|  8.16M|            GetSectionOrder(section) > GetSectionOrder(last_known_section_),
 2897|  8.16M|        "section %s out of order", GetSectionName(section));
 2898|       |
 2899|  8.16M|    ERROR_UNLESS(!did_read_names_section_ || section == BinarySection::Custom,
  ------------------
  |  |   48|  8.16M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  8.16M|  do {                         \
  |  |  |  |   42|  16.3M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 8.15M, False: 12.9k]
  |  |  |  |  |  Branch (42:9): [True: 12.8k, False: 15]
  |  |  |  |  ------------------
  |  |  |  |   43|     15|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     15|      return Result::Error;    \
  |  |  |  |   45|     15|    }                          \
  |  |  |  |   46|  8.16M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2900|  8.16M|                 "%s section can not occur after Name section",
 2901|  8.16M|                 GetSectionName(section));
 2902|       |
 2903|  8.16M|    CALLBACK(BeginSection, section_index, section, section_size);
  ------------------
  |  |   61|  8.16M|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  8.16M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  8.16M|  do {                         \
  |  |  |  |  |  |   42|  8.16M|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 8.16M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  8.16M|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  8.16M|               #member " callback failed")
  ------------------
 2904|       |
 2905|  8.16M|    bool stop_on_first_error = options_.stop_on_first_error;
 2906|  8.16M|    Result section_result = Result::Error;
 2907|  8.16M|    switch (section) {
  ------------------
  |  Branch (2907:13): [True: 0, False: 8.16M]
  ------------------
 2908|  8.11M|      case BinarySection::Custom:
  ------------------
  |  Branch (2908:7): [True: 8.11M, False: 48.6k]
  ------------------
 2909|  8.11M|        section_result = ReadCustomSection(section_index, section_size);
 2910|  8.11M|        if (options_.fail_on_custom_section_error) {
  ------------------
  |  Branch (2910:13): [True: 0, False: 8.11M]
  ------------------
 2911|      0|          result |= section_result;
 2912|  8.11M|        } else {
 2913|  8.11M|          stop_on_first_error = false;
 2914|  8.11M|        }
 2915|  8.11M|        break;
 2916|  3.44k|      case BinarySection::Type:
  ------------------
  |  Branch (2916:7): [True: 3.44k, False: 8.16M]
  ------------------
 2917|  3.44k|        section_result = ReadTypeSection(section_size);
 2918|  3.44k|        result |= section_result;
 2919|  3.44k|        break;
 2920|  1.62k|      case BinarySection::Import:
  ------------------
  |  Branch (2920:7): [True: 1.62k, False: 8.16M]
  ------------------
 2921|  1.62k|        section_result = ReadImportSection(section_size);
 2922|  1.62k|        result |= section_result;
 2923|  1.62k|        break;
 2924|  12.0k|      case BinarySection::Function:
  ------------------
  |  Branch (2924:7): [True: 12.0k, False: 8.15M]
  ------------------
 2925|  12.0k|        section_result = ReadFunctionSection(section_size);
 2926|  12.0k|        result |= section_result;
 2927|  12.0k|        break;
 2928|  1.10k|      case BinarySection::Table:
  ------------------
  |  Branch (2928:7): [True: 1.10k, False: 8.16M]
  ------------------
 2929|  1.10k|        section_result = ReadTableSection(section_size);
 2930|  1.10k|        result |= section_result;
 2931|  1.10k|        break;
 2932|  1.20k|      case BinarySection::Memory:
  ------------------
  |  Branch (2932:7): [True: 1.20k, False: 8.16M]
  ------------------
 2933|  1.20k|        section_result = ReadMemorySection(section_size);
 2934|  1.20k|        result |= section_result;
 2935|  1.20k|        break;
 2936|  2.30k|      case BinarySection::Global:
  ------------------
  |  Branch (2936:7): [True: 2.30k, False: 8.16M]
  ------------------
 2937|  2.30k|        section_result = ReadGlobalSection(section_size);
 2938|  2.30k|        result |= section_result;
 2939|  2.30k|        break;
 2940|  2.46k|      case BinarySection::Export:
  ------------------
  |  Branch (2940:7): [True: 2.46k, False: 8.16M]
  ------------------
 2941|  2.46k|        section_result = ReadExportSection(section_size);
 2942|  2.46k|        result |= section_result;
 2943|  2.46k|        break;
 2944|    500|      case BinarySection::Start:
  ------------------
  |  Branch (2944:7): [True: 500, False: 8.16M]
  ------------------
 2945|    500|        section_result = ReadStartSection(section_size);
 2946|    500|        result |= section_result;
 2947|    500|        break;
 2948|  9.93k|      case BinarySection::Elem:
  ------------------
  |  Branch (2948:7): [True: 9.93k, False: 8.15M]
  ------------------
 2949|  9.93k|        section_result = ReadElemSection(section_size);
 2950|  9.93k|        result |= section_result;
 2951|  9.93k|        break;
 2952|  8.60k|      case BinarySection::Code:
  ------------------
  |  Branch (2952:7): [True: 8.60k, False: 8.15M]
  ------------------
 2953|  8.60k|        section_result = ReadCodeSection(section_size);
 2954|  8.60k|        result |= section_result;
 2955|  8.60k|        break;
 2956|  4.53k|      case BinarySection::Data:
  ------------------
  |  Branch (2956:7): [True: 4.53k, False: 8.16M]
  ------------------
 2957|  4.53k|        section_result = ReadDataSection(section_size);
 2958|  4.53k|        result |= section_result;
 2959|  4.53k|        break;
 2960|    400|      case BinarySection::Tag:
  ------------------
  |  Branch (2960:7): [True: 400, False: 8.16M]
  ------------------
 2961|    400|        ERROR_UNLESS(options_.features.exceptions_enabled(),
  ------------------
  |  |   48|    400|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    400|  do {                         \
  |  |  |  |   42|    400|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 400]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|    400|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2962|    400|                     "invalid section code: %u",
 2963|    400|                     static_cast<unsigned int>(section));
 2964|    400|        section_result = ReadTagSection(section_size);
 2965|    400|        result |= section_result;
 2966|    400|        break;
 2967|    490|      case BinarySection::DataCount:
  ------------------
  |  Branch (2967:7): [True: 490, False: 8.16M]
  ------------------
 2968|    490|        ERROR_UNLESS(options_.features.bulk_memory_enabled(),
  ------------------
  |  |   48|    490|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    490|  do {                         \
  |  |  |  |   42|    490|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 490]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|    490|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2969|    490|                     "invalid section code: %u",
 2970|    490|                     static_cast<unsigned int>(section));
 2971|    490|        section_result = ReadDataCountSection(section_size);
 2972|    490|        result |= section_result;
 2973|    490|        break;
 2974|      0|      case BinarySection::Invalid:
  ------------------
  |  Branch (2974:7): [True: 0, False: 8.16M]
  ------------------
 2975|      0|        WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
 2976|  8.16M|    }
 2977|       |
 2978|  8.16M|    if (Succeeded(section_result) && state_.offset != read_end_) {
  ------------------
  |  Branch (2978:9): [True: 247k, False: 7.91M]
  |  Branch (2978:38): [True: 12.7k, False: 234k]
  ------------------
 2979|  12.7k|      PrintError("unfinished section (expected end: 0x%" PRIzx ")", read_end_);
 2980|  12.7k|      section_result = Result::Error;
 2981|  12.7k|      result |= section_result;
 2982|  12.7k|    }
 2983|       |
 2984|  8.16M|    if (Failed(section_result)) {
  ------------------
  |  Branch (2984:9): [True: 7.92M, False: 234k]
  ------------------
 2985|  7.92M|      if (stop_on_first_error) {
  ------------------
  |  Branch (2985:11): [True: 0, False: 7.92M]
  ------------------
 2986|      0|        return Result::Error;
 2987|      0|      }
 2988|       |
 2989|       |      // If we're continuing after failing to read this section, move the
 2990|       |      // offset to the expected section end. This way we may be able to read
 2991|       |      // further sections.
 2992|  7.92M|      state_.offset = read_end_;
 2993|  7.92M|    }
 2994|       |
 2995|  8.16M|    if (section != BinarySection::Custom) {
  ------------------
  |  Branch (2995:9): [True: 48.6k, False: 8.11M]
  ------------------
 2996|  48.6k|      last_known_section_ = section;
 2997|  48.6k|    }
 2998|  8.16M|  }
 2999|       |
 3000|  31.0k|  return result;
 3001|  45.2k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader6ReadU8EPhPKc:
  294|  17.4M|Result BinaryReader::ReadU8(uint8_t* out_value, const char* desc) {
  295|  17.4M|  return ReadT(out_value, "uint8_t", desc);
  296|  17.4M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTIhEENS_6ResultEPT_PKcS7_:
  277|  17.4M|                           const char* desc) {
  278|  17.4M|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (278:7): [True: 25.5k, False: 17.4M]
  ------------------
  279|  25.5k|    PrintError("unable to read %s: %s", type_name, desc);
  280|  25.5k|    return Result::Error;
  281|  25.5k|  }
  282|       |#if WABT_BIG_ENDIAN
  283|       |  uint8_t tmp[sizeof(T)];
  284|       |  memcpy(tmp, state_.data + state_.offset, sizeof(tmp));
  285|       |  SwapBytesSized(tmp, sizeof(tmp));
  286|       |  memcpy(out_value, tmp, sizeof(T));
  287|       |#else
  288|  17.4M|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  289|  17.4M|#endif
  290|  17.4M|  state_.offset += sizeof(T);
  291|  17.4M|  return Result::Ok;
  292|  17.4M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadOffsetEPmPKc:
  425|  9.92M|Result BinaryReader::ReadOffset(Offset* offset, const char* desc) {
  426|  9.92M|  uint32_t value;
  427|  9.92M|  CHECK_RESULT(ReadU32Leb128(&value, desc));
  ------------------
  |  |   55|  9.92M|  do {                              \
  |  |   56|  9.92M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 32.6k, False: 9.89M]
  |  |  ------------------
  |  |   57|  32.6k|      return ::wabt::Result::Error; \
  |  |   58|  32.6k|    }                               \
  |  |   59|  9.92M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  428|  9.89M|  *offset = value;
  429|  9.89M|  return Result::Ok;
  430|  9.92M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadU32Leb128EPjPKc:
  314|  27.2M|Result BinaryReader::ReadU32Leb128(uint32_t* out_value, const char* desc) {
  315|  27.2M|  const uint8_t* p = state_.data + state_.offset;
  316|  27.2M|  const uint8_t* end = state_.data + read_end_;
  317|  27.2M|  size_t bytes_read = wabt::ReadU32Leb128(p, end, out_value);
  318|  27.2M|  ERROR_UNLESS(bytes_read > 0, "unable to read u32 leb128: %s", desc);
  ------------------
  |  |   48|  27.2M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  27.2M|  do {                         \
  |  |  |  |   42|  27.2M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 7.54M, False: 19.7M]
  |  |  |  |  ------------------
  |  |  |  |   43|  7.54M|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  7.54M|      return Result::Error;    \
  |  |  |  |   45|  7.54M|    }                          \
  |  |  |  |   46|  27.2M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  319|  19.7M|  state_.offset += bytes_read;
  320|  19.7M|  return Result::Ok;
  321|  27.2M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardImXadL_ZNS1_9read_end_EEEEC2EPS1_:
   85|  9.73M|        : this_(this_), previous_value_(this_->*member) {}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadCustomSectionEjm:
 2396|  8.11M|                                       Offset section_size) {
 2397|  8.11M|  std::string_view section_name;
 2398|  8.11M|  CHECK_RESULT(ReadStr(&section_name, "section name"));
  ------------------
  |  |   55|  8.11M|  do {                              \
  |  |   56|  8.11M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7.43M, False: 684k]
  |  |  ------------------
  |  |   57|  7.43M|      return ::wabt::Result::Error; \
  |  |   58|  7.43M|    }                               \
  |  |   59|  8.11M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2399|   684k|  CALLBACK(BeginCustomSection, section_index, section_size, section_name);
  ------------------
  |  |   61|   684k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   684k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   684k|  do {                         \
  |  |  |  |  |  |   42|   684k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 684k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   684k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   684k|               #member " callback failed")
  ------------------
 2400|   684k|  ValueRestoreGuard<bool, &BinaryReader::reading_custom_section_> guard(this);
 2401|   684k|  reading_custom_section_ = true;
 2402|       |
 2403|   684k|  {
 2404|       |    // Backtrack parser when scope ends
 2405|   684k|    ValueRestoreGuard<BinaryReaderDelegate::State, &BinaryReader::state_> guard(
 2406|   684k|        this);
 2407|   684k|    CHECK_RESULT(ReadGenericCustomSection(section_name, section_size));
  ------------------
  |  |   55|   684k|  do {                              \
  |  |   56|   684k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 684k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|   684k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2408|   684k|  }
 2409|       |
 2410|   684k|  if (options_.read_debug_names && section_name == WABT_BINARY_SECTION_NAME) {
  ------------------
  |  |   31|   684k|#define WABT_BINARY_SECTION_NAME "name"
  ------------------
  |  Branch (2410:7): [True: 684k, False: 0]
  |  Branch (2410:36): [True: 83.7k, False: 600k]
  ------------------
 2411|  83.7k|    CHECK_RESULT(ReadNameSection(section_size));
  ------------------
  |  |   55|  83.7k|  do {                              \
  |  |   56|  83.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 76.4k, False: 7.28k]
  |  |  ------------------
  |  |   57|  76.4k|      return ::wabt::Result::Error; \
  |  |   58|  76.4k|    }                               \
  |  |   59|  83.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2412|  7.28k|    did_read_names_section_ = true;
 2413|   600k|  } else if (section_name == WABT_BINARY_SECTION_DYLINK0) {
  ------------------
  |  |   36|   600k|#define WABT_BINARY_SECTION_DYLINK0 "dylink.0"
  ------------------
  |  Branch (2413:14): [True: 75.8k, False: 524k]
  ------------------
 2414|  75.8k|    CHECK_RESULT(ReadDylink0Section(section_size));
  ------------------
  |  |   55|  75.8k|  do {                              \
  |  |   56|  75.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 74.2k, False: 1.65k]
  |  |  ------------------
  |  |   57|  74.2k|      return ::wabt::Result::Error; \
  |  |   58|  74.2k|    }                               \
  |  |   59|  75.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2415|   524k|  } else if (section_name == WABT_BINARY_SECTION_DYLINK) {
  ------------------
  |  |   35|   524k|#define WABT_BINARY_SECTION_DYLINK "dylink"
  ------------------
  |  Branch (2415:14): [True: 14.7k, False: 510k]
  ------------------
 2416|  14.7k|    CHECK_RESULT(ReadDylinkSection(section_size));
  ------------------
  |  |   55|  14.7k|  do {                              \
  |  |   56|  14.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 8.27k, False: 6.51k]
  |  |  ------------------
  |  |   57|  8.27k|      return ::wabt::Result::Error; \
  |  |   58|  8.27k|    }                               \
  |  |   59|  14.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2417|   510k|  } else if (section_name.rfind(WABT_BINARY_SECTION_RELOC, 0) == 0) {
  ------------------
  |  |   32|   510k|#define WABT_BINARY_SECTION_RELOC "reloc"
  ------------------
  |  Branch (2417:14): [True: 39.6k, False: 470k]
  ------------------
 2418|       |    // Reloc sections always begin with "reloc."
 2419|  39.6k|    CHECK_RESULT(ReadRelocSection(section_size));
  ------------------
  |  |   55|  39.6k|  do {                              \
  |  |   56|  39.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 31.3k, False: 8.30k]
  |  |  ------------------
  |  |   57|  31.3k|      return ::wabt::Result::Error; \
  |  |   58|  31.3k|    }                               \
  |  |   59|  39.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2420|   470k|  } else if (section_name == WABT_BINARY_SECTION_TARGET_FEATURES) {
  ------------------
  |  |   34|   470k|#define WABT_BINARY_SECTION_TARGET_FEATURES "target_features"
  ------------------
  |  Branch (2420:14): [True: 61.6k, False: 408k]
  ------------------
 2421|  61.6k|    CHECK_RESULT(ReadTargetFeaturesSections(section_size));
  ------------------
  |  |   55|  61.6k|  do {                              \
  |  |   56|  61.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 39.5k, False: 22.0k]
  |  |  ------------------
  |  |   57|  39.5k|      return ::wabt::Result::Error; \
  |  |   58|  39.5k|    }                               \
  |  |   59|  61.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2422|   408k|  } else if (section_name == WABT_BINARY_SECTION_LINKING) {
  ------------------
  |  |   33|   408k|#define WABT_BINARY_SECTION_LINKING "linking"
  ------------------
  |  Branch (2422:14): [True: 88.4k, False: 320k]
  ------------------
 2423|  88.4k|    CHECK_RESULT(ReadLinkingSection(section_size));
  ------------------
  |  |   55|  88.4k|  do {                              \
  |  |   56|  88.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 80.1k, False: 8.32k]
  |  |  ------------------
  |  |   57|  80.1k|      return ::wabt::Result::Error; \
  |  |   58|  80.1k|    }                               \
  |  |   59|  88.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2424|   320k|  } else if (options_.features.code_metadata_enabled() &&
  ------------------
  |  Branch (2424:14): [True: 320k, False: 0]
  ------------------
 2425|   320k|             section_name.find(WABT_BINARY_SECTION_CODE_METADATA) == 0) {
  ------------------
  |  |   37|   320k|#define WABT_BINARY_SECTION_CODE_METADATA "metadata.code."
  ------------------
  |  Branch (2425:14): [True: 134k, False: 186k]
  ------------------
 2426|   134k|    std::string_view metadata_name = section_name;
 2427|   134k|    metadata_name.remove_prefix(sizeof(WABT_BINARY_SECTION_CODE_METADATA) - 1);
  ------------------
  |  |   37|   134k|#define WABT_BINARY_SECTION_CODE_METADATA "metadata.code."
  ------------------
 2428|   134k|    CHECK_RESULT(ReadCodeMetadataSection(metadata_name, section_size));
  ------------------
  |  |   55|   134k|  do {                              \
  |  |   56|   134k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 132k, False: 2.03k]
  |  |  ------------------
  |  |   57|   132k|      return ::wabt::Result::Error; \
  |  |   58|   132k|    }                               \
  |  |   59|   134k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2429|   186k|  } else {
 2430|       |    // Skip. This is a generic custom section, and is handled above.
 2431|   186k|    state_.offset = read_end_;
 2432|   186k|  }
 2433|   242k|  CALLBACK0(EndCustomSection);
  ------------------
  |  |   58|   242k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   242k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   242k|  do {                         \
  |  |  |  |  |  |   42|   242k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 242k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   242k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2434|   242k|  return Result::Ok;
 2435|   242k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadStrEPNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEPKc:
  381|  8.80M|Result BinaryReader::ReadStr(std::string_view* out_str, const char* desc) {
  382|  8.80M|  uint32_t str_len = 0;
  383|  8.80M|  CHECK_RESULT(ReadU32Leb128(&str_len, "string length"));
  ------------------
  |  |   55|  8.80M|  do {                              \
  |  |   56|  8.80M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7.40M, False: 1.40M]
  |  |  ------------------
  |  |   57|  7.40M|      return ::wabt::Result::Error; \
  |  |   58|  7.40M|    }                               \
  |  |   59|  8.80M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  384|       |
  385|  1.40M|  ERROR_UNLESS(state_.offset + str_len <= read_end_,
  ------------------
  |  |   48|  1.40M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  1.40M|  do {                         \
  |  |  |  |   42|  1.40M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 54.4k, False: 1.34M]
  |  |  |  |  ------------------
  |  |  |  |   43|  54.4k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  54.4k|      return Result::Error;    \
  |  |  |  |   45|  54.4k|    }                          \
  |  |  |  |   46|  1.40M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  386|  1.34M|               "unable to read string: %s", desc);
  387|       |
  388|  1.34M|  *out_str = std::string_view(
  389|  1.34M|      reinterpret_cast<const char*>(state_.data) + state_.offset, str_len);
  390|  1.34M|  state_.offset += str_len;
  391|       |
  392|  1.34M|  ERROR_UNLESS(IsValidUtf8(out_str->data(), out_str->length()),
  ------------------
  |  |   48|  1.34M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  1.34M|  do {                         \
  |  |  |  |   42|  1.34M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 25.4k, False: 1.32M]
  |  |  |  |  ------------------
  |  |  |  |   43|  25.4k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  25.4k|      return Result::Error;    \
  |  |  |  |   45|  25.4k|    }                          \
  |  |  |  |   46|  1.34M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  393|  1.32M|               "invalid utf-8 encoding: %s", desc);
  394|  1.32M|  return Result::Ok;
  395|  1.34M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardIbXadL_ZNS1_23reading_custom_section_EEEEC2EPS1_:
   85|   684k|        : this_(this_), previous_value_(this_->*member) {}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardINS_20BinaryReaderDelegate5StateEXadL_ZNS1_6state_EEEEC2EPS1_:
   85|   684k|        : this_(this_), previous_value_(this_->*member) {}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader24ReadGenericCustomSectionENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEm:
 2172|   684k|                                              Offset section_size) {
 2173|   684k|  CALLBACK(BeginGenericCustomSection, section_size);
  ------------------
  |  |   61|   684k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   684k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   684k|  do {                         \
  |  |  |  |  |  |   42|   684k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 684k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   684k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   684k|               #member " callback failed")
  ------------------
 2174|   684k|  const void* data;
 2175|   684k|  Offset custom_data_size = read_end_ - state_.offset;
 2176|   684k|  CHECK_RESULT(
  ------------------
  |  |   55|   684k|  do {                              \
  |  |   56|   684k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 684k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|   684k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2177|   684k|      ReadBytesWithSize(&data, custom_data_size, "custom section data"));
 2178|   684k|  CALLBACK(OnGenericCustomSection, name, data, custom_data_size);
  ------------------
  |  |   61|   684k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   684k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   684k|  do {                         \
  |  |  |  |  |  |   42|   684k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 684k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   684k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   684k|               #member " callback failed")
  ------------------
 2179|   684k|  CALLBACK0(EndGenericCustomSection);
  ------------------
  |  |   58|   684k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   684k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   684k|  do {                         \
  |  |  |  |  |  |   42|   684k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 684k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   684k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2180|   684k|  return Result::Ok;
 2181|   684k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadBytesWithSizeEPPKvmPKc:
  409|   723k|                                       const char* desc) {
  410|   723k|  ERROR_UNLESS(state_.offset + size <= read_end_, "unable to read data: %s",
  ------------------
  |  |   48|   723k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   723k|  do {                         \
  |  |  |  |   42|   723k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 2.01k, False: 721k]
  |  |  |  |  ------------------
  |  |  |  |   43|  2.01k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  2.01k|      return Result::Error;    \
  |  |  |  |   45|  2.01k|    }                          \
  |  |  |  |   46|   723k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  411|   721k|               desc);
  412|       |
  413|   721k|  *out_data = static_cast<const uint8_t*>(state_.data) + state_.offset;
  414|   721k|  state_.offset += size;
  415|   721k|  return Result::Ok;
  416|   723k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardINS_20BinaryReaderDelegate5StateEXadL_ZNS1_6state_EEEED2Ev:
   86|   684k|    ~ValueRestoreGuard() { this_->*member = previous_value_; }
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadNameSectionEm:
 1858|  83.7k|Result BinaryReader::ReadNameSection(Offset section_size) {
 1859|  83.7k|  CALLBACK(BeginNamesSection, section_size);
  ------------------
  |  |   61|  83.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  83.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  83.7k|  do {                         \
  |  |  |  |  |  |   42|  83.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 83.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  83.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  83.7k|               #member " callback failed")
  ------------------
 1860|  83.7k|  Index i = 0;
 1861|  83.7k|  uint32_t previous_subsection_type = 0;
 1862|   122k|  while (state_.offset < read_end_) {
  ------------------
  |  Branch (1862:10): [True: 114k, False: 7.28k]
  ------------------
 1863|   114k|    uint32_t name_type;
 1864|   114k|    Offset subsection_size;
 1865|   114k|    CHECK_RESULT(ReadU32Leb128(&name_type, "name type"));
  ------------------
  |  |   55|   114k|  do {                              \
  |  |   56|   114k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 260, False: 114k]
  |  |  ------------------
  |  |   57|    260|      return ::wabt::Result::Error; \
  |  |   58|    260|    }                               \
  |  |   59|   114k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1866|   114k|    if (i != 0) {
  ------------------
  |  Branch (1866:9): [True: 31.2k, False: 83.4k]
  ------------------
 1867|  31.2k|      ERROR_UNLESS(name_type != previous_subsection_type,
  ------------------
  |  |   48|  31.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  31.2k|  do {                         \
  |  |  |  |   42|  31.2k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 25, False: 31.1k]
  |  |  |  |  ------------------
  |  |  |  |   43|     25|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     25|      return Result::Error;    \
  |  |  |  |   45|     25|    }                          \
  |  |  |  |   46|  31.2k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1868|  31.1k|                   "duplicate sub-section");
 1869|  31.1k|      ERROR_UNLESS(name_type >= previous_subsection_type,
  ------------------
  |  |   48|  31.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  31.1k|  do {                         \
  |  |  |  |   42|  31.1k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 9.43k, False: 21.7k]
  |  |  |  |  ------------------
  |  |  |  |   43|  9.43k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  9.43k|      return Result::Error;    \
  |  |  |  |   45|  9.43k|    }                          \
  |  |  |  |   46|  31.1k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1870|  31.1k|                   "out-of-order sub-section");
 1871|  31.1k|    }
 1872|   105k|    previous_subsection_type = name_type;
 1873|   105k|    CHECK_RESULT(ReadOffset(&subsection_size, "subsection size"));
  ------------------
  |  |   55|   105k|  do {                              \
  |  |   56|   105k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3.04k, False: 102k]
  |  |  ------------------
  |  |   57|  3.04k|      return ::wabt::Result::Error; \
  |  |   58|  3.04k|    }                               \
  |  |   59|   105k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1874|   102k|    size_t subsection_end = state_.offset + subsection_size;
 1875|   102k|    ERROR_UNLESS(subsection_end <= read_end_,
  ------------------
  |  |   48|   102k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   102k|  do {                         \
  |  |  |  |   42|   102k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 2.13k, False: 100k]
  |  |  |  |  ------------------
  |  |  |  |   43|  2.13k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  2.13k|      return Result::Error;    \
  |  |  |  |   45|  2.13k|    }                          \
  |  |  |  |   46|   102k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1876|   100k|                 "invalid sub-section size: extends past end");
 1877|   100k|    ReadEndRestoreGuard guard(this);
 1878|   100k|    read_end_ = subsection_end;
 1879|       |
 1880|   100k|    NameSectionSubsection type = static_cast<NameSectionSubsection>(name_type);
 1881|   100k|    if (type <= NameSectionSubsection::Last) {
  ------------------
  |  Branch (1881:9): [True: 80.6k, False: 19.4k]
  ------------------
 1882|  80.6k|      CALLBACK(OnNameSubsection, i, type, subsection_size);
  ------------------
  |  |   61|  80.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  80.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  80.6k|  do {                         \
  |  |  |  |  |  |   42|  80.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 80.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  80.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  80.6k|               #member " callback failed")
  ------------------
 1883|  80.6k|    }
 1884|       |
 1885|   100k|    switch (type) {
 1886|  10.4k|      case NameSectionSubsection::Module:
  ------------------
  |  Branch (1886:7): [True: 10.4k, False: 89.5k]
  ------------------
 1887|  10.4k|        CALLBACK(OnModuleNameSubsection, i, name_type, subsection_size);
  ------------------
  |  |   61|  10.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  10.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.4k|  do {                         \
  |  |  |  |  |  |   42|  10.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  10.4k|               #member " callback failed")
  ------------------
 1888|  10.4k|        if (subsection_size) {
  ------------------
  |  Branch (1888:13): [True: 8.89k, False: 1.58k]
  ------------------
 1889|  8.89k|          std::string_view name;
 1890|  8.89k|          CHECK_RESULT(ReadStr(&name, "module name"));
  ------------------
  |  |   55|  8.89k|  do {                              \
  |  |   56|  8.89k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 765, False: 8.12k]
  |  |  ------------------
  |  |   57|    765|      return ::wabt::Result::Error; \
  |  |   58|    765|    }                               \
  |  |   59|  8.89k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1891|  8.12k|          CALLBACK(OnModuleName, name);
  ------------------
  |  |   61|  8.12k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  8.12k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  8.12k|  do {                         \
  |  |  |  |  |  |   42|  8.12k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 8.12k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  8.12k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  8.12k|               #member " callback failed")
  ------------------
 1892|  8.12k|        }
 1893|  9.71k|        break;
 1894|  19.2k|      case NameSectionSubsection::Function:
  ------------------
  |  Branch (1894:7): [True: 19.2k, False: 80.7k]
  ------------------
 1895|  19.2k|        CALLBACK(OnFunctionNameSubsection, i, name_type, subsection_size);
  ------------------
  |  |   61|  19.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  19.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  19.2k|  do {                         \
  |  |  |  |  |  |   42|  19.2k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 19.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  19.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  19.2k|               #member " callback failed")
  ------------------
 1896|  19.2k|        if (subsection_size) {
  ------------------
  |  Branch (1896:13): [True: 18.3k, False: 970]
  ------------------
 1897|  18.3k|          Index num_names;
 1898|  18.3k|          CHECK_RESULT(ReadCount(&num_names, "name count"));
  ------------------
  |  |   55|  18.3k|  do {                              \
  |  |   56|  18.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 255, False: 18.0k]
  |  |  ------------------
  |  |   57|    255|      return ::wabt::Result::Error; \
  |  |   58|    255|    }                               \
  |  |   59|  18.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1899|  18.0k|          CALLBACK(OnFunctionNamesCount, num_names);
  ------------------
  |  |   61|  18.0k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  18.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  18.0k|  do {                         \
  |  |  |  |  |  |   42|  18.0k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 18.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  18.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  18.0k|               #member " callback failed")
  ------------------
 1900|  18.0k|          Index last_function_index = kInvalidIndex;
 1901|       |
 1902|  47.9k|          for (Index j = 0; j < num_names; ++j) {
  ------------------
  |  Branch (1902:29): [True: 43.1k, False: 4.79k]
  ------------------
 1903|  43.1k|            Index function_index;
 1904|  43.1k|            std::string_view function_name;
 1905|       |
 1906|  43.1k|            CHECK_RESULT(ReadIndex(&function_index, "function index"));
  ------------------
  |  |   55|  43.1k|  do {                              \
  |  |   56|  43.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3.09k, False: 40.0k]
  |  |  ------------------
  |  |   57|  3.09k|      return ::wabt::Result::Error; \
  |  |   58|  3.09k|    }                               \
  |  |   59|  43.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1907|  40.0k|            ERROR_UNLESS(function_index != last_function_index,
  ------------------
  |  |   48|  40.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  40.0k|  do {                         \
  |  |  |  |   42|  40.0k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 5.94k, False: 34.1k]
  |  |  |  |  ------------------
  |  |  |  |   43|  5.94k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  5.94k|      return Result::Error;    \
  |  |  |  |   45|  5.94k|    }                          \
  |  |  |  |   46|  40.0k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1908|  34.1k|                         "duplicate function name: %u", function_index);
 1909|  34.1k|            ERROR_UNLESS(last_function_index == kInvalidIndex ||
  ------------------
  |  |   48|  34.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  34.1k|  do {                         \
  |  |  |  |   42|  84.3k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 17.9k, False: 16.1k]
  |  |  |  |  |  Branch (42:9): [True: 13.9k, False: 2.18k]
  |  |  |  |  ------------------
  |  |  |  |   43|  2.18k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  2.18k|      return Result::Error;    \
  |  |  |  |   45|  2.18k|    }                          \
  |  |  |  |   46|  34.1k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1910|  31.9k|                             function_index > last_function_index,
 1911|  31.9k|                         "function index out of order: %u", function_index);
 1912|  31.9k|            last_function_index = function_index;
 1913|  31.9k|            ERROR_UNLESS(function_index < NumTotalFuncs(),
  ------------------
  |  |   48|  31.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  31.9k|  do {                         \
  |  |  |  |   42|  31.9k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 780, False: 31.1k]
  |  |  |  |  ------------------
  |  |  |  |   43|    780|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    780|      return Result::Error;    \
  |  |  |  |   45|    780|    }                          \
  |  |  |  |   46|  31.9k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1914|  31.1k|                         "invalid function index: %" PRIindex, function_index);
 1915|  31.1k|            CHECK_RESULT(ReadStr(&function_name, "function name"));
  ------------------
  |  |   55|  31.1k|  do {                              \
  |  |   56|  31.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.26k, False: 29.8k]
  |  |  ------------------
  |  |   57|  1.26k|      return ::wabt::Result::Error; \
  |  |   58|  1.26k|    }                               \
  |  |   59|  31.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1916|  29.8k|            CALLBACK(OnFunctionName, function_index, function_name);
  ------------------
  |  |   61|  29.8k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  29.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  29.8k|  do {                         \
  |  |  |  |  |  |   42|  29.8k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 29.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  29.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  29.8k|               #member " callback failed")
  ------------------
 1917|  29.8k|          }
 1918|  18.0k|        }
 1919|  5.76k|        break;
 1920|  30.0k|      case NameSectionSubsection::Local:
  ------------------
  |  Branch (1920:7): [True: 30.0k, False: 70.0k]
  ------------------
 1921|  30.0k|        CALLBACK(OnLocalNameSubsection, i, name_type, subsection_size);
  ------------------
  |  |   61|  30.0k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  30.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  30.0k|  do {                         \
  |  |  |  |  |  |   42|  30.0k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 30.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  30.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  30.0k|               #member " callback failed")
  ------------------
 1922|  30.0k|        if (subsection_size) {
  ------------------
  |  Branch (1922:13): [True: 28.7k, False: 1.26k]
  ------------------
 1923|  28.7k|          Index num_funcs;
 1924|  28.7k|          CHECK_RESULT(ReadCount(&num_funcs, "function count"));
  ------------------
  |  |   55|  28.7k|  do {                              \
  |  |   56|  28.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3.22k, False: 25.5k]
  |  |  ------------------
  |  |   57|  3.22k|      return ::wabt::Result::Error; \
  |  |   58|  3.22k|    }                               \
  |  |   59|  28.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1925|  25.5k|          CALLBACK(OnLocalNameFunctionCount, num_funcs);
  ------------------
  |  |   61|  25.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  25.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  25.5k|  do {                         \
  |  |  |  |  |  |   42|  25.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 25.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  25.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  25.5k|               #member " callback failed")
  ------------------
 1926|  25.5k|          Index last_function_index = kInvalidIndex;
 1927|  53.5k|          for (Index j = 0; j < num_funcs; ++j) {
  ------------------
  |  Branch (1927:29): [True: 51.5k, False: 1.95k]
  ------------------
 1928|  51.5k|            Index function_index;
 1929|  51.5k|            CHECK_RESULT(ReadIndex(&function_index, "function index"));
  ------------------
  |  |   55|  51.5k|  do {                              \
  |  |   56|  51.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3.68k, False: 47.8k]
  |  |  ------------------
  |  |   57|  3.68k|      return ::wabt::Result::Error; \
  |  |   58|  3.68k|    }                               \
  |  |   59|  51.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1930|  47.8k|            ERROR_UNLESS(function_index < NumTotalFuncs(),
  ------------------
  |  |   48|  47.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  47.8k|  do {                         \
  |  |  |  |   42|  47.8k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 2.21k, False: 45.6k]
  |  |  |  |  ------------------
  |  |  |  |   43|  2.21k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  2.21k|      return Result::Error;    \
  |  |  |  |   45|  2.21k|    }                          \
  |  |  |  |   46|  47.8k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1931|  45.6k|                         "invalid function index: %u", function_index);
 1932|  45.6k|            ERROR_UNLESS(last_function_index == kInvalidIndex ||
  ------------------
  |  |   48|  45.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  45.6k|  do {                         \
  |  |  |  |   42|   115k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 21.8k, False: 23.8k]
  |  |  |  |  |  Branch (42:9): [True: 20.3k, False: 3.51k]
  |  |  |  |  ------------------
  |  |  |  |   43|  3.51k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  3.51k|      return Result::Error;    \
  |  |  |  |   45|  3.51k|    }                          \
  |  |  |  |   46|  45.6k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1933|  42.1k|                             function_index > last_function_index,
 1934|  42.1k|                         "locals function index out of order: %u",
 1935|  42.1k|                         function_index);
 1936|  42.1k|            last_function_index = function_index;
 1937|  42.1k|            Index num_locals;
 1938|  42.1k|            CHECK_RESULT(ReadCount(&num_locals, "local count"));
  ------------------
  |  |   55|  42.1k|  do {                              \
  |  |   56|  42.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7.05k, False: 35.1k]
  |  |  ------------------
  |  |   57|  7.05k|      return ::wabt::Result::Error; \
  |  |   58|  7.05k|    }                               \
  |  |   59|  42.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1939|  35.1k|            CALLBACK(OnLocalNameLocalCount, function_index, num_locals);
  ------------------
  |  |   61|  35.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  35.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  35.1k|  do {                         \
  |  |  |  |  |  |   42|  35.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 35.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  35.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  35.1k|               #member " callback failed")
  ------------------
 1940|  35.1k|            Index last_local_index = kInvalidIndex;
 1941|  65.4k|            for (Index k = 0; k < num_locals; ++k) {
  ------------------
  |  Branch (1941:31): [True: 37.4k, False: 27.9k]
  ------------------
 1942|  37.4k|              Index local_index;
 1943|  37.4k|              std::string_view local_name;
 1944|       |
 1945|  37.4k|              CHECK_RESULT(ReadIndex(&local_index, "named index"));
  ------------------
  |  |   55|  37.4k|  do {                              \
  |  |   56|  37.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5.65k, False: 31.8k]
  |  |  ------------------
  |  |   57|  5.65k|      return ::wabt::Result::Error; \
  |  |   58|  5.65k|    }                               \
  |  |   59|  37.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1946|  31.8k|              ERROR_UNLESS(local_index != last_local_index,
  ------------------
  |  |   48|  31.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  31.8k|  do {                         \
  |  |  |  |   42|  31.8k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 55, False: 31.7k]
  |  |  |  |  ------------------
  |  |  |  |   43|     55|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     55|      return Result::Error;    \
  |  |  |  |   45|     55|    }                          \
  |  |  |  |   46|  31.8k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1947|  31.7k|                           "duplicate local index: %u", local_index);
 1948|  31.7k|              ERROR_UNLESS(last_local_index == kInvalidIndex ||
  ------------------
  |  |   48|  31.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  31.7k|  do {                         \
  |  |  |  |   42|  80.4k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 14.8k, False: 16.9k]
  |  |  |  |  |  Branch (42:9): [True: 15.7k, False: 1.13k]
  |  |  |  |  ------------------
  |  |  |  |   43|  1.13k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  1.13k|      return Result::Error;    \
  |  |  |  |   45|  1.13k|    }                          \
  |  |  |  |   46|  31.7k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1949|  30.6k|                               local_index > last_local_index,
 1950|  30.6k|                           "local index out of order: %u", local_index);
 1951|  30.6k|              last_local_index = local_index;
 1952|  30.6k|              CHECK_RESULT(ReadStr(&local_name, "name"));
  ------------------
  |  |   55|  30.6k|  do {                              \
  |  |   56|  30.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 310, False: 30.3k]
  |  |  ------------------
  |  |   57|    310|      return ::wabt::Result::Error; \
  |  |   58|    310|    }                               \
  |  |   59|  30.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1953|  30.3k|              CALLBACK(OnLocalName, function_index, local_index, local_name);
  ------------------
  |  |   61|  30.3k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  30.3k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  30.3k|  do {                         \
  |  |  |  |  |  |   42|  30.3k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 30.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  30.3k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  30.3k|               #member " callback failed")
  ------------------
 1954|  30.3k|            }
 1955|  35.1k|          }
 1956|  25.5k|        }
 1957|  3.21k|        break;
 1958|  3.21k|      case NameSectionSubsection::Label:
  ------------------
  |  Branch (1958:7): [True: 915, False: 99.1k]
  ------------------
 1959|       |        // TODO(sbc): Implement label names. These are slightly more complicated
 1960|       |        // since they refer to offsets in the code section / instruction stream.
 1961|    915|        state_.offset = subsection_end;
 1962|    915|        break;
 1963|  5.28k|      case NameSectionSubsection::Type:
  ------------------
  |  Branch (1963:7): [True: 5.28k, False: 94.7k]
  ------------------
 1964|  9.84k|      case NameSectionSubsection::Table:
  ------------------
  |  Branch (1964:7): [True: 4.56k, False: 95.4k]
  ------------------
 1965|  10.1k|      case NameSectionSubsection::Memory:
  ------------------
  |  Branch (1965:7): [True: 300, False: 99.7k]
  ------------------
 1966|  10.5k|      case NameSectionSubsection::Global:
  ------------------
  |  Branch (1966:7): [True: 365, False: 99.6k]
  ------------------
 1967|  11.5k|      case NameSectionSubsection::ElemSegment:
  ------------------
  |  Branch (1967:7): [True: 1.03k, False: 99.0k]
  ------------------
 1968|  19.6k|      case NameSectionSubsection::DataSegment:
  ------------------
  |  Branch (1968:7): [True: 8.12k, False: 91.9k]
  ------------------
 1969|  19.8k|      case NameSectionSubsection::Tag:
  ------------------
  |  Branch (1969:7): [True: 185, False: 99.8k]
  ------------------
 1970|  19.8k|        if (subsection_size) {
  ------------------
  |  Branch (1970:13): [True: 16.2k, False: 3.59k]
  ------------------
 1971|  16.2k|          Index num_names;
 1972|  16.2k|          CHECK_RESULT(ReadCount(&num_names, "name count"));
  ------------------
  |  |   55|  16.2k|  do {                              \
  |  |   56|  16.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4.82k, False: 11.4k]
  |  |  ------------------
  |  |   57|  4.82k|      return ::wabt::Result::Error; \
  |  |   58|  4.82k|    }                               \
  |  |   59|  16.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1973|  11.4k|          CALLBACK(OnNameCount, num_names);
  ------------------
  |  |   61|  11.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  11.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  11.4k|  do {                         \
  |  |  |  |  |  |   42|  11.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 11.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  11.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  11.4k|               #member " callback failed")
  ------------------
 1974|  38.3k|          for (Index j = 0; j < num_names; ++j) {
  ------------------
  |  Branch (1974:29): [True: 35.8k, False: 2.48k]
  ------------------
 1975|  35.8k|            Index index;
 1976|  35.8k|            std::string_view name;
 1977|       |
 1978|  35.8k|            CHECK_RESULT(ReadIndex(&index, "index"));
  ------------------
  |  |   55|  35.8k|  do {                              \
  |  |   56|  35.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.66k, False: 34.1k]
  |  |  ------------------
  |  |   57|  1.66k|      return ::wabt::Result::Error; \
  |  |   58|  1.66k|    }                               \
  |  |   59|  35.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1979|  34.1k|            CHECK_RESULT(ReadStr(&name, "name"));
  ------------------
  |  |   55|  34.1k|  do {                              \
  |  |   56|  34.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7.29k, False: 26.8k]
  |  |  ------------------
  |  |   57|  7.29k|      return ::wabt::Result::Error; \
  |  |   58|  7.29k|    }                               \
  |  |   59|  34.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1980|  26.8k|            CALLBACK(OnNameEntry, type, index, name);
  ------------------
  |  |   61|  26.8k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  26.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  26.8k|  do {                         \
  |  |  |  |  |  |   42|  26.8k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 26.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  26.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  26.8k|               #member " callback failed")
  ------------------
 1981|  26.8k|          }
 1982|  11.4k|        }
 1983|  6.07k|        state_.offset = subsection_end;
 1984|  6.07k|        break;
 1985|  19.4k|      default:
  ------------------
  |  Branch (1985:7): [True: 19.4k, False: 80.5k]
  ------------------
 1986|       |        // Unknown subsection, skip it.
 1987|  19.4k|        state_.offset = subsection_end;
 1988|  19.4k|        break;
 1989|   100k|    }
 1990|  45.1k|    ++i;
 1991|  45.1k|    ERROR_UNLESS(state_.offset == subsection_end,
  ------------------
  |  |   48|  45.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  45.1k|  do {                         \
  |  |  |  |   42|  45.1k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 6.67k, False: 38.5k]
  |  |  |  |  ------------------
  |  |  |  |   43|  6.67k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  6.67k|      return Result::Error;    \
  |  |  |  |   45|  6.67k|    }                          \
  |  |  |  |   46|  45.1k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1992|  45.1k|                 "unfinished sub-section (expected end: 0x%" PRIzx ")",
 1993|  45.1k|                 subsection_end);
 1994|  45.1k|  }
 1995|  7.28k|  CALLBACK0(EndNamesSection);
  ------------------
  |  |   58|  7.28k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  7.28k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.28k|  do {                         \
  |  |  |  |  |  |   42|  7.28k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.28k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.28k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1996|  7.28k|  return Result::Ok;
 1997|  7.28k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadCountEPjPKc:
  495|   712k|Result BinaryReader::ReadCount(Index* count, const char* desc) {
  496|   712k|  CHECK_RESULT(ReadIndex(count, desc));
  ------------------
  |  |   55|   712k|  do {                              \
  |  |   56|   712k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11.1k, False: 701k]
  |  |  ------------------
  |  |   57|  11.1k|      return ::wabt::Result::Error; \
  |  |   58|  11.1k|    }                               \
  |  |   59|   712k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  497|       |
  498|       |  // This check assumes that each item follows in this section, and takes at
  499|       |  // least 1 byte. It's possible that this check passes but reading fails
  500|       |  // later. It is still useful to check here, though, because it early-outs
  501|       |  // when an erroneous large count is used, before allocating memory for it.
  502|   701k|  size_t section_remaining = read_end_ - state_.offset;
  503|   701k|  if (*count > section_remaining) {
  ------------------
  |  Branch (503:7): [True: 22.7k, False: 678k]
  ------------------
  504|  22.7k|    PrintError("invalid %s %" PRIindex ", only %" PRIzd
  505|  22.7k|               " bytes left in section",
  506|  22.7k|               desc, *count, section_remaining);
  507|  22.7k|    return Result::Error;
  508|  22.7k|  }
  509|   678k|  return Result::Ok;
  510|   701k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadIndexEPjPKc:
  418|  5.59M|Result BinaryReader::ReadIndex(Index* index, const char* desc) {
  419|  5.59M|  uint32_t value;
  420|  5.59M|  CHECK_RESULT(ReadU32Leb128(&value, desc));
  ------------------
  |  |   55|  5.59M|  do {                              \
  |  |   56|  5.59M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 30.5k, False: 5.56M]
  |  |  ------------------
  |  |   57|  30.5k|      return ::wabt::Result::Error; \
  |  |   58|  30.5k|    }                               \
  |  |   59|  5.59M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  421|  5.56M|  *index = value;
  422|  5.56M|  return Result::Ok;
  423|  5.59M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13NumTotalFuncsEv:
  563|   300k|Index BinaryReader::NumTotalFuncs() {
  564|   300k|  return num_func_imports_ + num_function_signatures_;
  565|   300k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader18ReadDylink0SectionEm:
 2053|  75.8k|Result BinaryReader::ReadDylink0Section(Offset section_size) {
 2054|  75.8k|  CALLBACK(BeginDylinkSection, section_size);
  ------------------
  |  |   61|  75.8k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  75.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  75.8k|  do {                         \
  |  |  |  |  |  |   42|  75.8k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 75.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  75.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  75.8k|               #member " callback failed")
  ------------------
 2055|       |
 2056|   363k|  while (state_.offset < read_end_) {
  ------------------
  |  Branch (2056:10): [True: 361k, False: 1.65k]
  ------------------
 2057|   361k|    uint32_t dylink_type;
 2058|   361k|    Offset subsection_size;
 2059|   361k|    CHECK_RESULT(ReadU32Leb128(&dylink_type, "type"));
  ------------------
  |  |   55|   361k|  do {                              \
  |  |   56|   361k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5.82k, False: 355k]
  |  |  ------------------
  |  |   57|  5.82k|      return ::wabt::Result::Error; \
  |  |   58|  5.82k|    }                               \
  |  |   59|   361k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2060|   355k|    CHECK_RESULT(ReadOffset(&subsection_size, "subsection size"));
  ------------------
  |  |   55|   355k|  do {                              \
  |  |   56|   355k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11.7k, False: 344k]
  |  |  ------------------
  |  |   57|  11.7k|      return ::wabt::Result::Error; \
  |  |   58|  11.7k|    }                               \
  |  |   59|   355k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2061|   344k|    size_t subsection_end = state_.offset + subsection_size;
 2062|   344k|    ERROR_UNLESS(subsection_end <= read_end_,
  ------------------
  |  |   48|   344k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   344k|  do {                         \
  |  |  |  |   42|   344k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 3.20k, False: 340k]
  |  |  |  |  ------------------
  |  |  |  |   43|  3.20k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  3.20k|      return Result::Error;    \
  |  |  |  |   45|  3.20k|    }                          \
  |  |  |  |   46|   344k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2063|   340k|                 "invalid sub-section size: extends past end");
 2064|   340k|    ReadEndRestoreGuard guard(this);
 2065|   340k|    read_end_ = subsection_end;
 2066|       |
 2067|   340k|    uint32_t count;
 2068|   340k|    switch (static_cast<DylinkEntryType>(dylink_type)) {
 2069|  17.7k|      case DylinkEntryType::MemInfo: {
  ------------------
  |  Branch (2069:7): [True: 17.7k, False: 323k]
  ------------------
 2070|  17.7k|        uint32_t mem_size;
 2071|  17.7k|        uint32_t mem_align;
 2072|  17.7k|        uint32_t table_size;
 2073|  17.7k|        uint32_t table_align;
 2074|       |
 2075|  17.7k|        CHECK_RESULT(ReadU32Leb128(&mem_size, "mem_size"));
  ------------------
  |  |   55|  17.7k|  do {                              \
  |  |   56|  17.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 210, False: 17.4k]
  |  |  ------------------
  |  |   57|    210|      return ::wabt::Result::Error; \
  |  |   58|    210|    }                               \
  |  |   59|  17.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2076|  17.4k|        CHECK_RESULT(ReadU32Leb128(&mem_align, "mem_align"));
  ------------------
  |  |   55|  17.4k|  do {                              \
  |  |   56|  17.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5.88k, False: 11.6k]
  |  |  ------------------
  |  |   57|  5.88k|      return ::wabt::Result::Error; \
  |  |   58|  5.88k|    }                               \
  |  |   59|  17.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2077|  11.6k|        CHECK_RESULT(ReadU32Leb128(&table_size, "table_size"));
  ------------------
  |  |   55|  11.6k|  do {                              \
  |  |   56|  11.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 77, False: 11.5k]
  |  |  ------------------
  |  |   57|     77|      return ::wabt::Result::Error; \
  |  |   58|     77|    }                               \
  |  |   59|  11.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2078|  11.5k|        CHECK_RESULT(ReadU32Leb128(&table_align, "table_align"));
  ------------------
  |  |   55|  11.5k|  do {                              \
  |  |   56|  11.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 342, False: 11.1k]
  |  |  ------------------
  |  |   57|    342|      return ::wabt::Result::Error; \
  |  |   58|    342|    }                               \
  |  |   59|  11.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2079|  11.1k|        CALLBACK(OnDylinkInfo, mem_size, mem_align, table_size, table_align);
  ------------------
  |  |   61|  11.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  11.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  11.1k|  do {                         \
  |  |  |  |  |  |   42|  11.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  11.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  11.1k|               #member " callback failed")
  ------------------
 2080|  11.1k|        break;
 2081|  11.1k|      }
 2082|  11.1k|      case DylinkEntryType::Needed:
  ------------------
  |  Branch (2082:7): [True: 3.27k, False: 337k]
  ------------------
 2083|  3.27k|        CHECK_RESULT(ReadU32Leb128(&count, "needed_dynlibs"));
  ------------------
  |  |   55|  3.27k|  do {                              \
  |  |   56|  3.27k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 197, False: 3.07k]
  |  |  ------------------
  |  |   57|    197|      return ::wabt::Result::Error; \
  |  |   58|    197|    }                               \
  |  |   59|  3.27k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2084|  3.07k|        CALLBACK(OnDylinkNeededCount, count);
  ------------------
  |  |   61|  3.07k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.07k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.07k|  do {                         \
  |  |  |  |  |  |   42|  3.07k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.07k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.07k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.07k|               #member " callback failed")
  ------------------
 2085|  6.69k|        while (count--) {
  ------------------
  |  Branch (2085:16): [True: 4.10k, False: 2.58k]
  ------------------
 2086|  4.10k|          std::string_view so_name;
 2087|  4.10k|          CHECK_RESULT(ReadStr(&so_name, "dylib so_name"));
  ------------------
  |  |   55|  4.10k|  do {                              \
  |  |   56|  4.10k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 492, False: 3.61k]
  |  |  ------------------
  |  |   57|    492|      return ::wabt::Result::Error; \
  |  |   58|    492|    }                               \
  |  |   59|  4.10k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2088|  3.61k|          CALLBACK(OnDylinkNeeded, so_name);
  ------------------
  |  |   61|  3.61k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.61k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.61k|  do {                         \
  |  |  |  |  |  |   42|  3.61k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.61k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.61k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.61k|               #member " callback failed")
  ------------------
 2089|  3.61k|        }
 2090|  2.58k|        break;
 2091|  9.66k|      case DylinkEntryType::ImportInfo:
  ------------------
  |  Branch (2091:7): [True: 9.66k, False: 331k]
  ------------------
 2092|  9.66k|        CHECK_RESULT(ReadU32Leb128(&count, "count"));
  ------------------
  |  |   55|  9.66k|  do {                              \
  |  |   56|  9.66k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 55, False: 9.60k]
  |  |  ------------------
  |  |   57|     55|      return ::wabt::Result::Error; \
  |  |   58|     55|    }                               \
  |  |   59|  9.66k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2093|  9.60k|        CALLBACK(OnDylinkImportCount, count);
  ------------------
  |  |   61|  9.60k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  9.60k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  9.60k|  do {                         \
  |  |  |  |  |  |   42|  9.60k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 9.60k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  9.60k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  9.60k|               #member " callback failed")
  ------------------
 2094|  15.6k|        for (Index i = 0; i < count; ++i) {
  ------------------
  |  Branch (2094:27): [True: 8.79k, False: 6.80k]
  ------------------
 2095|  8.79k|          uint32_t flags = 0;
 2096|  8.79k|          std::string_view module;
 2097|  8.79k|          std::string_view field;
 2098|  8.79k|          CHECK_RESULT(ReadStr(&module, "module"));
  ------------------
  |  |   55|  8.79k|  do {                              \
  |  |   56|  8.79k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 932, False: 7.86k]
  |  |  ------------------
  |  |   57|    932|      return ::wabt::Result::Error; \
  |  |   58|    932|    }                               \
  |  |   59|  8.79k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2099|  7.86k|          CHECK_RESULT(ReadStr(&field, "field"));
  ------------------
  |  |   55|  7.86k|  do {                              \
  |  |   56|  7.86k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 260, False: 7.60k]
  |  |  ------------------
  |  |   57|    260|      return ::wabt::Result::Error; \
  |  |   58|    260|    }                               \
  |  |   59|  7.86k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2100|  7.60k|          CHECK_RESULT(ReadU32Leb128(&flags, "flags"));
  ------------------
  |  |   55|  7.60k|  do {                              \
  |  |   56|  7.60k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 188, False: 7.41k]
  |  |  ------------------
  |  |   57|    188|      return ::wabt::Result::Error; \
  |  |   58|    188|    }                               \
  |  |   59|  7.60k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2101|  7.41k|          CALLBACK(OnDylinkImport, module, field, flags);
  ------------------
  |  |   61|  7.41k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  7.41k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.41k|  do {                         \
  |  |  |  |  |  |   42|  7.41k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 1.41k, False: 5.99k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|  1.41k|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|  1.41k|      return Result::Error;    \
  |  |  |  |  |  |   45|  1.41k|    }                          \
  |  |  |  |  |  |   46|  7.41k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  7.41k|               #member " callback failed")
  ------------------
 2102|  7.41k|        }
 2103|  6.80k|        break;
 2104|  33.8k|      case DylinkEntryType::ExportInfo:
  ------------------
  |  Branch (2104:7): [True: 33.8k, False: 307k]
  ------------------
 2105|  33.8k|        CHECK_RESULT(ReadU32Leb128(&count, "count"));
  ------------------
  |  |   55|  33.8k|  do {                              \
  |  |   56|  33.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 172, False: 33.7k]
  |  |  ------------------
  |  |   57|    172|      return ::wabt::Result::Error; \
  |  |   58|    172|    }                               \
  |  |   59|  33.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2106|  33.7k|        CALLBACK(OnDylinkExportCount, count);
  ------------------
  |  |   61|  33.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  33.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  33.7k|  do {                         \
  |  |  |  |  |  |   42|  33.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 33.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  33.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  33.7k|               #member " callback failed")
  ------------------
 2107|  60.1k|        for (Index i = 0; i < count; ++i) {
  ------------------
  |  Branch (2107:27): [True: 55.4k, False: 4.72k]
  ------------------
 2108|  55.4k|          uint32_t flags = 0;
 2109|  55.4k|          std::string_view name;
 2110|  55.4k|          CHECK_RESULT(ReadStr(&name, "name"));
  ------------------
  |  |   55|  55.4k|  do {                              \
  |  |   56|  55.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10.3k, False: 45.1k]
  |  |  ------------------
  |  |   57|  10.3k|      return ::wabt::Result::Error; \
  |  |   58|  10.3k|    }                               \
  |  |   59|  55.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2111|  45.1k|          CHECK_RESULT(ReadU32Leb128(&flags, "flags"));
  ------------------
  |  |   55|  45.1k|  do {                              \
  |  |   56|  45.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.89k, False: 43.2k]
  |  |  ------------------
  |  |   57|  1.89k|      return ::wabt::Result::Error; \
  |  |   58|  1.89k|    }                               \
  |  |   59|  45.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2112|  43.2k|          CALLBACK(OnDylinkExport, name, flags);
  ------------------
  |  |   61|  43.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  43.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  43.2k|  do {                         \
  |  |  |  |  |  |   42|  43.2k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 16.7k, False: 26.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|  16.7k|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|  16.7k|      return Result::Error;    \
  |  |  |  |  |  |   45|  16.7k|    }                          \
  |  |  |  |  |  |   46|  43.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  43.2k|               #member " callback failed")
  ------------------
 2113|  43.2k|        }
 2114|  4.72k|        break;
 2115|   276k|      default:
  ------------------
  |  Branch (2115:7): [True: 276k, False: 64.5k]
  ------------------
 2116|       |        // Unknown subsection, skip it.
 2117|   276k|        state_.offset = subsection_end;
 2118|   276k|        break;
 2119|   340k|    }
 2120|   301k|    ERROR_UNLESS(state_.offset == subsection_end,
  ------------------
  |  |   48|   301k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   301k|  do {                         \
  |  |  |  |   42|   301k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 14.1k, False: 287k]
  |  |  |  |  ------------------
  |  |  |  |   43|  14.1k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  14.1k|      return Result::Error;    \
  |  |  |  |   45|  14.1k|    }                          \
  |  |  |  |   46|   301k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2121|   301k|                 "unfinished sub-section (expected end: 0x%" PRIzx ")",
 2122|   301k|                 subsection_end);
 2123|   301k|  }
 2124|       |
 2125|  1.65k|  CALLBACK0(EndDylinkSection);
  ------------------
  |  |   58|  1.65k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  1.65k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.65k|  do {                         \
  |  |  |  |  |  |   42|  1.65k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.65k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.65k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2126|  1.65k|  return Result::Ok;
 2127|  1.65k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadDylinkSectionEm:
 2129|  14.7k|Result BinaryReader::ReadDylinkSection(Offset section_size) {
 2130|  14.7k|  CALLBACK(BeginDylinkSection, section_size);
  ------------------
  |  |   61|  14.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  14.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  14.7k|  do {                         \
  |  |  |  |  |  |   42|  14.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 14.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  14.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  14.7k|               #member " callback failed")
  ------------------
 2131|  14.7k|  uint32_t mem_size;
 2132|  14.7k|  uint32_t mem_align;
 2133|  14.7k|  uint32_t table_size;
 2134|  14.7k|  uint32_t table_align;
 2135|       |
 2136|  14.7k|  CHECK_RESULT(ReadU32Leb128(&mem_size, "mem_size"));
  ------------------
  |  |   55|  14.7k|  do {                              \
  |  |   56|  14.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 200, False: 14.5k]
  |  |  ------------------
  |  |   57|    200|      return ::wabt::Result::Error; \
  |  |   58|    200|    }                               \
  |  |   59|  14.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2137|  14.5k|  CHECK_RESULT(ReadU32Leb128(&mem_align, "mem_align"));
  ------------------
  |  |   55|  14.5k|  do {                              \
  |  |   56|  14.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.57k, False: 13.0k]
  |  |  ------------------
  |  |   57|  1.57k|      return ::wabt::Result::Error; \
  |  |   58|  1.57k|    }                               \
  |  |   59|  14.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2138|  13.0k|  CHECK_RESULT(ReadU32Leb128(&table_size, "table_size"));
  ------------------
  |  |   55|  13.0k|  do {                              \
  |  |   56|  13.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.57k, False: 10.4k]
  |  |  ------------------
  |  |   57|  2.57k|      return ::wabt::Result::Error; \
  |  |   58|  2.57k|    }                               \
  |  |   59|  13.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2139|  10.4k|  CHECK_RESULT(ReadU32Leb128(&table_align, "table_align"));
  ------------------
  |  |   55|  10.4k|  do {                              \
  |  |   56|  10.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 335, False: 10.1k]
  |  |  ------------------
  |  |   57|    335|      return ::wabt::Result::Error; \
  |  |   58|    335|    }                               \
  |  |   59|  10.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2140|  10.1k|  CALLBACK(OnDylinkInfo, mem_size, mem_align, table_size, table_align);
  ------------------
  |  |   61|  10.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  10.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.1k|  do {                         \
  |  |  |  |  |  |   42|  10.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  10.1k|               #member " callback failed")
  ------------------
 2141|       |
 2142|  10.1k|  uint32_t count;
 2143|  10.1k|  CHECK_RESULT(ReadU32Leb128(&count, "needed_dynlibs"));
  ------------------
  |  |   55|  10.1k|  do {                              \
  |  |   56|  10.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 900, False: 9.20k]
  |  |  ------------------
  |  |   57|    900|      return ::wabt::Result::Error; \
  |  |   58|    900|    }                               \
  |  |   59|  10.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2144|  9.20k|  CALLBACK(OnDylinkNeededCount, count);
  ------------------
  |  |   61|  9.20k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  9.20k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  9.20k|  do {                         \
  |  |  |  |  |  |   42|  9.20k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 9.20k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  9.20k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  9.20k|               #member " callback failed")
  ------------------
 2145|  13.9k|  while (count--) {
  ------------------
  |  Branch (2145:10): [True: 7.42k, False: 6.51k]
  ------------------
 2146|  7.42k|    std::string_view so_name;
 2147|  7.42k|    CHECK_RESULT(ReadStr(&so_name, "dylib so_name"));
  ------------------
  |  |   55|  7.42k|  do {                              \
  |  |   56|  7.42k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.69k, False: 4.73k]
  |  |  ------------------
  |  |   57|  2.69k|      return ::wabt::Result::Error; \
  |  |   58|  2.69k|    }                               \
  |  |   59|  7.42k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2148|  4.73k|    CALLBACK(OnDylinkNeeded, so_name);
  ------------------
  |  |   61|  4.73k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.73k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.73k|  do {                         \
  |  |  |  |  |  |   42|  4.73k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.73k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.73k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.73k|               #member " callback failed")
  ------------------
 2149|  4.73k|  }
 2150|       |
 2151|  6.51k|  CALLBACK0(EndDylinkSection);
  ------------------
  |  |   58|  6.51k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  6.51k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.51k|  do {                         \
  |  |  |  |  |  |   42|  6.51k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.51k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.51k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2152|  6.51k|  return Result::Ok;
 2153|  6.51k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadRelocSectionEm:
 1999|  39.6k|Result BinaryReader::ReadRelocSection(Offset section_size) {
 2000|  39.6k|  CALLBACK(BeginRelocSection, section_size);
  ------------------
  |  |   61|  39.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  39.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  39.6k|  do {                         \
  |  |  |  |  |  |   42|  39.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 39.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  39.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  39.6k|               #member " callback failed")
  ------------------
 2001|  39.6k|  uint32_t section_index;
 2002|  39.6k|  CHECK_RESULT(ReadU32Leb128(&section_index, "section index"));
  ------------------
  |  |   55|  39.6k|  do {                              \
  |  |   56|  39.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 250, False: 39.3k]
  |  |  ------------------
  |  |   57|    250|      return ::wabt::Result::Error; \
  |  |   58|    250|    }                               \
  |  |   59|  39.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2003|  39.3k|  Index num_relocs;
 2004|  39.3k|  CHECK_RESULT(ReadCount(&num_relocs, "relocation count"));
  ------------------
  |  |   55|  39.3k|  do {                              \
  |  |   56|  39.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.44k, False: 37.9k]
  |  |  ------------------
  |  |   57|  1.44k|      return ::wabt::Result::Error; \
  |  |   58|  1.44k|    }                               \
  |  |   59|  39.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2005|  37.9k|  CALLBACK(OnRelocCount, num_relocs, section_index);
  ------------------
  |  |   61|  37.9k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  37.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  37.9k|  do {                         \
  |  |  |  |  |  |   42|  37.9k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 3.11k, False: 34.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|  3.11k|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|  3.11k|      return Result::Error;    \
  |  |  |  |  |  |   45|  3.11k|    }                          \
  |  |  |  |  |  |   46|  37.9k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  37.9k|               #member " callback failed")
  ------------------
 2006|   142k|  for (Index i = 0; i < num_relocs; ++i) {
  ------------------
  |  Branch (2006:21): [True: 134k, False: 8.30k]
  ------------------
 2007|   134k|    Offset offset;
 2008|   134k|    Index index;
 2009|   134k|    uint32_t reloc_type, addend = 0;
 2010|   134k|    CHECK_RESULT(ReadU32Leb128(&reloc_type, "relocation type"));
  ------------------
  |  |   55|   134k|  do {                              \
  |  |   56|   134k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 557, False: 133k]
  |  |  ------------------
  |  |   57|    557|      return ::wabt::Result::Error; \
  |  |   58|    557|    }                               \
  |  |   59|   134k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2011|   133k|    CHECK_RESULT(ReadOffset(&offset, "offset"));
  ------------------
  |  |   55|   133k|  do {                              \
  |  |   56|   133k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7.39k, False: 126k]
  |  |  ------------------
  |  |   57|  7.39k|      return ::wabt::Result::Error; \
  |  |   58|  7.39k|    }                               \
  |  |   59|   133k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2012|   126k|    CHECK_RESULT(ReadIndex(&index, "index"));
  ------------------
  |  |   55|   126k|  do {                              \
  |  |   56|   126k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 829, False: 125k]
  |  |  ------------------
  |  |   57|    829|      return ::wabt::Result::Error; \
  |  |   58|    829|    }                               \
  |  |   59|   126k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2013|   125k|    RelocType type = static_cast<RelocType>(reloc_type);
 2014|   125k|    switch (type) {
 2015|    276|      case RelocType::MemoryAddressLEB:
  ------------------
  |  Branch (2015:7): [True: 276, False: 125k]
  ------------------
 2016|  28.6k|      case RelocType::MemoryAddressLEB64:
  ------------------
  |  Branch (2016:7): [True: 28.4k, False: 97.3k]
  ------------------
 2017|  30.6k|      case RelocType::MemoryAddressSLEB:
  ------------------
  |  Branch (2017:7): [True: 1.99k, False: 123k]
  ------------------
 2018|  30.7k|      case RelocType::MemoryAddressSLEB64:
  ------------------
  |  Branch (2018:7): [True: 89, False: 125k]
  ------------------
 2019|  30.9k|      case RelocType::MemoryAddressRelSLEB:
  ------------------
  |  Branch (2019:7): [True: 163, False: 125k]
  ------------------
 2020|  31.6k|      case RelocType::MemoryAddressRelSLEB64:
  ------------------
  |  Branch (2020:7): [True: 705, False: 125k]
  ------------------
 2021|  34.4k|      case RelocType::MemoryAddressI32:
  ------------------
  |  Branch (2021:7): [True: 2.77k, False: 122k]
  ------------------
 2022|  35.9k|      case RelocType::MemoryAddressI64:
  ------------------
  |  Branch (2022:7): [True: 1.52k, False: 124k]
  ------------------
 2023|  36.8k|      case RelocType::FunctionOffsetI32:
  ------------------
  |  Branch (2023:7): [True: 877, False: 124k]
  ------------------
 2024|  38.2k|      case RelocType::SectionOffsetI32:
  ------------------
  |  Branch (2024:7): [True: 1.44k, False: 124k]
  ------------------
 2025|  39.9k|      case RelocType::MemoryAddressTLSSLEB:
  ------------------
  |  Branch (2025:7): [True: 1.63k, False: 124k]
  ------------------
 2026|  40.0k|      case RelocType::MemoryAddressTLSI32:
  ------------------
  |  Branch (2026:7): [True: 102, False: 125k]
  ------------------
 2027|  40.0k|        CHECK_RESULT(ReadS32Leb128(&addend, "addend"));
  ------------------
  |  |   55|  40.0k|  do {                              \
  |  |   56|  40.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 14.8k, False: 25.1k]
  |  |  ------------------
  |  |   57|  14.8k|      return ::wabt::Result::Error; \
  |  |   58|  14.8k|    }                               \
  |  |   59|  40.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2028|  25.1k|        break;
 2029|       |
 2030|  38.1k|      case RelocType::FuncIndexLEB:
  ------------------
  |  Branch (2030:7): [True: 38.1k, False: 87.6k]
  ------------------
 2031|  43.8k|      case RelocType::TableIndexSLEB:
  ------------------
  |  Branch (2031:7): [True: 5.69k, False: 120k]
  ------------------
 2032|  50.6k|      case RelocType::TableIndexSLEB64:
  ------------------
  |  Branch (2032:7): [True: 6.84k, False: 118k]
  ------------------
 2033|  51.8k|      case RelocType::TableIndexI32:
  ------------------
  |  Branch (2033:7): [True: 1.14k, False: 124k]
  ------------------
 2034|  72.6k|      case RelocType::TableIndexI64:
  ------------------
  |  Branch (2034:7): [True: 20.8k, False: 104k]
  ------------------
 2035|  79.1k|      case RelocType::TypeIndexLEB:
  ------------------
  |  Branch (2035:7): [True: 6.48k, False: 119k]
  ------------------
 2036|  80.4k|      case RelocType::GlobalIndexLEB:
  ------------------
  |  Branch (2036:7): [True: 1.32k, False: 124k]
  ------------------
 2037|  80.9k|      case RelocType::GlobalIndexI32:
  ------------------
  |  Branch (2037:7): [True: 541, False: 125k]
  ------------------
 2038|  81.1k|      case RelocType::TagIndexLEB:
  ------------------
  |  Branch (2038:7): [True: 182, False: 125k]
  ------------------
 2039|  82.8k|      case RelocType::TableIndexRelSLEB:
  ------------------
  |  Branch (2039:7): [True: 1.68k, False: 124k]
  ------------------
 2040|  82.9k|      case RelocType::TableNumberLEB:
  ------------------
  |  Branch (2040:7): [True: 61, False: 125k]
  ------------------
 2041|  82.9k|        break;
 2042|       |
 2043|  2.83k|      default:
  ------------------
  |  Branch (2043:7): [True: 2.83k, False: 122k]
  ------------------
 2044|  2.83k|        PrintError("unknown reloc type: %s", GetRelocTypeName(type));
 2045|  2.83k|        return Result::Error;
 2046|   125k|    }
 2047|   108k|    CALLBACK(OnReloc, type, offset, index, addend);
  ------------------
  |  |   61|   108k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   108k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   108k|  do {                         \
  |  |  |  |  |  |   42|   108k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 108k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   108k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   108k|               #member " callback failed")
  ------------------
 2048|   108k|  }
 2049|  8.30k|  CALLBACK0(EndRelocSection);
  ------------------
  |  |   58|  8.30k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  8.30k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  8.30k|  do {                         \
  |  |  |  |  |  |   42|  8.30k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 8.30k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  8.30k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2050|  8.30k|  return Result::Ok;
 2051|  8.30k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadS32Leb128EPjPKc:
  332|  4.97M|Result BinaryReader::ReadS32Leb128(uint32_t* out_value, const char* desc) {
  333|  4.97M|  const uint8_t* p = state_.data + state_.offset;
  334|  4.97M|  const uint8_t* end = state_.data + read_end_;
  335|  4.97M|  size_t bytes_read = wabt::ReadS32Leb128(p, end, out_value);
  336|  4.97M|  ERROR_UNLESS(bytes_read > 0, "unable to read i32 leb128: %s", desc);
  ------------------
  |  |   48|  4.97M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  4.97M|  do {                         \
  |  |  |  |   42|  4.97M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 15.8k, False: 4.95M]
  |  |  |  |  ------------------
  |  |  |  |   43|  15.8k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  15.8k|      return Result::Error;    \
  |  |  |  |   45|  15.8k|    }                          \
  |  |  |  |   46|  4.97M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  337|  4.95M|  state_.offset += bytes_read;
  338|  4.95M|  return Result::Ok;
  339|  4.97M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader26ReadTargetFeaturesSectionsEm:
 2155|  61.6k|Result BinaryReader::ReadTargetFeaturesSections(Offset section_size) {
 2156|  61.6k|  CALLBACK(BeginTargetFeaturesSection, section_size);
  ------------------
  |  |   61|  61.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  61.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  61.6k|  do {                         \
  |  |  |  |  |  |   42|  61.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 61.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  61.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  61.6k|               #member " callback failed")
  ------------------
 2157|  61.6k|  uint32_t count;
 2158|  61.6k|  CHECK_RESULT(ReadU32Leb128(&count, "sym count"));
  ------------------
  |  |   55|  61.6k|  do {                              \
  |  |   56|  61.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 61.6k]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|  61.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2159|  61.6k|  CALLBACK(OnFeatureCount, count);
  ------------------
  |  |   61|  61.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  61.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  61.6k|  do {                         \
  |  |  |  |  |  |   42|  61.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 61.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  61.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  61.6k|               #member " callback failed")
  ------------------
 2160|   310k|  while (count--) {
  ------------------
  |  Branch (2160:10): [True: 288k, False: 22.0k]
  ------------------
 2161|   288k|    uint8_t prefix;
 2162|   288k|    std::string_view name;
 2163|   288k|    CHECK_RESULT(ReadU8(&prefix, "prefix"));
  ------------------
  |  |   55|   288k|  do {                              \
  |  |   56|   288k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 24.5k, False: 264k]
  |  |  ------------------
  |  |   57|  24.5k|      return ::wabt::Result::Error; \
  |  |   58|  24.5k|    }                               \
  |  |   59|   288k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2164|   264k|    CHECK_RESULT(ReadStr(&name, "feature name"));
  ------------------
  |  |   55|   264k|  do {                              \
  |  |   56|   264k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15.0k, False: 249k]
  |  |  ------------------
  |  |   57|  15.0k|      return ::wabt::Result::Error; \
  |  |   58|  15.0k|    }                               \
  |  |   59|   264k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2165|   249k|    CALLBACK(OnFeature, prefix, name);
  ------------------
  |  |   61|   249k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   249k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   249k|  do {                         \
  |  |  |  |  |  |   42|   249k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 249k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   249k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   249k|               #member " callback failed")
  ------------------
 2166|   249k|  }
 2167|  22.0k|  CALLBACK0(EndTargetFeaturesSection);
  ------------------
  |  |   58|  22.0k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  22.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  22.0k|  do {                         \
  |  |  |  |  |  |   42|  22.0k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 22.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  22.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2168|  22.0k|  return Result::Ok;
 2169|  22.0k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader18ReadLinkingSectionEm:
 2183|  88.4k|Result BinaryReader::ReadLinkingSection(Offset section_size) {
 2184|  88.4k|  CALLBACK(BeginLinkingSection, section_size);
  ------------------
  |  |   61|  88.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  88.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  88.4k|  do {                         \
  |  |  |  |  |  |   42|  88.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 88.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  88.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  88.4k|               #member " callback failed")
  ------------------
 2185|  88.4k|  uint32_t version;
 2186|  88.4k|  CHECK_RESULT(ReadU32Leb128(&version, "version"));
  ------------------
  |  |   55|  88.4k|  do {                              \
  |  |   56|  88.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4.08k, False: 84.3k]
  |  |  ------------------
  |  |   57|  4.08k|      return ::wabt::Result::Error; \
  |  |   58|  4.08k|    }                               \
  |  |   59|  88.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2187|  84.3k|  ERROR_UNLESS(version == 2, "invalid linking metadata version: %u", version);
  ------------------
  |  |   48|  84.3k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  84.3k|  do {                         \
  |  |  |  |   42|  84.3k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 330, False: 84.0k]
  |  |  |  |  ------------------
  |  |  |  |   43|    330|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    330|      return Result::Error;    \
  |  |  |  |   45|    330|    }                          \
  |  |  |  |   46|  84.3k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2188|   144k|  while (state_.offset < read_end_) {
  ------------------
  |  Branch (2188:10): [True: 136k, False: 8.32k]
  ------------------
 2189|   136k|    uint32_t linking_type;
 2190|   136k|    Offset subsection_size;
 2191|   136k|    CHECK_RESULT(ReadU32Leb128(&linking_type, "type"));
  ------------------
  |  |   55|   136k|  do {                              \
  |  |   56|   136k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 191, False: 136k]
  |  |  ------------------
  |  |   57|    191|      return ::wabt::Result::Error; \
  |  |   58|    191|    }                               \
  |  |   59|   136k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2192|   136k|    CHECK_RESULT(ReadOffset(&subsection_size, "subsection size"));
  ------------------
  |  |   55|   136k|  do {                              \
  |  |   56|   136k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.58k, False: 133k]
  |  |  ------------------
  |  |   57|  2.58k|      return ::wabt::Result::Error; \
  |  |   58|  2.58k|    }                               \
  |  |   59|   136k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2193|   133k|    size_t subsection_end = state_.offset + subsection_size;
 2194|   133k|    ERROR_UNLESS(subsection_end <= read_end_,
  ------------------
  |  |   48|   133k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   133k|  do {                         \
  |  |  |  |   42|   133k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 890, False: 132k]
  |  |  |  |  ------------------
  |  |  |  |   43|    890|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    890|      return Result::Error;    \
  |  |  |  |   45|    890|    }                          \
  |  |  |  |   46|   133k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2195|   132k|                 "invalid sub-section size: extends past end");
 2196|   132k|    ReadEndRestoreGuard guard(this);
 2197|   132k|    read_end_ = subsection_end;
 2198|       |
 2199|   132k|    uint32_t count;
 2200|   132k|    switch (static_cast<LinkingEntryType>(linking_type)) {
 2201|  57.3k|      case LinkingEntryType::SymbolTable:
  ------------------
  |  Branch (2201:7): [True: 57.3k, False: 75.2k]
  ------------------
 2202|  57.3k|        CHECK_RESULT(ReadU32Leb128(&count, "sym count"));
  ------------------
  |  |   55|  57.3k|  do {                              \
  |  |   56|  57.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 35, False: 57.3k]
  |  |  ------------------
  |  |   57|     35|      return ::wabt::Result::Error; \
  |  |   58|     35|    }                               \
  |  |   59|  57.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2203|  57.3k|        CALLBACK(OnSymbolCount, count);
  ------------------
  |  |   61|  57.3k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  57.3k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  57.3k|  do {                         \
  |  |  |  |  |  |   42|  57.3k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 57.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  57.3k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  57.3k|               #member " callback failed")
  ------------------
 2204|   355k|        for (Index i = 0; i < count; ++i) {
  ------------------
  |  Branch (2204:27): [True: 336k, False: 19.4k]
  ------------------
 2205|   336k|          std::string_view name;
 2206|   336k|          uint32_t flags = 0;
 2207|   336k|          uint32_t kind = 0;
 2208|   336k|          CHECK_RESULT(ReadU32Leb128(&kind, "sym type"));
  ------------------
  |  |   55|   336k|  do {                              \
  |  |   56|   336k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 16.7k, False: 319k]
  |  |  ------------------
  |  |   57|  16.7k|      return ::wabt::Result::Error; \
  |  |   58|  16.7k|    }                               \
  |  |   59|   336k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2209|   319k|          CHECK_RESULT(ReadU32Leb128(&flags, "sym flags"));
  ------------------
  |  |   55|   319k|  do {                              \
  |  |   56|   319k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4.45k, False: 314k]
  |  |  ------------------
  |  |   57|  4.45k|      return ::wabt::Result::Error; \
  |  |   58|  4.45k|    }                               \
  |  |   59|   319k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2210|   314k|          SymbolType sym_type = static_cast<SymbolType>(kind);
 2211|   314k|          switch (sym_type) {
  ------------------
  |  Branch (2211:19): [True: 149k, False: 165k]
  ------------------
 2212|  63.1k|            case SymbolType::Function:
  ------------------
  |  Branch (2212:13): [True: 63.1k, False: 251k]
  ------------------
 2213|  80.4k|            case SymbolType::Global:
  ------------------
  |  Branch (2213:13): [True: 17.3k, False: 297k]
  ------------------
 2214|  95.8k|            case SymbolType::Tag:
  ------------------
  |  Branch (2214:13): [True: 15.4k, False: 299k]
  ------------------
 2215|   123k|            case SymbolType::Table: {
  ------------------
  |  Branch (2215:13): [True: 28.1k, False: 286k]
  ------------------
 2216|   123k|              uint32_t index = 0;
 2217|   123k|              CHECK_RESULT(ReadU32Leb128(&index, "index"));
  ------------------
  |  |   55|   123k|  do {                              \
  |  |   56|   123k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5.38k, False: 118k]
  |  |  ------------------
  |  |   57|  5.38k|      return ::wabt::Result::Error; \
  |  |   58|  5.38k|    }                               \
  |  |   59|   123k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2218|   118k|              if ((flags & WABT_SYMBOL_FLAG_UNDEFINED) == 0 ||
  ------------------
  |  |  326|   118k|#define WABT_SYMBOL_FLAG_UNDEFINED 0x10
  ------------------
  |  Branch (2218:19): [True: 63.5k, False: 55.0k]
  ------------------
 2219|   118k|                  (flags & WABT_SYMBOL_FLAG_EXPLICIT_NAME) != 0)
  ------------------
  |  |  328|  55.0k|#define WABT_SYMBOL_FLAG_EXPLICIT_NAME 0x40
  ------------------
  |  Branch (2219:19): [True: 11.6k, False: 43.4k]
  ------------------
 2220|  75.1k|                CHECK_RESULT(ReadStr(&name, "symbol name"));
  ------------------
  |  |   55|  75.1k|  do {                              \
  |  |   56|  75.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.59k, False: 72.5k]
  |  |  ------------------
  |  |   57|  2.59k|      return ::wabt::Result::Error; \
  |  |   58|  2.59k|    }                               \
  |  |   59|  75.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2221|   116k|              switch (sym_type) {
 2222|  56.9k|                case SymbolType::Function:
  ------------------
  |  Branch (2222:17): [True: 56.9k, False: 59.0k]
  ------------------
 2223|  56.9k|                  CALLBACK(OnFunctionSymbol, i, flags, name, index);
  ------------------
  |  |   61|  56.9k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  56.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  56.9k|  do {                         \
  |  |  |  |  |  |   42|  56.9k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 1.35k, False: 55.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|  1.35k|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|  1.35k|      return Result::Error;    \
  |  |  |  |  |  |   45|  1.35k|    }                          \
  |  |  |  |  |  |   46|  56.9k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  56.9k|               #member " callback failed")
  ------------------
 2224|  55.6k|                  break;
 2225|  55.6k|                case SymbolType::Global:
  ------------------
  |  Branch (2225:17): [True: 16.8k, False: 99.1k]
  ------------------
 2226|  16.8k|                  CALLBACK(OnGlobalSymbol, i, flags, name, index);
  ------------------
  |  |   61|  16.8k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  16.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  16.8k|  do {                         \
  |  |  |  |  |  |   42|  16.8k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 549, False: 16.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|    549|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|    549|      return Result::Error;    \
  |  |  |  |  |  |   45|    549|    }                          \
  |  |  |  |  |  |   46|  16.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  16.8k|               #member " callback failed")
  ------------------
 2227|  16.3k|                  break;
 2228|  16.3k|                case SymbolType::Tag:
  ------------------
  |  Branch (2228:17): [True: 14.7k, False: 101k]
  ------------------
 2229|  14.7k|                  CALLBACK(OnTagSymbol, i, flags, name, index);
  ------------------
  |  |   61|  14.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  14.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  14.7k|  do {                         \
  |  |  |  |  |  |   42|  14.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 411, False: 14.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|    411|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|    411|      return Result::Error;    \
  |  |  |  |  |  |   45|    411|    }                          \
  |  |  |  |  |  |   46|  14.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  14.7k|               #member " callback failed")
  ------------------
 2230|  14.3k|                  break;
 2231|  27.4k|                case SymbolType::Table:
  ------------------
  |  Branch (2231:17): [True: 27.4k, False: 88.6k]
  ------------------
 2232|  27.4k|                  CALLBACK(OnTableSymbol, i, flags, name, index);
  ------------------
  |  |   61|  27.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  27.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  27.4k|  do {                         \
  |  |  |  |  |  |   42|  27.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 1.07k, False: 26.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|  1.07k|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|  1.07k|      return Result::Error;    \
  |  |  |  |  |  |   45|  1.07k|    }                          \
  |  |  |  |  |  |   46|  27.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  27.4k|               #member " callback failed")
  ------------------
 2233|  26.3k|                  break;
 2234|  26.3k|                default:
  ------------------
  |  Branch (2234:17): [True: 0, False: 116k]
  ------------------
 2235|      0|                  WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
 2236|   116k|              }
 2237|   112k|              break;
 2238|   116k|            }
 2239|   112k|            case SymbolType::Data: {
  ------------------
  |  Branch (2239:13): [True: 23.3k, False: 291k]
  ------------------
 2240|  23.3k|              uint32_t segment = 0;
 2241|  23.3k|              uint32_t offset = 0;
 2242|  23.3k|              uint32_t size = 0;
 2243|  23.3k|              CHECK_RESULT(ReadStr(&name, "symbol name"));
  ------------------
  |  |   55|  23.3k|  do {                              \
  |  |   56|  23.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.94k, False: 20.3k]
  |  |  ------------------
  |  |   57|  2.94k|      return ::wabt::Result::Error; \
  |  |   58|  2.94k|    }                               \
  |  |   59|  23.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2244|  20.3k|              if ((flags & WABT_SYMBOL_FLAG_UNDEFINED) == 0) {
  ------------------
  |  |  326|  20.3k|#define WABT_SYMBOL_FLAG_UNDEFINED 0x10
  ------------------
  |  Branch (2244:19): [True: 18.1k, False: 2.29k]
  ------------------
 2245|  18.1k|                CHECK_RESULT(ReadU32Leb128(&segment, "segment"));
  ------------------
  |  |   55|  18.1k|  do {                              \
  |  |   56|  18.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 190, False: 17.9k]
  |  |  ------------------
  |  |   57|    190|      return ::wabt::Result::Error; \
  |  |   58|    190|    }                               \
  |  |   59|  18.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2246|  17.9k|                CHECK_RESULT(ReadU32Leb128(&offset, "offset"));
  ------------------
  |  |   55|  17.9k|  do {                              \
  |  |   56|  17.9k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 153, False: 17.7k]
  |  |  ------------------
  |  |   57|    153|      return ::wabt::Result::Error; \
  |  |   58|    153|    }                               \
  |  |   59|  17.9k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2247|  17.7k|                CHECK_RESULT(ReadU32Leb128(&size, "size"));
  ------------------
  |  |   55|  17.7k|  do {                              \
  |  |   56|  17.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 237, False: 17.5k]
  |  |  ------------------
  |  |   57|    237|      return ::wabt::Result::Error; \
  |  |   58|    237|    }                               \
  |  |   59|  17.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2248|  17.7k|              }
 2249|  19.8k|              CALLBACK(OnDataSymbol, i, flags, name, segment, offset, size);
  ------------------
  |  |   61|  19.8k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  19.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  19.8k|  do {                         \
  |  |  |  |  |  |   42|  19.8k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 1.32k, False: 18.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|  1.32k|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|  1.32k|      return Result::Error;    \
  |  |  |  |  |  |   45|  1.32k|    }                          \
  |  |  |  |  |  |   46|  19.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  19.8k|               #member " callback failed")
  ------------------
 2250|  18.4k|              break;
 2251|  19.8k|            }
 2252|  18.4k|            case SymbolType::Section: {
  ------------------
  |  Branch (2252:13): [True: 18.1k, False: 296k]
  ------------------
 2253|  18.1k|              uint32_t index = 0;
 2254|  18.1k|              CHECK_RESULT(ReadU32Leb128(&index, "index"));
  ------------------
  |  |   55|  18.1k|  do {                              \
  |  |   56|  18.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 108, False: 18.0k]
  |  |  ------------------
  |  |   57|    108|      return ::wabt::Result::Error; \
  |  |   58|    108|    }                               \
  |  |   59|  18.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2255|  18.0k|              CALLBACK(OnSectionSymbol, i, flags, index);
  ------------------
  |  |   61|  18.0k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  18.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  18.0k|  do {                         \
  |  |  |  |  |  |   42|  18.0k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 369, False: 17.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|    369|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|    369|      return Result::Error;    \
  |  |  |  |  |  |   45|    369|    }                          \
  |  |  |  |  |  |   46|  18.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  18.0k|               #member " callback failed")
  ------------------
 2256|  17.7k|              break;
 2257|  18.0k|            }
 2258|   314k|          }
 2259|   314k|        }
 2260|  19.4k|        break;
 2261|  22.2k|      case LinkingEntryType::SegmentInfo:
  ------------------
  |  Branch (2261:7): [True: 22.2k, False: 110k]
  ------------------
 2262|  22.2k|        CHECK_RESULT(ReadU32Leb128(&count, "info count"));
  ------------------
  |  |   55|  22.2k|  do {                              \
  |  |   56|  22.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 747, False: 21.4k]
  |  |  ------------------
  |  |   57|    747|      return ::wabt::Result::Error; \
  |  |   58|    747|    }                               \
  |  |   59|  22.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2263|  21.4k|        CALLBACK(OnSegmentInfoCount, count);
  ------------------
  |  |   61|  21.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  21.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  21.4k|  do {                         \
  |  |  |  |  |  |   42|  21.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 21.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  21.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  21.4k|               #member " callback failed")
  ------------------
 2264|  40.6k|        for (Index i = 0; i < count; i++) {
  ------------------
  |  Branch (2264:27): [True: 23.6k, False: 16.9k]
  ------------------
 2265|  23.6k|          std::string_view name;
 2266|  23.6k|          Address alignment_log2;
 2267|  23.6k|          uint32_t flags;
 2268|  23.6k|          CHECK_RESULT(ReadStr(&name, "segment name"));
  ------------------
  |  |   55|  23.6k|  do {                              \
  |  |   56|  23.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.14k, False: 21.5k]
  |  |  ------------------
  |  |   57|  2.14k|      return ::wabt::Result::Error; \
  |  |   58|  2.14k|    }                               \
  |  |   59|  23.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2269|  21.5k|          CHECK_RESULT(ReadAlignment(&alignment_log2, "segment alignment"));
  ------------------
  |  |   55|  21.5k|  do {                              \
  |  |   56|  21.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 643, False: 20.8k]
  |  |  ------------------
  |  |   57|    643|      return ::wabt::Result::Error; \
  |  |   58|    643|    }                               \
  |  |   59|  21.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2270|  20.8k|          CHECK_RESULT(ReadU32Leb128(&flags, "segment flags"));
  ------------------
  |  |   55|  20.8k|  do {                              \
  |  |   56|  20.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 257, False: 20.6k]
  |  |  ------------------
  |  |   57|    257|      return ::wabt::Result::Error; \
  |  |   58|    257|    }                               \
  |  |   59|  20.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2271|  20.6k|          CALLBACK(OnSegmentInfo, i, name, alignment_log2, flags);
  ------------------
  |  |   61|  20.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  20.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  20.6k|  do {                         \
  |  |  |  |  |  |   42|  20.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 1.48k, False: 19.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|  1.48k|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|  1.48k|      return Result::Error;    \
  |  |  |  |  |  |   45|  1.48k|    }                          \
  |  |  |  |  |  |   46|  20.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  20.6k|               #member " callback failed")
  ------------------
 2272|  20.6k|        }
 2273|  16.9k|        break;
 2274|  16.9k|      case LinkingEntryType::InitFunctions:
  ------------------
  |  Branch (2274:7): [True: 3.29k, False: 129k]
  ------------------
 2275|  3.29k|        CHECK_RESULT(ReadU32Leb128(&count, "info count"));
  ------------------
  |  |   55|  3.29k|  do {                              \
  |  |   56|  3.29k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 97, False: 3.20k]
  |  |  ------------------
  |  |   57|     97|      return ::wabt::Result::Error; \
  |  |   58|     97|    }                               \
  |  |   59|  3.29k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2276|  3.20k|        CALLBACK(OnInitFunctionCount, count);
  ------------------
  |  |   61|  3.20k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.20k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.20k|  do {                         \
  |  |  |  |  |  |   42|  3.20k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.20k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.20k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.20k|               #member " callback failed")
  ------------------
 2277|  20.6k|        while (count--) {
  ------------------
  |  Branch (2277:16): [True: 20.4k, False: 245]
  ------------------
 2278|  20.4k|          uint32_t priority;
 2279|  20.4k|          uint32_t symbol;
 2280|  20.4k|          CHECK_RESULT(ReadU32Leb128(&priority, "priority"));
  ------------------
  |  |   55|  20.4k|  do {                              \
  |  |   56|  20.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.77k, False: 18.6k]
  |  |  ------------------
  |  |   57|  1.77k|      return ::wabt::Result::Error; \
  |  |   58|  1.77k|    }                               \
  |  |   59|  20.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2281|  18.6k|          CHECK_RESULT(ReadU32Leb128(&symbol, "symbol index"));
  ------------------
  |  |   55|  18.6k|  do {                              \
  |  |   56|  18.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.18k, False: 17.4k]
  |  |  ------------------
  |  |   57|  1.18k|      return ::wabt::Result::Error; \
  |  |   58|  1.18k|    }                               \
  |  |   59|  18.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2282|  17.4k|          CALLBACK(OnInitFunction, priority, symbol);
  ------------------
  |  |   61|  17.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  17.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  17.4k|  do {                         \
  |  |  |  |  |  |   42|  17.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 17.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  17.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  17.4k|               #member " callback failed")
  ------------------
 2283|  17.4k|        }
 2284|    245|        break;
 2285|  20.9k|      case LinkingEntryType::ComdatInfo:
  ------------------
  |  Branch (2285:7): [True: 20.9k, False: 111k]
  ------------------
 2286|  20.9k|        CHECK_RESULT(ReadU32Leb128(&count, "count"));
  ------------------
  |  |   55|  20.9k|  do {                              \
  |  |   56|  20.9k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 205, False: 20.7k]
  |  |  ------------------
  |  |   57|    205|      return ::wabt::Result::Error; \
  |  |   58|    205|    }                               \
  |  |   59|  20.9k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2287|  20.7k|        CALLBACK(OnComdatCount, count);
  ------------------
  |  |   61|  20.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  20.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  20.7k|  do {                         \
  |  |  |  |  |  |   42|  20.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 20.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  20.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  20.7k|               #member " callback failed")
  ------------------
 2288|  24.5k|        while (count--) {
  ------------------
  |  Branch (2288:16): [True: 18.6k, False: 5.86k]
  ------------------
 2289|  18.6k|          uint32_t flags;
 2290|  18.6k|          uint32_t entry_count;
 2291|  18.6k|          std::string_view name;
 2292|  18.6k|          CHECK_RESULT(ReadStr(&name, "comdat name"));
  ------------------
  |  |   55|  18.6k|  do {                              \
  |  |   56|  18.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 300, False: 18.3k]
  |  |  ------------------
  |  |   57|    300|      return ::wabt::Result::Error; \
  |  |   58|    300|    }                               \
  |  |   59|  18.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2293|  18.3k|          CHECK_RESULT(ReadU32Leb128(&flags, "flags"));
  ------------------
  |  |   55|  18.3k|  do {                              \
  |  |   56|  18.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 285, False: 18.0k]
  |  |  ------------------
  |  |   57|    285|      return ::wabt::Result::Error; \
  |  |   58|    285|    }                               \
  |  |   59|  18.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2294|  18.0k|          CHECK_RESULT(ReadU32Leb128(&entry_count, "entry count"));
  ------------------
  |  |   55|  18.0k|  do {                              \
  |  |   56|  18.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.17k, False: 16.8k]
  |  |  ------------------
  |  |   57|  1.17k|      return ::wabt::Result::Error; \
  |  |   58|  1.17k|    }                               \
  |  |   59|  18.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2295|  16.8k|          CALLBACK(OnComdatBegin, name, flags, entry_count);
  ------------------
  |  |   61|  16.8k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  16.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  16.8k|  do {                         \
  |  |  |  |  |  |   42|  16.8k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 16.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  16.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  16.8k|               #member " callback failed")
  ------------------
 2296|  52.2k|          while (entry_count--) {
  ------------------
  |  Branch (2296:18): [True: 48.5k, False: 3.79k]
  ------------------
 2297|  48.5k|            uint32_t kind;
 2298|  48.5k|            uint32_t index;
 2299|  48.5k|            CHECK_RESULT(ReadU32Leb128(&kind, "kind"));
  ------------------
  |  |   55|  48.5k|  do {                              \
  |  |   56|  48.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.80k, False: 45.6k]
  |  |  ------------------
  |  |   57|  2.80k|      return ::wabt::Result::Error; \
  |  |   58|  2.80k|    }                               \
  |  |   59|  48.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2300|  45.6k|            CHECK_RESULT(ReadU32Leb128(&index, "index"));
  ------------------
  |  |   55|  45.6k|  do {                              \
  |  |   56|  45.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10.2k, False: 35.4k]
  |  |  ------------------
  |  |   57|  10.2k|      return ::wabt::Result::Error; \
  |  |   58|  10.2k|    }                               \
  |  |   59|  45.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2301|  35.4k|            ComdatType comdat_type = static_cast<ComdatType>(kind);
 2302|  35.4k|            CALLBACK(OnComdatEntry, comdat_type, index);
  ------------------
  |  |   61|  35.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  35.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  35.4k|  do {                         \
  |  |  |  |  |  |   42|  35.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 35.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  35.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  35.4k|               #member " callback failed")
  ------------------
 2303|  35.4k|          }
 2304|  16.8k|        }
 2305|  5.86k|        break;
 2306|  28.8k|      default:
  ------------------
  |  Branch (2306:7): [True: 28.8k, False: 103k]
  ------------------
 2307|       |        // Unknown subsection, skip it.
 2308|  28.8k|        state_.offset = subsection_end;
 2309|  28.8k|        break;
 2310|   132k|    }
 2311|  71.3k|    ERROR_UNLESS(state_.offset == subsection_end,
  ------------------
  |  |   48|  71.3k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  71.3k|  do {                         \
  |  |  |  |   42|  71.3k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 10.7k, False: 60.6k]
  |  |  |  |  ------------------
  |  |  |  |   43|  10.7k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  10.7k|      return Result::Error;    \
  |  |  |  |   45|  10.7k|    }                          \
  |  |  |  |   46|  71.3k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2312|  71.3k|                 "unfinished sub-section (expected end: 0x%" PRIzx ")",
 2313|  71.3k|                 subsection_end);
 2314|  71.3k|  }
 2315|  8.32k|  CALLBACK0(EndLinkingSection);
  ------------------
  |  |   58|  8.32k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  8.32k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  8.32k|  do {                         \
  |  |  |  |  |  |   42|  8.32k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 8.32k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  8.32k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2316|  8.32k|  return Result::Ok;
 2317|  8.32k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadAlignmentEPmPKc:
  432|   199k|Result BinaryReader::ReadAlignment(Address* alignment_log2, const char* desc) {
  433|   199k|  uint32_t value;
  434|   199k|  CHECK_RESULT(ReadU32Leb128(&value, desc));
  ------------------
  |  |   55|   199k|  do {                              \
  |  |   56|   199k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.09k, False: 198k]
  |  |  ------------------
  |  |   57|  1.09k|      return ::wabt::Result::Error; \
  |  |   58|  1.09k|    }                               \
  |  |   59|   199k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  435|   198k|  if (value >= 128 ||
  ------------------
  |  Branch (435:7): [True: 846, False: 198k]
  ------------------
  436|   198k|      (value >= 32 && !options_.features.multi_memory_enabled())) {
  ------------------
  |  Branch (436:8): [True: 87.1k, False: 110k]
  |  Branch (436:23): [True: 0, False: 87.1k]
  ------------------
  437|    846|    PrintError("invalid %s: %u", desc, value);
  438|    846|    return Result::Error;
  439|    846|  }
  440|   198k|  *alignment_log2 = value;
  441|   198k|  return Result::Ok;
  442|   198k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader23ReadCodeMetadataSectionENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEm:
 2345|   134k|                                             Offset section_size) {
 2346|   134k|  CALLBACK(BeginCodeMetadataSection, name, section_size);
  ------------------
  |  |   61|   134k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   134k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   134k|  do {                         \
  |  |  |  |  |  |   42|   134k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 134k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   134k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   134k|               #member " callback failed")
  ------------------
 2347|       |
 2348|   134k|  Index num_functions;
 2349|   134k|  CHECK_RESULT(ReadCount(&num_functions, "function count"));
  ------------------
  |  |   55|   134k|  do {                              \
  |  |   56|   134k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.68k, False: 132k]
  |  |  ------------------
  |  |   57|  1.68k|      return ::wabt::Result::Error; \
  |  |   58|  1.68k|    }                               \
  |  |   59|   134k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2350|   132k|  CALLBACK(OnCodeMetadataFuncCount, num_functions);
  ------------------
  |  |   61|   132k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   132k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   132k|  do {                         \
  |  |  |  |  |  |   42|   132k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 132k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   132k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   132k|               #member " callback failed")
  ------------------
 2351|       |
 2352|   132k|  Index last_function_index = kInvalidIndex;
 2353|   224k|  for (Index i = 0; i < num_functions; ++i) {
  ------------------
  |  Branch (2353:21): [True: 222k, False: 2.03k]
  ------------------
 2354|   222k|    Index function_index;
 2355|   222k|    CHECK_RESULT(ReadCount(&function_index, "function index"));
  ------------------
  |  |   55|   222k|  do {                              \
  |  |   56|   222k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.77k, False: 220k]
  |  |  ------------------
  |  |   57|  1.77k|      return ::wabt::Result::Error; \
  |  |   58|  1.77k|    }                               \
  |  |   59|   222k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2356|   220k|    ERROR_UNLESS(function_index >= num_func_imports_,
  ------------------
  |  |   48|   220k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   220k|  do {                         \
  |  |  |  |   42|   220k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 90, False: 220k]
  |  |  |  |  ------------------
  |  |  |  |   43|     90|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     90|      return Result::Error;    \
  |  |  |  |   45|     90|    }                          \
  |  |  |  |   46|   220k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2357|   220k|                 "function import can't have metadata (got %" PRIindex ")",
 2358|   220k|                 function_index);
 2359|   220k|    ERROR_UNLESS(function_index < NumTotalFuncs(),
  ------------------
  |  |   48|   220k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   220k|  do {                         \
  |  |  |  |   42|   220k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 70.7k, False: 149k]
  |  |  |  |  ------------------
  |  |  |  |   43|  70.7k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  70.7k|      return Result::Error;    \
  |  |  |  |   45|  70.7k|    }                          \
  |  |  |  |   46|   220k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2360|   149k|                 "invalid function index: %" PRIindex, function_index);
 2361|   149k|    ERROR_UNLESS(function_index != last_function_index,
  ------------------
  |  |   48|   149k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   149k|  do {                         \
  |  |  |  |   42|   149k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 38.3k, False: 111k]
  |  |  |  |  ------------------
  |  |  |  |   43|  38.3k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  38.3k|      return Result::Error;    \
  |  |  |  |   45|  38.3k|    }                          \
  |  |  |  |   46|   149k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2362|   111k|                 "duplicate function index: %" PRIindex, function_index);
 2363|   111k|    ERROR_UNLESS(last_function_index == kInvalidIndex ||
  ------------------
  |  |   48|   111k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   111k|  do {                         \
  |  |  |  |   42|   273k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 60.2k, False: 51.1k]
  |  |  |  |  |  Branch (42:9): [True: 40.7k, False: 10.4k]
  |  |  |  |  ------------------
  |  |  |  |   43|  10.4k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  10.4k|      return Result::Error;    \
  |  |  |  |   45|  10.4k|    }                          \
  |  |  |  |   46|   111k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2364|   100k|                     function_index > last_function_index,
 2365|   100k|                 "function index out of order: %" PRIindex, function_index);
 2366|   100k|    last_function_index = function_index;
 2367|       |
 2368|   100k|    Index num_metadata;
 2369|   100k|    CHECK_RESULT(ReadCount(&num_metadata, "metadata instances count"));
  ------------------
  |  |   55|   100k|  do {                              \
  |  |   56|   100k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.64k, False: 99.3k]
  |  |  ------------------
  |  |   57|  1.64k|      return ::wabt::Result::Error; \
  |  |   58|  1.64k|    }                               \
  |  |   59|   100k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2370|       |
 2371|  99.3k|    CALLBACK(OnCodeMetadataCount, function_index, num_metadata);
  ------------------
  |  |   61|  99.3k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  99.3k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  99.3k|  do {                         \
  |  |  |  |  |  |   42|  99.3k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 99.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  99.3k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  99.3k|               #member " callback failed")
  ------------------
 2372|       |
 2373|  99.3k|    Offset last_code_offset = kInvalidOffset;
 2374|   117k|    for (Index j = 0; j < num_metadata; ++j) {
  ------------------
  |  Branch (2374:23): [True: 25.9k, False: 91.8k]
  ------------------
 2375|  25.9k|      Offset code_offset;
 2376|  25.9k|      CHECK_RESULT(ReadOffset(&code_offset, "code offset"));
  ------------------
  |  |   55|  25.9k|  do {                              \
  |  |   56|  25.9k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.35k, False: 24.6k]
  |  |  ------------------
  |  |   57|  1.35k|      return ::wabt::Result::Error; \
  |  |   58|  1.35k|    }                               \
  |  |   59|  25.9k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2377|  24.6k|      ERROR_UNLESS(code_offset != last_code_offset,
  ------------------
  |  |   48|  24.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  24.6k|  do {                         \
  |  |  |  |   42|  24.6k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 1.69k, False: 22.9k]
  |  |  |  |  ------------------
  |  |  |  |   43|  1.69k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  1.69k|      return Result::Error;    \
  |  |  |  |   45|  1.69k|    }                          \
  |  |  |  |   46|  24.6k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2378|  22.9k|                   "duplicate code offset: %" PRIzx, code_offset);
 2379|  22.9k|      ERROR_UNLESS(
  ------------------
  |  |   48|  22.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  22.9k|  do {                         \
  |  |  |  |   42|  57.7k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 11.0k, False: 11.8k]
  |  |  |  |  |  Branch (42:9): [True: 9.48k, False: 2.41k]
  |  |  |  |  ------------------
  |  |  |  |   43|  2.41k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  2.41k|      return Result::Error;    \
  |  |  |  |   45|  2.41k|    }                          \
  |  |  |  |   46|  22.9k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2380|  20.5k|          last_code_offset == kInvalidOffset || code_offset > last_code_offset,
 2381|  20.5k|          "code offset out of order: %" PRIzx, code_offset);
 2382|  20.5k|      last_code_offset = code_offset;
 2383|       |
 2384|  20.5k|      Address data_size;
 2385|  20.5k|      const void* data;
 2386|  20.5k|      CHECK_RESULT(ReadBytes(&data, &data_size, "instance data"));
  ------------------
  |  |   55|  20.5k|  do {                              \
  |  |   56|  20.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.03k, False: 18.4k]
  |  |  ------------------
  |  |   57|  2.03k|      return ::wabt::Result::Error; \
  |  |   58|  2.03k|    }                               \
  |  |   59|  20.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2387|  18.4k|      CALLBACK(OnCodeMetadata, code_offset, data, data_size);
  ------------------
  |  |   61|  18.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  18.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  18.4k|  do {                         \
  |  |  |  |  |  |   42|  18.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 18.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  18.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  18.4k|               #member " callback failed")
  ------------------
 2388|  18.4k|    }
 2389|  99.3k|  }
 2390|       |
 2391|  2.03k|  CALLBACK(EndCodeMetadataSection);
  ------------------
  |  |   61|  2.03k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.03k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.03k|  do {                         \
  |  |  |  |  |  |   42|  2.03k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.03k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.03k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.03k|               #member " callback failed")
  ------------------
 2392|  2.03k|  return Result::Ok;
 2393|  2.03k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadBytesEPPKvPmPKc:
  399|  39.3k|                               const char* desc) {
  400|  39.3k|  uint32_t data_size = 0;
  401|  39.3k|  CHECK_RESULT(ReadU32Leb128(&data_size, "data size"));
  ------------------
  |  |   55|  39.3k|  do {                              \
  |  |   56|  39.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 285, False: 39.0k]
  |  |  ------------------
  |  |   57|    285|      return ::wabt::Result::Error; \
  |  |   58|    285|    }                               \
  |  |   59|  39.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  402|  39.0k|  CHECK_RESULT(ReadBytesWithSize(out_data, data_size, desc));
  ------------------
  |  |   55|  39.0k|  do {                              \
  |  |   56|  39.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.01k, False: 37.0k]
  |  |  ------------------
  |  |   57|  2.01k|      return ::wabt::Result::Error; \
  |  |   58|  2.01k|    }                               \
  |  |   59|  39.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  403|  37.0k|  *out_data_size = data_size;
  404|  37.0k|  return Result::Ok;
  405|  39.0k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardIbXadL_ZNS1_23reading_custom_section_EEEED2Ev:
   86|   684k|    ~ValueRestoreGuard() { this_->*member = previous_value_; }
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadTypeSectionEm:
 2437|  3.44k|Result BinaryReader::ReadTypeSection(Offset section_size) {
 2438|  3.44k|  CALLBACK(BeginTypeSection, section_size);
  ------------------
  |  |   61|  3.44k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.44k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.44k|  do {                         \
  |  |  |  |  |  |   42|  3.44k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.44k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.44k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.44k|               #member " callback failed")
  ------------------
 2439|  3.44k|  Index num_signatures;
 2440|  3.44k|  CHECK_RESULT(ReadCount(&num_signatures, "type count"));
  ------------------
  |  |   55|  3.44k|  do {                              \
  |  |   56|  3.44k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.02k, False: 2.42k]
  |  |  ------------------
  |  |   57|  1.02k|      return ::wabt::Result::Error; \
  |  |   58|  1.02k|    }                               \
  |  |   59|  3.44k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2441|  2.42k|  CALLBACK(OnTypeCount, num_signatures);
  ------------------
  |  |   61|  2.42k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.42k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.42k|  do {                         \
  |  |  |  |  |  |   42|  2.42k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.42k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.42k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.42k|               #member " callback failed")
  ------------------
 2442|       |
 2443|  6.63k|  for (Index i = 0; i < num_signatures; ++i) {
  ------------------
  |  Branch (2443:21): [True: 6.50k, False: 135]
  ------------------
 2444|  6.50k|    Type form;
 2445|  6.50k|    if (options_.features.gc_enabled()) {
  ------------------
  |  Branch (2445:9): [True: 6.50k, False: 0]
  ------------------
 2446|  6.50k|      CHECK_RESULT(ReadType(&form, "type form"));
  ------------------
  |  |   55|  6.50k|  do {                              \
  |  |   56|  6.50k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 140, False: 6.36k]
  |  |  ------------------
  |  |   57|    140|      return ::wabt::Result::Error; \
  |  |   58|    140|    }                               \
  |  |   59|  6.50k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2447|  6.50k|    } else {
 2448|      0|      uint8_t type;
 2449|      0|      CHECK_RESULT(ReadU8(&type, "type form"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2450|      0|      ERROR_UNLESS(type == 0x60, "unexpected type form (got %#x)", type);
  ------------------
  |  |   48|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|      0|  do {                         \
  |  |  |  |   42|      0|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2451|      0|      form = Type::Func;
 2452|      0|    }
 2453|       |
 2454|  6.36k|    switch (form) {
 2455|  3.94k|      case Type::Func: {
  ------------------
  |  Branch (2455:7): [True: 3.94k, False: 2.42k]
  ------------------
 2456|  3.94k|        Index num_params;
 2457|  3.94k|        CHECK_RESULT(ReadCount(&num_params, "function param count"));
  ------------------
  |  |   55|  3.94k|  do {                              \
  |  |   56|  3.94k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 165, False: 3.77k]
  |  |  ------------------
  |  |   57|    165|      return ::wabt::Result::Error; \
  |  |   58|    165|    }                               \
  |  |   59|  3.94k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2458|       |
 2459|  3.77k|        param_types_.resize(num_params);
 2460|       |
 2461|  39.8k|        for (Index j = 0; j < num_params; ++j) {
  ------------------
  |  Branch (2461:27): [True: 36.3k, False: 3.47k]
  ------------------
 2462|  36.3k|          Type param_type;
 2463|  36.3k|          CHECK_RESULT(ReadType(&param_type, "function param type"));
  ------------------
  |  |   55|  36.3k|  do {                              \
  |  |   56|  36.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 36.3k]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|  36.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2464|  36.3k|          ERROR_UNLESS(IsConcreteType(param_type),
  ------------------
  |  |   48|  36.3k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  36.3k|  do {                         \
  |  |  |  |   42|  36.3k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 285, False: 36.0k]
  |  |  |  |  ------------------
  |  |  |  |   43|    570|      PrintError(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (43:18): [True: 140, False: 145]
  |  |  |  |  ------------------
  |  |  |  |   44|    285|      return Result::Error;    \
  |  |  |  |   45|    285|    }                          \
  |  |  |  |   46|  36.3k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2465|  36.0k|                       "expected valid param type (got " PRItypecode ")",
 2466|  36.0k|                       WABT_PRINTF_TYPE_CODE(param_type));
 2467|  36.0k|          param_types_[j] = param_type;
 2468|  36.0k|        }
 2469|       |
 2470|  3.47k|        Index num_results;
 2471|  3.47k|        CHECK_RESULT(ReadCount(&num_results, "function result count"));
  ------------------
  |  |   55|  3.47k|  do {                              \
  |  |   56|  3.47k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 175, False: 3.30k]
  |  |  ------------------
  |  |   57|    175|      return ::wabt::Result::Error; \
  |  |   58|    175|    }                               \
  |  |   59|  3.47k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2472|       |
 2473|  3.30k|        result_types_.resize(num_results);
 2474|       |
 2475|  39.6k|        for (Index j = 0; j < num_results; ++j) {
  ------------------
  |  Branch (2475:27): [True: 36.7k, False: 2.92k]
  ------------------
 2476|  36.7k|          Type result_type;
 2477|  36.7k|          CHECK_RESULT(ReadType(&result_type, "function result type"));
  ------------------
  |  |   55|  36.7k|  do {                              \
  |  |   56|  36.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 20, False: 36.7k]
  |  |  ------------------
  |  |   57|     20|      return ::wabt::Result::Error; \
  |  |   58|     20|    }                               \
  |  |   59|  36.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2478|  36.7k|          ERROR_UNLESS(IsConcreteType(result_type),
  ------------------
  |  |   48|  36.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  36.7k|  do {                         \
  |  |  |  |   42|  36.7k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 360, False: 36.3k]
  |  |  |  |  ------------------
  |  |  |  |   43|    720|      PrintError(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (43:18): [True: 245, False: 115]
  |  |  |  |  ------------------
  |  |  |  |   44|    360|      return Result::Error;    \
  |  |  |  |   45|    360|    }                          \
  |  |  |  |   46|  36.7k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2479|  36.3k|                       "expected valid result type (got " PRItypecode ")",
 2480|  36.3k|                       WABT_PRINTF_TYPE_CODE(result_type));
 2481|  36.3k|          result_types_[j] = result_type;
 2482|  36.3k|        }
 2483|       |
 2484|  2.92k|        Type* param_types = num_params ? param_types_.data() : nullptr;
  ------------------
  |  Branch (2484:29): [True: 1.61k, False: 1.30k]
  ------------------
 2485|  2.92k|        Type* result_types = num_results ? result_types_.data() : nullptr;
  ------------------
  |  Branch (2485:30): [True: 1.53k, False: 1.39k]
  ------------------
 2486|       |
 2487|  2.92k|        CALLBACK(OnFuncType, i, num_params, param_types, num_results,
  ------------------
  |  |   61|  2.92k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.92k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.92k|  do {                         \
  |  |  |  |  |  |   42|  2.92k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.92k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.92k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.92k|               #member " callback failed")
  ------------------
 2488|  2.92k|                 result_types);
 2489|  2.92k|        break;
 2490|  2.92k|      }
 2491|       |
 2492|  2.92k|      case Type::Struct: {
  ------------------
  |  Branch (2492:7): [True: 1.48k, False: 4.88k]
  ------------------
 2493|  1.48k|        ERROR_UNLESS(options_.features.gc_enabled(),
  ------------------
  |  |   48|  1.48k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  1.48k|  do {                         \
  |  |  |  |   42|  1.48k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.48k]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|  1.48k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2494|  1.48k|                     "invalid type form: struct not allowed");
 2495|  1.48k|        Index num_fields;
 2496|  1.48k|        CHECK_RESULT(ReadCount(&num_fields, "field count"));
  ------------------
  |  |   55|  1.48k|  do {                              \
  |  |   56|  1.48k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 140, False: 1.34k]
  |  |  ------------------
  |  |   57|    140|      return ::wabt::Result::Error; \
  |  |   58|    140|    }                               \
  |  |   59|  1.48k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2497|       |
 2498|  1.34k|        fields_.resize(num_fields);
 2499|  2.80k|        for (Index j = 0; j < num_fields; ++j) {
  ------------------
  |  Branch (2499:27): [True: 1.63k, False: 1.17k]
  ------------------
 2500|  1.63k|          CHECK_RESULT(ReadField(&fields_[j]));
  ------------------
  |  |   55|  1.63k|  do {                              \
  |  |   56|  1.63k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 165, False: 1.46k]
  |  |  ------------------
  |  |   57|    165|      return ::wabt::Result::Error; \
  |  |   58|    165|    }                               \
  |  |   59|  1.63k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2501|  1.63k|        }
 2502|       |
 2503|  1.17k|        CALLBACK(OnStructType, i, fields_.size(), fields_.data());
  ------------------
  |  |   61|  1.17k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.17k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.17k|  do {                         \
  |  |  |  |  |  |   42|  1.17k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.17k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.17k|               #member " callback failed")
  ------------------
 2504|  1.17k|        break;
 2505|  1.17k|      }
 2506|       |
 2507|  1.17k|      case Type::Array: {
  ------------------
  |  Branch (2507:7): [True: 365, False: 5.99k]
  ------------------
 2508|    365|        ERROR_UNLESS(options_.features.gc_enabled(),
  ------------------
  |  |   48|    365|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    365|  do {                         \
  |  |  |  |   42|    365|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 365]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|    365|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2509|    365|                     "invalid type form: array not allowed");
 2510|       |
 2511|    365|        TypeMut field;
 2512|    365|        CHECK_RESULT(ReadField(&field));
  ------------------
  |  |   55|    365|  do {                              \
  |  |   56|    365|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 245, False: 120]
  |  |  ------------------
  |  |   57|    245|      return ::wabt::Result::Error; \
  |  |   58|    245|    }                               \
  |  |   59|    365|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2513|    120|        CALLBACK(OnArrayType, i, field);
  ------------------
  |  |   61|    120|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    120|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    120|  do {                         \
  |  |  |  |  |  |   42|    120|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 120]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    120|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    120|               #member " callback failed")
  ------------------
 2514|    120|        break;
 2515|    120|      };
 2516|       |
 2517|    575|      default:
  ------------------
  |  Branch (2517:7): [True: 575, False: 5.78k]
  ------------------
 2518|    575|        PrintError("unexpected type form (got " PRItypecode ")",
 2519|    575|                   WABT_PRINTF_TYPE_CODE(form));
  ------------------
  |  |   32|    575|  (static_cast<int32_t>(x) < 0 ? "-" : ""), std::abs(static_cast<int32_t>(x))
  |  |  ------------------
  |  |  |  Branch (32:4): [True: 280, False: 295]
  |  |  ------------------
  ------------------
 2520|    575|        return Result::Error;
 2521|  6.36k|    }
 2522|  6.36k|  }
 2523|    135|  CALLBACK0(EndTypeSection);
  ------------------
  |  |   58|    135|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    135|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    135|  do {                         \
  |  |  |  |  |  |   42|    135|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 135]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    135|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2524|    135|  return Result::Ok;
 2525|    135|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader8ReadTypeEPNS_4TypeEPKc:
  350|  4.89M|Result BinaryReader::ReadType(Type* out_value, const char* desc) {
  351|  4.89M|  uint32_t type = 0;
  352|  4.89M|  CHECK_RESULT(ReadS32Leb128(&type, desc));
  ------------------
  |  |   55|  4.89M|  do {                              \
  |  |   56|  4.89M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 751, False: 4.89M]
  |  |  ------------------
  |  |   57|    751|      return ::wabt::Result::Error; \
  |  |   58|    751|    }                               \
  |  |   59|  4.89M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  353|  4.89M|  if (static_cast<Type::Enum>(type) == Type::Reference) {
  ------------------
  |  Branch (353:7): [True: 6.00k, False: 4.88M]
  ------------------
  354|  6.00k|    uint32_t heap_type = 0;
  355|  6.00k|    CHECK_RESULT(ReadS32Leb128(&heap_type, desc));
  ------------------
  |  |   55|  6.00k|  do {                              \
  |  |   56|  6.00k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 5.99k]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|  6.00k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  356|  5.99k|    *out_value = Type(Type::Reference, heap_type);
  357|  4.88M|  } else {
  358|  4.88M|    *out_value = static_cast<Type>(type);
  359|  4.88M|  }
  360|  4.89M|  return Result::Ok;
  361|  4.89M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader14IsConcreteTypeENS_4TypeE:
  528|  4.88M|bool BinaryReader::IsConcreteType(Type type) {
  529|  4.88M|  switch (type) {
  530|  8.79k|    case Type::I32:
  ------------------
  |  Branch (530:5): [True: 8.79k, False: 4.87M]
  ------------------
  531|  38.5k|    case Type::I64:
  ------------------
  |  Branch (531:5): [True: 29.7k, False: 4.85M]
  ------------------
  532|  53.6k|    case Type::F32:
  ------------------
  |  Branch (532:5): [True: 15.0k, False: 4.87M]
  ------------------
  533|  97.5k|    case Type::F64:
  ------------------
  |  Branch (533:5): [True: 43.9k, False: 4.84M]
  ------------------
  534|  97.5k|      return true;
  535|       |
  536|  4.40k|    case Type::V128:
  ------------------
  |  Branch (536:5): [True: 4.40k, False: 4.88M]
  ------------------
  537|  4.40k|      return options_.features.simd_enabled();
  538|       |
  539|  7.22k|    case Type::FuncRef:
  ------------------
  |  Branch (539:5): [True: 7.22k, False: 4.88M]
  ------------------
  540|  16.0k|    case Type::ExternRef:
  ------------------
  |  Branch (540:5): [True: 8.81k, False: 4.87M]
  ------------------
  541|  16.0k|      return options_.features.reference_types_enabled();
  542|       |
  543|  5.98k|    case Type::Reference:
  ------------------
  |  Branch (543:5): [True: 5.98k, False: 4.88M]
  ------------------
  544|  5.98k|      return options_.features.function_references_enabled();
  545|       |
  546|  4.76M|    default:
  ------------------
  |  Branch (546:5): [True: 4.76M, False: 124k]
  ------------------
  547|  4.76M|      return false;
  548|  4.88M|  }
  549|  4.88M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadFieldEPNS_7TypeMutE:
  512|  1.99k|Result BinaryReader::ReadField(TypeMut* out_value) {
  513|       |  // TODO: Reuse for global header too?
  514|  1.99k|  Type field_type;
  515|  1.99k|  CHECK_RESULT(ReadType(&field_type, "field type"));
  ------------------
  |  |   55|  1.99k|  do {                              \
  |  |   56|  1.99k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 1.98k]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|  1.99k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  516|  1.98k|  ERROR_UNLESS(IsConcreteType(field_type),
  ------------------
  |  |   48|  1.98k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  1.98k|  do {                         \
  |  |  |  |   42|  1.98k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 315, False: 1.67k]
  |  |  |  |  ------------------
  |  |  |  |   43|    630|      PrintError(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (43:18): [True: 145, False: 170]
  |  |  |  |  ------------------
  |  |  |  |   44|    315|      return Result::Error;    \
  |  |  |  |   45|    315|    }                          \
  |  |  |  |   46|  1.98k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  517|  1.67k|               "expected valid field type (got " PRItypecode ")",
  518|  1.67k|               WABT_PRINTF_TYPE_CODE(field_type));
  519|       |
  520|  1.67k|  uint8_t mutable_ = 0;
  521|  1.67k|  CHECK_RESULT(ReadU8(&mutable_, "field mutability"));
  ------------------
  |  |   55|  1.67k|  do {                              \
  |  |   56|  1.67k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 35, False: 1.63k]
  |  |  ------------------
  |  |   57|     35|      return ::wabt::Result::Error; \
  |  |   58|     35|    }                               \
  |  |   59|  1.67k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  522|  1.63k|  ERROR_UNLESS(mutable_ <= 1, "field mutability must be 0 or 1");
  ------------------
  |  |   48|  1.63k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  1.63k|  do {                         \
  |  |  |  |   42|  1.63k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 50, False: 1.58k]
  |  |  |  |  ------------------
  |  |  |  |   43|     50|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     50|      return Result::Error;    \
  |  |  |  |   45|     50|    }                          \
  |  |  |  |   46|  1.63k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  523|  1.58k|  out_value->type = field_type;
  524|  1.58k|  out_value->mutable_ = mutable_;
  525|  1.58k|  return Result::Ok;
  526|  1.63k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadImportSectionEm:
 2527|  1.62k|Result BinaryReader::ReadImportSection(Offset section_size) {
 2528|  1.62k|  CALLBACK(BeginImportSection, section_size);
  ------------------
  |  |   61|  1.62k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.62k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.62k|  do {                         \
  |  |  |  |  |  |   42|  1.62k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.62k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.62k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.62k|               #member " callback failed")
  ------------------
 2529|  1.62k|  Index num_imports;
 2530|  1.62k|  CHECK_RESULT(ReadCount(&num_imports, "import count"));
  ------------------
  |  |   55|  1.62k|  do {                              \
  |  |   56|  1.62k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 760, False: 865]
  |  |  ------------------
  |  |   57|    760|      return ::wabt::Result::Error; \
  |  |   58|    760|    }                               \
  |  |   59|  1.62k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2531|    865|  CALLBACK(OnImportCount, num_imports);
  ------------------
  |  |   61|    865|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    865|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    865|  do {                         \
  |  |  |  |  |  |   42|    865|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 865]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    865|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    865|               #member " callback failed")
  ------------------
 2532|  39.9k|  for (Index i = 0; i < num_imports; ++i) {
  ------------------
  |  Branch (2532:21): [True: 39.8k, False: 170]
  ------------------
 2533|  39.8k|    std::string_view module_name;
 2534|  39.8k|    CHECK_RESULT(ReadStr(&module_name, "import module name"));
  ------------------
  |  |   55|  39.8k|  do {                              \
  |  |   56|  39.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 255, False: 39.5k]
  |  |  ------------------
  |  |   57|    255|      return ::wabt::Result::Error; \
  |  |   58|    255|    }                               \
  |  |   59|  39.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2535|  39.5k|    std::string_view field_name;
 2536|  39.5k|    CHECK_RESULT(ReadStr(&field_name, "import field name"));
  ------------------
  |  |   55|  39.5k|  do {                              \
  |  |   56|  39.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 120, False: 39.4k]
  |  |  ------------------
  |  |   57|    120|      return ::wabt::Result::Error; \
  |  |   58|    120|    }                               \
  |  |   59|  39.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2537|       |
 2538|  39.4k|    uint8_t kind;
 2539|  39.4k|    CHECK_RESULT(ReadU8(&kind, "import kind"));
  ------------------
  |  |   55|  39.4k|  do {                              \
  |  |   56|  39.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 20, False: 39.4k]
  |  |  ------------------
  |  |   57|     20|      return ::wabt::Result::Error; \
  |  |   58|     20|    }                               \
  |  |   59|  39.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2540|  39.4k|    CALLBACK(OnImport, i, static_cast<ExternalKind>(kind), module_name,
  ------------------
  |  |   61|  39.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  39.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  39.4k|  do {                         \
  |  |  |  |  |  |   42|  39.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 39.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  39.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  39.4k|               #member " callback failed")
  ------------------
 2541|  39.4k|             field_name);
 2542|  39.4k|    switch (static_cast<ExternalKind>(kind)) {
 2543|  18.6k|      case ExternalKind::Func: {
  ------------------
  |  Branch (2543:7): [True: 18.6k, False: 20.8k]
  ------------------
 2544|  18.6k|        Index sig_index;
 2545|  18.6k|        CHECK_RESULT(ReadIndex(&sig_index, "import signature index"));
  ------------------
  |  |   55|  18.6k|  do {                              \
  |  |   56|  18.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 18.5k]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|  18.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2546|  18.5k|        CALLBACK(OnImportFunc, i, module_name, field_name, num_func_imports_,
  ------------------
  |  |   61|  18.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  18.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  18.5k|  do {                         \
  |  |  |  |  |  |   42|  18.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 18.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  18.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  18.5k|               #member " callback failed")
  ------------------
 2547|  18.5k|                 sig_index);
 2548|  18.5k|        num_func_imports_++;
 2549|  18.5k|        break;
 2550|  18.5k|      }
 2551|       |
 2552|  14.2k|      case ExternalKind::Table: {
  ------------------
  |  Branch (2552:7): [True: 14.2k, False: 25.1k]
  ------------------
 2553|  14.2k|        Type elem_type;
 2554|  14.2k|        Limits elem_limits;
 2555|  14.2k|        CHECK_RESULT(ReadTable(&elem_type, &elem_limits));
  ------------------
  |  |   55|  14.2k|  do {                              \
  |  |   56|  14.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 95, False: 14.1k]
  |  |  ------------------
  |  |   57|     95|      return ::wabt::Result::Error; \
  |  |   58|     95|    }                               \
  |  |   59|  14.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2556|  14.1k|        CALLBACK(OnImportTable, i, module_name, field_name, num_table_imports_,
  ------------------
  |  |   61|  14.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  14.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  14.1k|  do {                         \
  |  |  |  |  |  |   42|  14.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 14.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  14.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  14.1k|               #member " callback failed")
  ------------------
 2557|  14.1k|                 elem_type, &elem_limits);
 2558|  14.1k|        num_table_imports_++;
 2559|  14.1k|        break;
 2560|  14.1k|      }
 2561|       |
 2562|  3.20k|      case ExternalKind::Memory: {
  ------------------
  |  Branch (2562:7): [True: 3.20k, False: 36.2k]
  ------------------
 2563|  3.20k|        Limits page_limits;
 2564|  3.20k|        CHECK_RESULT(ReadMemory(&page_limits));
  ------------------
  |  |   55|  3.20k|  do {                              \
  |  |   56|  3.20k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 3.18k]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|  3.20k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2565|  3.18k|        CALLBACK(OnImportMemory, i, module_name, field_name,
  ------------------
  |  |   61|  3.18k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.18k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.18k|  do {                         \
  |  |  |  |  |  |   42|  3.18k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.18k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.18k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.18k|               #member " callback failed")
  ------------------
 2566|  3.18k|                 num_memory_imports_, &page_limits);
 2567|  3.18k|        num_memory_imports_++;
 2568|  3.18k|        break;
 2569|  3.18k|      }
 2570|       |
 2571|  2.39k|      case ExternalKind::Global: {
  ------------------
  |  Branch (2571:7): [True: 2.39k, False: 37.0k]
  ------------------
 2572|  2.39k|        Type type;
 2573|  2.39k|        bool mutable_;
 2574|  2.39k|        CHECK_RESULT(ReadGlobalHeader(&type, &mutable_));
  ------------------
  |  |   55|  2.39k|  do {                              \
  |  |   56|  2.39k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 35, False: 2.36k]
  |  |  ------------------
  |  |   57|     35|      return ::wabt::Result::Error; \
  |  |   58|     35|    }                               \
  |  |   59|  2.39k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2575|  2.36k|        CALLBACK(OnImportGlobal, i, module_name, field_name,
  ------------------
  |  |   61|  2.36k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.36k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.36k|  do {                         \
  |  |  |  |  |  |   42|  2.36k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.36k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.36k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.36k|               #member " callback failed")
  ------------------
 2576|  2.36k|                 num_global_imports_, type, mutable_);
 2577|  2.36k|        num_global_imports_++;
 2578|  2.36k|        break;
 2579|  2.36k|      }
 2580|       |
 2581|    855|      case ExternalKind::Tag: {
  ------------------
  |  Branch (2581:7): [True: 855, False: 38.5k]
  ------------------
 2582|    855|        ERROR_UNLESS(options_.features.exceptions_enabled(),
  ------------------
  |  |   48|    855|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    855|  do {                         \
  |  |  |  |   42|    855|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 855]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|    855|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2583|    855|                     "invalid import tag kind: exceptions not allowed");
 2584|    855|        Index sig_index;
 2585|    855|        CHECK_RESULT(ReadTagType(&sig_index));
  ------------------
  |  |   55|    855|  do {                              \
  |  |   56|    855|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 25, False: 830]
  |  |  ------------------
  |  |   57|     25|      return ::wabt::Result::Error; \
  |  |   58|     25|    }                               \
  |  |   59|    855|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2586|    830|        CALLBACK(OnImportTag, i, module_name, field_name, num_tag_imports_,
  ------------------
  |  |   61|    830|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    830|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    830|  do {                         \
  |  |  |  |  |  |   42|    830|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 830]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    830|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    830|               #member " callback failed")
  ------------------
 2587|    830|                 sig_index);
 2588|    830|        num_tag_imports_++;
 2589|    830|        break;
 2590|    830|      }
 2591|       |
 2592|    120|      default:
  ------------------
  |  Branch (2592:7): [True: 120, False: 39.3k]
  ------------------
 2593|    120|        PrintError("malformed import kind: %d", kind);
 2594|    120|        return Result::Error;
 2595|  39.4k|    }
 2596|  39.4k|  }
 2597|       |
 2598|    170|  CALLBACK0(EndImportSection);
  ------------------
  |  |   58|    170|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    170|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    170|  do {                         \
  |  |  |  |  |  |   42|    170|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 170]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    170|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2599|    170|  return Result::Ok;
 2600|    170|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadTableEPNS_4TypeEPNS_6LimitsE:
  573|  15.3k|Result BinaryReader::ReadTable(Type* out_elem_type, Limits* out_elem_limits) {
  574|  15.3k|  CHECK_RESULT(ReadRefType(out_elem_type, "table elem type"));
  ------------------
  |  |   55|  15.3k|  do {                              \
  |  |   56|  15.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 495, False: 14.8k]
  |  |  ------------------
  |  |   57|    495|      return ::wabt::Result::Error; \
  |  |   58|    495|    }                               \
  |  |   59|  15.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  575|       |
  576|  14.8k|  uint8_t flags;
  577|  14.8k|  uint32_t initial;
  578|  14.8k|  uint32_t max = 0;
  579|  14.8k|  CHECK_RESULT(ReadU8(&flags, "table flags"));
  ------------------
  |  |   55|  14.8k|  do {                              \
  |  |   56|  14.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 20, False: 14.8k]
  |  |  ------------------
  |  |   57|     20|      return ::wabt::Result::Error; \
  |  |   58|     20|    }                               \
  |  |   59|  14.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  580|  14.8k|  bool has_max = flags & WABT_BINARY_LIMITS_HAS_MAX_FLAG;
  ------------------
  |  |   24|  14.8k|#define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1
  ------------------
  581|  14.8k|  bool is_shared = flags & WABT_BINARY_LIMITS_IS_SHARED_FLAG;
  ------------------
  |  |   25|  14.8k|#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2
  ------------------
  582|  14.8k|  bool is_64 = flags & WABT_BINARY_LIMITS_IS_64_FLAG;
  ------------------
  |  |   26|  14.8k|#define WABT_BINARY_LIMITS_IS_64_FLAG 0x4
  ------------------
  583|  14.8k|  const uint8_t unknown_flags = flags & ~WABT_BINARY_LIMITS_ALL_FLAGS;
  ------------------
  |  |   28|  14.8k|  (WABT_BINARY_LIMITS_HAS_MAX_FLAG | WABT_BINARY_LIMITS_IS_SHARED_FLAG | \
  |  |  ------------------
  |  |  |  |   24|  14.8k|#define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1
  |  |  ------------------
  |  |                 (WABT_BINARY_LIMITS_HAS_MAX_FLAG | WABT_BINARY_LIMITS_IS_SHARED_FLAG | \
  |  |  ------------------
  |  |  |  |   25|  14.8k|#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2
  |  |  ------------------
  |  |   29|  14.8k|   WABT_BINARY_LIMITS_IS_64_FLAG)
  |  |  ------------------
  |  |  |  |   26|  14.8k|#define WABT_BINARY_LIMITS_IS_64_FLAG 0x4
  |  |  ------------------
  ------------------
  584|  14.8k|  ERROR_IF(is_shared, "tables may not be shared");
  ------------------
  |  |   41|  14.8k|  do {                         \
  |  |   42|  14.8k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 50, False: 14.7k]
  |  |  ------------------
  |  |   43|     50|      PrintError(__VA_ARGS__); \
  |  |   44|     50|      return Result::Error;    \
  |  |   45|     50|    }                          \
  |  |   46|  14.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  585|  14.7k|  ERROR_IF(is_64 && !options_.features.memory64_enabled(),
  ------------------
  |  |   41|  14.7k|  do {                         \
  |  |   42|  30.5k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 935, False: 13.8k]
  |  |  |  Branch (42:9): [True: 0, False: 935]
  |  |  ------------------
  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |   44|      0|      return Result::Error;    \
  |  |   45|      0|    }                          \
  |  |   46|  14.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  586|  14.7k|           "memory64 not allowed");
  587|  14.7k|  ERROR_UNLESS(unknown_flags == 0, "malformed table limits flag: %d", flags);
  ------------------
  |  |   48|  14.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  14.7k|  do {                         \
  |  |  |  |   42|  14.7k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 35, False: 14.7k]
  |  |  |  |  ------------------
  |  |  |  |   43|     35|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     35|      return Result::Error;    \
  |  |  |  |   45|     35|    }                          \
  |  |  |  |   46|  14.7k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  588|  14.7k|  CHECK_RESULT(ReadU32Leb128(&initial, "table initial elem count"));
  ------------------
  |  |   55|  14.7k|  do {                              \
  |  |   56|  14.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 14.7k]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|  14.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  589|  14.7k|  if (has_max) {
  ------------------
  |  Branch (589:7): [True: 3.62k, False: 11.1k]
  ------------------
  590|  3.62k|    CHECK_RESULT(ReadU32Leb128(&max, "table max elem count"));
  ------------------
  |  |   55|  3.62k|  do {                              \
  |  |   56|  3.62k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 3.62k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  3.62k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  591|  3.62k|  }
  592|       |
  593|  14.7k|  out_elem_limits->has_max = has_max;
  594|  14.7k|  out_elem_limits->is_64 = is_64;
  595|  14.7k|  out_elem_limits->initial = initial;
  596|  14.7k|  out_elem_limits->max = max;
  597|  14.7k|  return Result::Ok;
  598|  14.7k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader11ReadRefTypeEPNS_4TypeEPKc:
  363|  18.9k|Result BinaryReader::ReadRefType(Type* out_value, const char* desc) {
  364|  18.9k|  uint32_t type = 0;
  365|  18.9k|  CHECK_RESULT(ReadS32Leb128(&type, desc));
  ------------------
  |  |   55|  18.9k|  do {                              \
  |  |   56|  18.9k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 137, False: 18.7k]
  |  |  ------------------
  |  |   57|    137|      return ::wabt::Result::Error; \
  |  |   58|    137|    }                               \
  |  |   59|  18.9k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  366|  18.7k|  *out_value = static_cast<Type>(type);
  367|  18.7k|  ERROR_UNLESS(out_value->IsRef(), "%s must be a reference type", desc);
  ------------------
  |  |   48|  18.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  18.7k|  do {                         \
  |  |  |  |   42|  18.7k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 854, False: 17.9k]
  |  |  |  |  ------------------
  |  |  |  |   43|    854|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    854|      return Result::Error;    \
  |  |  |  |   45|    854|    }                          \
  |  |  |  |   46|  18.7k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  368|  17.9k|  return Result::Ok;
  369|  18.7k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadMemoryEPNS_6LimitsE:
  600|  20.0k|Result BinaryReader::ReadMemory(Limits* out_page_limits) {
  601|  20.0k|  uint8_t flags;
  602|  20.0k|  uint64_t initial;
  603|  20.0k|  uint64_t max = 0;
  604|  20.0k|  CHECK_RESULT(ReadU8(&flags, "memory flags"));
  ------------------
  |  |   55|  20.0k|  do {                              \
  |  |   56|  20.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 40, False: 20.0k]
  |  |  ------------------
  |  |   57|     40|      return ::wabt::Result::Error; \
  |  |   58|     40|    }                               \
  |  |   59|  20.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  605|  20.0k|  bool has_max = flags & WABT_BINARY_LIMITS_HAS_MAX_FLAG;
  ------------------
  |  |   24|  20.0k|#define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1
  ------------------
  606|  20.0k|  bool is_shared = flags & WABT_BINARY_LIMITS_IS_SHARED_FLAG;
  ------------------
  |  |   25|  20.0k|#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2
  ------------------
  607|  20.0k|  bool is_64 = flags & WABT_BINARY_LIMITS_IS_64_FLAG;
  ------------------
  |  |   26|  20.0k|#define WABT_BINARY_LIMITS_IS_64_FLAG 0x4
  ------------------
  608|  20.0k|  const uint8_t unknown_flags = flags & ~WABT_BINARY_LIMITS_ALL_FLAGS;
  ------------------
  |  |   28|  20.0k|  (WABT_BINARY_LIMITS_HAS_MAX_FLAG | WABT_BINARY_LIMITS_IS_SHARED_FLAG | \
  |  |  ------------------
  |  |  |  |   24|  20.0k|#define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1
  |  |  ------------------
  |  |                 (WABT_BINARY_LIMITS_HAS_MAX_FLAG | WABT_BINARY_LIMITS_IS_SHARED_FLAG | \
  |  |  ------------------
  |  |  |  |   25|  20.0k|#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2
  |  |  ------------------
  |  |   29|  20.0k|   WABT_BINARY_LIMITS_IS_64_FLAG)
  |  |  ------------------
  |  |  |  |   26|  20.0k|#define WABT_BINARY_LIMITS_IS_64_FLAG 0x4
  |  |  ------------------
  ------------------
  609|  20.0k|  ERROR_UNLESS(unknown_flags == 0, "malformed memory limits flag: %d", flags);
  ------------------
  |  |   48|  20.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  20.0k|  do {                         \
  |  |  |  |   42|  20.0k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 365, False: 19.6k]
  |  |  |  |  ------------------
  |  |  |  |   43|    365|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    365|      return Result::Error;    \
  |  |  |  |   45|    365|    }                          \
  |  |  |  |   46|  20.0k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  610|  19.6k|  ERROR_IF(is_shared && !options_.features.threads_enabled(),
  ------------------
  |  |   41|  19.6k|  do {                         \
  |  |   42|  45.0k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 5.70k, False: 13.9k]
  |  |  |  Branch (42:9): [True: 0, False: 5.70k]
  |  |  ------------------
  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |   44|      0|      return Result::Error;    \
  |  |   45|      0|    }                          \
  |  |   46|  19.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  611|  19.6k|           "memory may not be shared: threads not allowed");
  612|  19.6k|  ERROR_IF(is_64 && !options_.features.memory64_enabled(),
  ------------------
  |  |   41|  19.6k|  do {                         \
  |  |   42|  44.6k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 5.22k, False: 14.4k]
  |  |  |  Branch (42:9): [True: 0, False: 5.22k]
  |  |  ------------------
  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |   44|      0|      return Result::Error;    \
  |  |   45|      0|    }                          \
  |  |   46|  19.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  613|  19.6k|           "memory64 not allowed");
  614|  19.6k|  if (options_.features.memory64_enabled()) {
  ------------------
  |  Branch (614:7): [True: 19.6k, False: 0]
  ------------------
  615|  19.6k|    CHECK_RESULT(ReadU64Leb128(&initial, "memory initial page count"));
  ------------------
  |  |   55|  19.6k|  do {                              \
  |  |   56|  19.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 165, False: 19.5k]
  |  |  ------------------
  |  |   57|    165|      return ::wabt::Result::Error; \
  |  |   58|    165|    }                               \
  |  |   59|  19.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  616|  19.5k|    if (has_max) {
  ------------------
  |  Branch (616:9): [True: 6.66k, False: 12.8k]
  ------------------
  617|  6.66k|      CHECK_RESULT(ReadU64Leb128(&max, "memory max page count"));
  ------------------
  |  |   55|  6.66k|  do {                              \
  |  |   56|  6.66k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 45, False: 6.61k]
  |  |  ------------------
  |  |   57|     45|      return ::wabt::Result::Error; \
  |  |   58|     45|    }                               \
  |  |   59|  6.66k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  618|  6.66k|    }
  619|  19.5k|  } else {
  620|      0|    uint32_t initial32;
  621|      0|    CHECK_RESULT(ReadU32Leb128(&initial32, "memory initial page count"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  622|      0|    initial = initial32;
  623|      0|    if (has_max) {
  ------------------
  |  Branch (623:9): [True: 0, False: 0]
  ------------------
  624|      0|      uint32_t max32;
  625|      0|      CHECK_RESULT(ReadU32Leb128(&max32, "memory max page count"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  626|      0|      max = max32;
  627|      0|    }
  628|      0|  }
  629|       |
  630|  19.4k|  out_page_limits->has_max = has_max;
  631|  19.4k|  out_page_limits->is_shared = is_shared;
  632|  19.4k|  out_page_limits->is_64 = is_64;
  633|  19.4k|  out_page_limits->initial = initial;
  634|  19.4k|  out_page_limits->max = max;
  635|       |
  636|  19.4k|  return Result::Ok;
  637|  19.6k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadU64Leb128EPmPKc:
  323|   203k|Result BinaryReader::ReadU64Leb128(uint64_t* out_value, const char* desc) {
  324|   203k|  const uint8_t* p = state_.data + state_.offset;
  325|   203k|  const uint8_t* end = state_.data + read_end_;
  326|   203k|  size_t bytes_read = wabt::ReadU64Leb128(p, end, out_value);
  327|   203k|  ERROR_UNLESS(bytes_read > 0, "unable to read u64 leb128: %s", desc);
  ------------------
  |  |   48|   203k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   203k|  do {                         \
  |  |  |  |   42|   203k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 608, False: 202k]
  |  |  |  |  ------------------
  |  |  |  |   43|    608|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    608|      return Result::Error;    \
  |  |  |  |   45|    608|    }                          \
  |  |  |  |   46|   203k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  328|   202k|  state_.offset += bytes_read;
  329|   202k|  return Result::Ok;
  330|   203k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadGlobalHeaderEPNS_4TypeEPb:
  639|  8.86k|Result BinaryReader::ReadGlobalHeader(Type* out_type, bool* out_mutable) {
  640|  8.86k|  Type global_type = Type::Void;
  641|  8.86k|  uint8_t mutable_ = 0;
  642|  8.86k|  CHECK_RESULT(ReadType(&global_type, "global type"));
  ------------------
  |  |   55|  8.86k|  do {                              \
  |  |   56|  8.86k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 200, False: 8.66k]
  |  |  ------------------
  |  |   57|    200|      return ::wabt::Result::Error; \
  |  |   58|    200|    }                               \
  |  |   59|  8.86k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  643|  8.66k|  ERROR_UNLESS(IsConcreteType(global_type), "invalid global type: %#x",
  ------------------
  |  |   48|  8.66k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  8.66k|  do {                         \
  |  |  |  |   42|  8.66k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 540, False: 8.12k]
  |  |  |  |  ------------------
  |  |  |  |   43|    540|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    540|      return Result::Error;    \
  |  |  |  |   45|    540|    }                          \
  |  |  |  |   46|  8.66k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  644|  8.12k|               static_cast<int>(global_type));
  645|       |
  646|  8.12k|  CHECK_RESULT(ReadU8(&mutable_, "global mutability"));
  ------------------
  |  |   55|  8.12k|  do {                              \
  |  |   56|  8.12k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 8.11k]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|  8.12k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  647|  8.11k|  ERROR_UNLESS(mutable_ <= 1, "global mutability must be 0 or 1");
  ------------------
  |  |   48|  8.11k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  8.11k|  do {                         \
  |  |  |  |   42|  8.11k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 115, False: 8.00k]
  |  |  |  |  ------------------
  |  |  |  |   43|    115|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    115|      return Result::Error;    \
  |  |  |  |   45|    115|    }                          \
  |  |  |  |   46|  8.11k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  648|       |
  649|  8.00k|  *out_type = global_type;
  650|  8.00k|  *out_mutable = mutable_;
  651|  8.00k|  return Result::Ok;
  652|  8.11k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader11ReadTagTypeEPj:
 2319|  10.3k|Result BinaryReader::ReadTagType(Index* out_sig_index) {
 2320|  10.3k|  uint8_t attribute;
 2321|  10.3k|  CHECK_RESULT(ReadU8(&attribute, "tag attribute"));
  ------------------
  |  |   55|  10.3k|  do {                              \
  |  |   56|  10.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 25, False: 10.3k]
  |  |  ------------------
  |  |   57|     25|      return ::wabt::Result::Error; \
  |  |   58|     25|    }                               \
  |  |   59|  10.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2322|  10.3k|  ERROR_UNLESS(attribute == 0, "tag attribute must be 0");
  ------------------
  |  |   48|  10.3k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  10.3k|  do {                         \
  |  |  |  |   42|  10.3k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 105, False: 10.2k]
  |  |  |  |  ------------------
  |  |  |  |   43|    105|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    105|      return Result::Error;    \
  |  |  |  |   45|    105|    }                          \
  |  |  |  |   46|  10.3k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2323|  10.2k|  CHECK_RESULT(ReadIndex(out_sig_index, "tag signature index"));
  ------------------
  |  |   55|  10.2k|  do {                              \
  |  |   56|  10.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 10.2k]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|  10.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2324|  10.2k|  return Result::Ok;
 2325|  10.2k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader19ReadFunctionSectionEm:
 2602|  12.0k|Result BinaryReader::ReadFunctionSection(Offset section_size) {
 2603|  12.0k|  CALLBACK(BeginFunctionSection, section_size);
  ------------------
  |  |   61|  12.0k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  12.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  12.0k|  do {                         \
  |  |  |  |  |  |   42|  12.0k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 12.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  12.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  12.0k|               #member " callback failed")
  ------------------
 2604|  12.0k|  CHECK_RESULT(
  ------------------
  |  |   55|  12.0k|  do {                              \
  |  |   56|  12.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5.91k, False: 6.11k]
  |  |  ------------------
  |  |   57|  5.91k|      return ::wabt::Result::Error; \
  |  |   58|  5.91k|    }                               \
  |  |   59|  12.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2605|  12.0k|      ReadCount(&num_function_signatures_, "function signature count"));
 2606|  6.11k|  CALLBACK(OnFunctionCount, num_function_signatures_);
  ------------------
  |  |   61|  6.11k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.11k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.11k|  do {                         \
  |  |  |  |  |  |   42|  6.11k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.11k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.11k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.11k|               #member " callback failed")
  ------------------
 2607|  82.1k|  for (Index i = 0; i < num_function_signatures_; ++i) {
  ------------------
  |  Branch (2607:21): [True: 79.1k, False: 2.96k]
  ------------------
 2608|  79.1k|    Index func_index = num_func_imports_ + i;
 2609|  79.1k|    Index sig_index;
 2610|  79.1k|    CHECK_RESULT(ReadIndex(&sig_index, "function signature index"));
  ------------------
  |  |   55|  79.1k|  do {                              \
  |  |   56|  79.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3.14k, False: 76.0k]
  |  |  ------------------
  |  |   57|  3.14k|      return ::wabt::Result::Error; \
  |  |   58|  3.14k|    }                               \
  |  |   59|  79.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2611|  76.0k|    CALLBACK(OnFunction, func_index, sig_index);
  ------------------
  |  |   61|  76.0k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  76.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  76.0k|  do {                         \
  |  |  |  |  |  |   42|  76.0k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 76.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  76.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  76.0k|               #member " callback failed")
  ------------------
 2612|  76.0k|  }
 2613|  2.96k|  CALLBACK0(EndFunctionSection);
  ------------------
  |  |   58|  2.96k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  2.96k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.96k|  do {                         \
  |  |  |  |  |  |   42|  2.96k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.96k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.96k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2614|  2.96k|  return Result::Ok;
 2615|  2.96k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadTableSectionEm:
 2617|  1.10k|Result BinaryReader::ReadTableSection(Offset section_size) {
 2618|  1.10k|  CALLBACK(BeginTableSection, section_size);
  ------------------
  |  |   61|  1.10k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.10k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.10k|  do {                         \
  |  |  |  |  |  |   42|  1.10k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.10k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.10k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.10k|               #member " callback failed")
  ------------------
 2619|  1.10k|  Index num_tables;
 2620|  1.10k|  CHECK_RESULT(ReadCount(&num_tables, "table count"));
  ------------------
  |  |   55|  1.10k|  do {                              \
  |  |   56|  1.10k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 480, False: 625]
  |  |  ------------------
  |  |   57|    480|      return ::wabt::Result::Error; \
  |  |   58|    480|    }                               \
  |  |   59|  1.10k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2621|    625|  CALLBACK(OnTableCount, num_tables);
  ------------------
  |  |   61|    625|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    625|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    625|  do {                         \
  |  |  |  |  |  |   42|    625|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 625]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    625|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    625|               #member " callback failed")
  ------------------
 2622|  1.21k|  for (Index i = 0; i < num_tables; ++i) {
  ------------------
  |  Branch (2622:21): [True: 1.11k, False: 105]
  ------------------
 2623|  1.11k|    Index table_index = num_table_imports_ + i;
 2624|  1.11k|    Type elem_type;
 2625|  1.11k|    Limits elem_limits;
 2626|  1.11k|    CHECK_RESULT(ReadTable(&elem_type, &elem_limits));
  ------------------
  |  |   55|  1.11k|  do {                              \
  |  |   56|  1.11k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 520, False: 590]
  |  |  ------------------
  |  |   57|    520|      return ::wabt::Result::Error; \
  |  |   58|    520|    }                               \
  |  |   59|  1.11k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2627|    590|    CALLBACK(OnTable, table_index, elem_type, &elem_limits);
  ------------------
  |  |   61|    590|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    590|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    590|  do {                         \
  |  |  |  |  |  |   42|    590|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 590]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    590|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    590|               #member " callback failed")
  ------------------
 2628|    590|  }
 2629|    105|  CALLBACK0(EndTableSection);
  ------------------
  |  |   58|    105|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    105|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    105|  do {                         \
  |  |  |  |  |  |   42|    105|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 105]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    105|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2630|    105|  return Result::Ok;
 2631|    105|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadMemorySectionEm:
 2633|  1.20k|Result BinaryReader::ReadMemorySection(Offset section_size) {
 2634|  1.20k|  CALLBACK(BeginMemorySection, section_size);
  ------------------
  |  |   61|  1.20k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.20k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.20k|  do {                         \
  |  |  |  |  |  |   42|  1.20k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.20k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.20k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.20k|               #member " callback failed")
  ------------------
 2635|  1.20k|  Index num_memories;
 2636|  1.20k|  CHECK_RESULT(ReadCount(&num_memories, "memory count"));
  ------------------
  |  |   55|  1.20k|  do {                              \
  |  |   56|  1.20k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 335, False: 870]
  |  |  ------------------
  |  |   57|    335|      return ::wabt::Result::Error; \
  |  |   58|    335|    }                               \
  |  |   59|  1.20k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2637|    870|  CALLBACK(OnMemoryCount, num_memories);
  ------------------
  |  |   61|    870|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    870|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    870|  do {                         \
  |  |  |  |  |  |   42|    870|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 870]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    870|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    870|               #member " callback failed")
  ------------------
 2638|  17.1k|  for (Index i = 0; i < num_memories; ++i) {
  ------------------
  |  Branch (2638:21): [True: 16.8k, False: 270]
  ------------------
 2639|  16.8k|    Index memory_index = num_memory_imports_ + i;
 2640|  16.8k|    Limits page_limits;
 2641|  16.8k|    CHECK_RESULT(ReadMemory(&page_limits));
  ------------------
  |  |   55|  16.8k|  do {                              \
  |  |   56|  16.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 600, False: 16.2k]
  |  |  ------------------
  |  |   57|    600|      return ::wabt::Result::Error; \
  |  |   58|    600|    }                               \
  |  |   59|  16.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2642|  16.2k|    CALLBACK(OnMemory, memory_index, &page_limits);
  ------------------
  |  |   61|  16.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  16.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  16.2k|  do {                         \
  |  |  |  |  |  |   42|  16.2k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 16.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  16.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  16.2k|               #member " callback failed")
  ------------------
 2643|  16.2k|  }
 2644|    270|  CALLBACK0(EndMemorySection);
  ------------------
  |  |   58|    270|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    270|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    270|  do {                         \
  |  |  |  |  |  |   42|    270|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 270]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    270|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2645|    270|  return Result::Ok;
 2646|    270|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadGlobalSectionEm:
 2648|  2.30k|Result BinaryReader::ReadGlobalSection(Offset section_size) {
 2649|  2.30k|  CALLBACK(BeginGlobalSection, section_size);
  ------------------
  |  |   61|  2.30k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.30k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.30k|  do {                         \
  |  |  |  |  |  |   42|  2.30k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.30k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.30k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.30k|               #member " callback failed")
  ------------------
 2650|  2.30k|  Index num_globals;
 2651|  2.30k|  CHECK_RESULT(ReadCount(&num_globals, "global count"));
  ------------------
  |  |   55|  2.30k|  do {                              \
  |  |   56|  2.30k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 305, False: 2.00k]
  |  |  ------------------
  |  |   57|    305|      return ::wabt::Result::Error; \
  |  |   58|    305|    }                               \
  |  |   59|  2.30k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2652|  2.00k|  CALLBACK(OnGlobalCount, num_globals);
  ------------------
  |  |   61|  2.00k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.00k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.00k|  do {                         \
  |  |  |  |  |  |   42|  2.00k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.00k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.00k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.00k|               #member " callback failed")
  ------------------
 2653|  6.53k|  for (Index i = 0; i < num_globals; ++i) {
  ------------------
  |  Branch (2653:21): [True: 6.46k, False: 65]
  ------------------
 2654|  6.46k|    Index global_index = num_global_imports_ + i;
 2655|  6.46k|    Type global_type;
 2656|  6.46k|    bool mutable_;
 2657|  6.46k|    CHECK_RESULT(ReadGlobalHeader(&global_type, &mutable_));
  ------------------
  |  |   55|  6.46k|  do {                              \
  |  |   56|  6.46k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 825, False: 5.64k]
  |  |  ------------------
  |  |   57|    825|      return ::wabt::Result::Error; \
  |  |   58|    825|    }                               \
  |  |   59|  6.46k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2658|  5.64k|    CALLBACK(BeginGlobal, global_index, global_type, mutable_);
  ------------------
  |  |   61|  5.64k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.64k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.64k|  do {                         \
  |  |  |  |  |  |   42|  5.64k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.64k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.64k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.64k|               #member " callback failed")
  ------------------
 2659|  5.64k|    CALLBACK(BeginGlobalInitExpr, global_index);
  ------------------
  |  |   61|  5.64k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.64k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.64k|  do {                         \
  |  |  |  |  |  |   42|  5.64k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.64k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.64k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.64k|               #member " callback failed")
  ------------------
 2660|  5.64k|    CHECK_RESULT(ReadInitExpr(global_index));
  ------------------
  |  |   55|  5.64k|  do {                              \
  |  |   56|  5.64k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.11k, False: 4.53k]
  |  |  ------------------
  |  |   57|  1.11k|      return ::wabt::Result::Error; \
  |  |   58|  1.11k|    }                               \
  |  |   59|  5.64k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2661|  4.53k|    CALLBACK(EndGlobalInitExpr, global_index);
  ------------------
  |  |   61|  4.53k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.53k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.53k|  do {                         \
  |  |  |  |  |  |   42|  4.53k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.53k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.53k|               #member " callback failed")
  ------------------
 2662|  4.53k|    CALLBACK(EndGlobal, global_index);
  ------------------
  |  |   61|  4.53k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.53k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.53k|  do {                         \
  |  |  |  |  |  |   42|  4.53k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.53k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.53k|               #member " callback failed")
  ------------------
 2663|  4.53k|  }
 2664|     65|  CALLBACK0(EndGlobalSection);
  ------------------
  |  |   58|     65|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|     65|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     65|  do {                         \
  |  |  |  |  |  |   42|     65|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 65]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     65|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2665|     65|  return Result::Ok;
 2666|     65|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader12ReadInitExprEj:
  567|  49.3k|Result BinaryReader::ReadInitExpr(Index index) {
  568|  49.3k|  CHECK_RESULT(ReadInstructions(read_end_, "init expression"));
  ------------------
  |  |   55|  49.3k|  do {                              \
  |  |   56|  49.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 12.2k, False: 37.1k]
  |  |  ------------------
  |  |   57|  12.2k|      return ::wabt::Result::Error; \
  |  |   58|  12.2k|    }                               \
  |  |   59|  49.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  569|  37.1k|  assert(state_.offset <= read_end_);
  570|  37.1k|  return Result::Ok;
  571|  37.1k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadInstructionsEmPKc:
  674|  51.3k|Result BinaryReader::ReadInstructions(Offset end_offset, const char* context) {
  675|  51.3k|  std::stack<Opcode> nested_blocks;
  676|  7.83M|  while (state_.offset < end_offset) {
  ------------------
  |  Branch (676:10): [True: 7.82M, False: 4.50k]
  ------------------
  677|  7.82M|    Opcode opcode;
  678|  7.82M|    CHECK_RESULT(ReadOpcode(&opcode, "opcode"));
  ------------------
  |  |   55|  7.82M|  do {                              \
  |  |   56|  7.82M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 910, False: 7.82M]
  |  |  ------------------
  |  |   57|    910|      return ::wabt::Result::Error; \
  |  |   58|    910|    }                               \
  |  |   59|  7.82M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  679|  7.82M|    CALLBACK(OnOpcode, opcode);
  ------------------
  |  |   61|  7.82M|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  7.82M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.82M|  do {                         \
  |  |  |  |  |  |   42|  7.82M|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.82M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.82M|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  7.82M|               #member " callback failed")
  ------------------
  680|  7.82M|    ERROR_UNLESS_OPCODE_ENABLED(opcode);
  ------------------
  |  |   51|  7.82M|  do {                                          \
  |  |   52|  7.82M|    if (!opcode.IsEnabled(options_.features)) { \
  |  |  ------------------
  |  |  |  Branch (52:9): [True: 283, False: 7.82M]
  |  |  ------------------
  |  |   53|    283|      return ReportUnexpectedOpcode(opcode);    \
  |  |   54|    283|    }                                           \
  |  |   55|  7.82M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (55:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  681|       |
  682|  7.82M|    switch (opcode) {
  683|   830k|      case Opcode::Unreachable:
  ------------------
  |  Branch (683:7): [True: 830k, False: 6.99M]
  ------------------
  684|   830k|        CALLBACK0(OnUnreachableExpr);
  ------------------
  |  |   58|   830k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   830k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   830k|  do {                         \
  |  |  |  |  |  |   42|   830k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 830k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   830k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  685|   830k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|   830k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   830k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   830k|  do {                         \
  |  |  |  |  |  |   42|   830k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 830k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   830k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  686|   830k|        break;
  687|       |
  688|   830k|      case Opcode::Block: {
  ------------------
  |  Branch (688:7): [True: 122k, False: 7.70M]
  ------------------
  689|   122k|        nested_blocks.push(opcode);
  690|   122k|        Type sig_type;
  691|   122k|        CHECK_RESULT(ReadType(&sig_type, "block signature type"));
  ------------------
  |  |   55|   122k|  do {                              \
  |  |   56|   122k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 72, False: 122k]
  |  |  ------------------
  |  |   57|     72|      return ::wabt::Result::Error; \
  |  |   58|     72|    }                               \
  |  |   59|   122k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  692|   122k|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   48|   122k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   122k|  do {                         \
  |  |  |  |   42|   122k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 129, False: 122k]
  |  |  |  |  ------------------
  |  |  |  |   43|    129|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    129|      return Result::Error;    \
  |  |  |  |   45|    129|    }                          \
  |  |  |  |   46|   122k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  693|   122k|                     "expected valid block signature type");
  694|   122k|        CALLBACK(OnBlockExpr, sig_type);
  ------------------
  |  |   61|   122k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   122k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   122k|  do {                         \
  |  |  |  |  |  |   42|   122k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 122k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   122k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   122k|               #member " callback failed")
  ------------------
  695|   122k|        CALLBACK(OnOpcodeBlockSig, sig_type);
  ------------------
  |  |   61|   122k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   122k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   122k|  do {                         \
  |  |  |  |  |  |   42|   122k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 122k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   122k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   122k|               #member " callback failed")
  ------------------
  696|   122k|        break;
  697|   122k|      }
  698|       |
  699|   763k|      case Opcode::Loop: {
  ------------------
  |  Branch (699:7): [True: 763k, False: 7.06M]
  ------------------
  700|   763k|        nested_blocks.push(opcode);
  701|   763k|        Type sig_type;
  702|   763k|        CHECK_RESULT(ReadType(&sig_type, "loop signature type"));
  ------------------
  |  |   55|   763k|  do {                              \
  |  |   56|   763k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 64, False: 763k]
  |  |  ------------------
  |  |   57|     64|      return ::wabt::Result::Error; \
  |  |   58|     64|    }                               \
  |  |   59|   763k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  703|   763k|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   48|   763k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   763k|  do {                         \
  |  |  |  |   42|   763k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 88, False: 762k]
  |  |  |  |  ------------------
  |  |  |  |   43|     88|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     88|      return Result::Error;    \
  |  |  |  |   45|     88|    }                          \
  |  |  |  |   46|   763k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  704|   762k|                     "expected valid block signature type");
  705|   762k|        CALLBACK(OnLoopExpr, sig_type);
  ------------------
  |  |   61|   762k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   762k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   762k|  do {                         \
  |  |  |  |  |  |   42|   762k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 762k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   762k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   762k|               #member " callback failed")
  ------------------
  706|   762k|        CALLBACK(OnOpcodeBlockSig, sig_type);
  ------------------
  |  |   61|   762k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   762k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   762k|  do {                         \
  |  |  |  |  |  |   42|   762k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 762k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   762k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   762k|               #member " callback failed")
  ------------------
  707|   762k|        break;
  708|   762k|      }
  709|       |
  710|  3.58M|      case Opcode::If: {
  ------------------
  |  Branch (710:7): [True: 3.58M, False: 4.23M]
  ------------------
  711|  3.58M|        nested_blocks.push(opcode);
  712|  3.58M|        Type sig_type;
  713|  3.58M|        CHECK_RESULT(ReadType(&sig_type, "if signature type"));
  ------------------
  |  |   55|  3.58M|  do {                              \
  |  |   56|  3.58M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 82, False: 3.58M]
  |  |  ------------------
  |  |   57|     82|      return ::wabt::Result::Error; \
  |  |   58|     82|    }                               \
  |  |   59|  3.58M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  714|  3.58M|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   48|  3.58M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  3.58M|  do {                         \
  |  |  |  |   42|  3.58M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 133, False: 3.58M]
  |  |  |  |  ------------------
  |  |  |  |   43|    133|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    133|      return Result::Error;    \
  |  |  |  |   45|    133|    }                          \
  |  |  |  |   46|  3.58M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  715|  3.58M|                     "expected valid block signature type");
  716|  3.58M|        CALLBACK(OnIfExpr, sig_type);
  ------------------
  |  |   61|  3.58M|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.58M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.58M|  do {                         \
  |  |  |  |  |  |   42|  3.58M|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.58M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.58M|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.58M|               #member " callback failed")
  ------------------
  717|  3.58M|        CALLBACK(OnOpcodeBlockSig, sig_type);
  ------------------
  |  |   61|  3.58M|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.58M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.58M|  do {                         \
  |  |  |  |  |  |   42|  3.58M|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.58M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.58M|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.58M|               #member " callback failed")
  ------------------
  718|  3.58M|        break;
  719|  3.58M|      }
  720|       |
  721|  3.58M|      case Opcode::Else:
  ------------------
  |  Branch (721:7): [True: 10.6k, False: 7.81M]
  ------------------
  722|  10.6k|        ERROR_IF(nested_blocks.empty() || (nested_blocks.top() != Opcode::If),
  ------------------
  |  |   41|  10.6k|  do {                         \
  |  |   42|  31.7k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 99, False: 10.5k]
  |  |  |  Branch (42:9): [True: 93, False: 10.4k]
  |  |  ------------------
  |  |   43|    192|      PrintError(__VA_ARGS__); \
  |  |   44|    192|      return Result::Error;    \
  |  |   45|    192|    }                          \
  |  |   46|  10.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  723|  10.6k|                 "else outside if block");
  724|  10.4k|        CALLBACK0(OnElseExpr);
  ------------------
  |  |   58|  10.4k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  10.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.4k|  do {                         \
  |  |  |  |  |  |   42|  10.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  725|  10.4k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  10.4k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  10.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.4k|  do {                         \
  |  |  |  |  |  |   42|  10.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  726|  10.4k|        break;
  727|       |
  728|  10.4k|      case Opcode::SelectT: {
  ------------------
  |  Branch (728:7): [True: 2.42k, False: 7.82M]
  ------------------
  729|  2.42k|        Index num_results;
  730|  2.42k|        CHECK_RESULT(ReadCount(&num_results, "num result types"));
  ------------------
  |  |   55|  2.42k|  do {                              \
  |  |   56|  2.42k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 76, False: 2.34k]
  |  |  ------------------
  |  |   57|     76|      return ::wabt::Result::Error; \
  |  |   58|     76|    }                               \
  |  |   59|  2.42k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  731|       |
  732|  2.34k|        result_types_.resize(num_results);
  733|  4.89k|        for (Index i = 0; i < num_results; ++i) {
  ------------------
  |  Branch (733:27): [True: 2.89k, False: 1.99k]
  ------------------
  734|  2.89k|          Type result_type;
  735|  2.89k|          CHECK_RESULT(ReadType(&result_type, "select result type"));
  ------------------
  |  |   55|  2.89k|  do {                              \
  |  |   56|  2.89k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 26, False: 2.87k]
  |  |  ------------------
  |  |   57|     26|      return ::wabt::Result::Error; \
  |  |   58|     26|    }                               \
  |  |   59|  2.89k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  736|  2.87k|          ERROR_UNLESS(IsConcreteType(result_type),
  ------------------
  |  |   48|  2.87k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  2.87k|  do {                         \
  |  |  |  |   42|  2.87k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 321, False: 2.55k]
  |  |  |  |  ------------------
  |  |  |  |   43|    642|      PrintError(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (43:18): [True: 132, False: 189]
  |  |  |  |  ------------------
  |  |  |  |   44|    321|      return Result::Error;    \
  |  |  |  |   45|    321|    }                          \
  |  |  |  |   46|  2.87k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  737|  2.55k|                       "expected valid select result type (got " PRItypecode
  738|  2.55k|                       ")",
  739|  2.55k|                       WABT_PRINTF_TYPE_CODE(result_type));
  740|  2.55k|          result_types_[i] = result_type;
  741|  2.55k|        }
  742|       |
  743|  1.99k|        if (num_results) {
  ------------------
  |  Branch (743:13): [True: 730, False: 1.26k]
  ------------------
  744|    730|          CALLBACK(OnSelectExpr, num_results, result_types_.data());
  ------------------
  |  |   61|    730|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    730|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    730|  do {                         \
  |  |  |  |  |  |   42|    730|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 730]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    730|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    730|               #member " callback failed")
  ------------------
  745|    730|          CALLBACK(OnOpcodeType, result_types_[0]);
  ------------------
  |  |   61|    730|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    730|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    730|  do {                         \
  |  |  |  |  |  |   42|    730|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 730]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    730|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    730|               #member " callback failed")
  ------------------
  746|  1.26k|        } else {
  747|  1.26k|          CALLBACK(OnSelectExpr, 0, NULL);
  ------------------
  |  |   61|  1.26k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.26k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.26k|  do {                         \
  |  |  |  |  |  |   42|  1.26k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.26k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.26k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.26k|               #member " callback failed")
  ------------------
  748|  1.26k|          CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  1.26k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  1.26k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.26k|  do {                         \
  |  |  |  |  |  |   42|  1.26k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.26k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.26k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  749|  1.26k|        }
  750|  1.99k|        break;
  751|  1.99k|      }
  752|       |
  753|  10.1k|      case Opcode::Select:
  ------------------
  |  Branch (753:7): [True: 10.1k, False: 7.81M]
  ------------------
  754|  10.1k|        CALLBACK(OnSelectExpr, 0, nullptr);
  ------------------
  |  |   61|  10.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  10.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.1k|  do {                         \
  |  |  |  |  |  |   42|  10.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  10.1k|               #member " callback failed")
  ------------------
  755|  10.1k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  10.1k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  10.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.1k|  do {                         \
  |  |  |  |  |  |   42|  10.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  756|  10.1k|        break;
  757|       |
  758|  10.1k|      case Opcode::Br: {
  ------------------
  |  Branch (758:7): [True: 6.97k, False: 7.81M]
  ------------------
  759|  6.97k|        Index depth;
  760|  6.97k|        CHECK_RESULT(ReadIndex(&depth, "br depth"));
  ------------------
  |  |   55|  6.97k|  do {                              \
  |  |   56|  6.97k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 13, False: 6.95k]
  |  |  ------------------
  |  |   57|     13|      return ::wabt::Result::Error; \
  |  |   58|     13|    }                               \
  |  |   59|  6.97k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  761|  6.95k|        CALLBACK(OnBrExpr, depth);
  ------------------
  |  |   61|  6.95k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.95k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.95k|  do {                         \
  |  |  |  |  |  |   42|  6.95k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.95k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.95k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.95k|               #member " callback failed")
  ------------------
  762|  6.95k|        CALLBACK(OnOpcodeIndex, depth);
  ------------------
  |  |   61|  6.95k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.95k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.95k|  do {                         \
  |  |  |  |  |  |   42|  6.95k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.95k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.95k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.95k|               #member " callback failed")
  ------------------
  763|  6.95k|        break;
  764|  6.95k|      }
  765|       |
  766|  6.95k|      case Opcode::BrIf: {
  ------------------
  |  Branch (766:7): [True: 3.62k, False: 7.82M]
  ------------------
  767|  3.62k|        Index depth;
  768|  3.62k|        CHECK_RESULT(ReadIndex(&depth, "br_if depth"));
  ------------------
  |  |   55|  3.62k|  do {                              \
  |  |   56|  3.62k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 27, False: 3.59k]
  |  |  ------------------
  |  |   57|     27|      return ::wabt::Result::Error; \
  |  |   58|     27|    }                               \
  |  |   59|  3.62k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  769|  3.59k|        CALLBACK(OnBrIfExpr, depth);
  ------------------
  |  |   61|  3.59k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.59k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.59k|  do {                         \
  |  |  |  |  |  |   42|  3.59k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.59k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.59k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.59k|               #member " callback failed")
  ------------------
  770|  3.59k|        CALLBACK(OnOpcodeIndex, depth);
  ------------------
  |  |   61|  3.59k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.59k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.59k|  do {                         \
  |  |  |  |  |  |   42|  3.59k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.59k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.59k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.59k|               #member " callback failed")
  ------------------
  771|  3.59k|        break;
  772|  3.59k|      }
  773|       |
  774|  14.3k|      case Opcode::BrTable: {
  ------------------
  |  Branch (774:7): [True: 14.3k, False: 7.81M]
  ------------------
  775|  14.3k|        Index num_targets;
  776|  14.3k|        CHECK_RESULT(ReadCount(&num_targets, "br_table target count"));
  ------------------
  |  |   55|  14.3k|  do {                              \
  |  |   56|  14.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 134, False: 14.2k]
  |  |  ------------------
  |  |   57|    134|      return ::wabt::Result::Error; \
  |  |   58|    134|    }                               \
  |  |   59|  14.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  777|  14.2k|        target_depths_.resize(num_targets);
  778|       |
  779|  4.22M|        for (Index i = 0; i < num_targets; ++i) {
  ------------------
  |  Branch (779:27): [True: 4.21M, False: 14.1k]
  ------------------
  780|  4.21M|          Index target_depth;
  781|  4.21M|          CHECK_RESULT(ReadIndex(&target_depth, "br_table target depth"));
  ------------------
  |  |   55|  4.21M|  do {                              \
  |  |   56|  4.21M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 66, False: 4.21M]
  |  |  ------------------
  |  |   57|     66|      return ::wabt::Result::Error; \
  |  |   58|     66|    }                               \
  |  |   59|  4.21M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  782|  4.21M|          target_depths_[i] = target_depth;
  783|  4.21M|        }
  784|       |
  785|  14.1k|        Index default_target_depth;
  786|  14.1k|        CHECK_RESULT(
  ------------------
  |  |   55|  14.1k|  do {                              \
  |  |   56|  14.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 56, False: 14.1k]
  |  |  ------------------
  |  |   57|     56|      return ::wabt::Result::Error; \
  |  |   58|     56|    }                               \
  |  |   59|  14.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  787|  14.1k|            ReadIndex(&default_target_depth, "br_table default target depth"));
  788|       |
  789|  14.1k|        Index* target_depths = num_targets ? target_depths_.data() : nullptr;
  ------------------
  |  Branch (789:32): [True: 6.13k, False: 7.99k]
  ------------------
  790|       |
  791|  14.1k|        CALLBACK(OnBrTableExpr, num_targets, target_depths,
  ------------------
  |  |   61|  14.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  14.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  14.1k|  do {                         \
  |  |  |  |  |  |   42|  14.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 14.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  14.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  14.1k|               #member " callback failed")
  ------------------
  792|  14.1k|                 default_target_depth);
  793|  14.1k|        break;
  794|  14.1k|      }
  795|       |
  796|  14.1k|      case Opcode::Return:
  ------------------
  |  Branch (796:7): [True: 5.71k, False: 7.82M]
  ------------------
  797|  5.71k|        CALLBACK0(OnReturnExpr);
  ------------------
  |  |   58|  5.71k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  5.71k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.71k|  do {                         \
  |  |  |  |  |  |   42|  5.71k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.71k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.71k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  798|  5.71k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  5.71k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  5.71k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.71k|  do {                         \
  |  |  |  |  |  |   42|  5.71k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.71k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.71k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  799|  5.71k|        break;
  800|       |
  801|   135k|      case Opcode::Nop:
  ------------------
  |  Branch (801:7): [True: 135k, False: 7.69M]
  ------------------
  802|   135k|        CALLBACK0(OnNopExpr);
  ------------------
  |  |   58|   135k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   135k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   135k|  do {                         \
  |  |  |  |  |  |   42|   135k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 135k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   135k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  803|   135k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|   135k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   135k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   135k|  do {                         \
  |  |  |  |  |  |   42|   135k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 135k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   135k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  804|   135k|        break;
  805|       |
  806|   135k|      case Opcode::Drop:
  ------------------
  |  Branch (806:7): [True: 10.4k, False: 7.81M]
  ------------------
  807|  10.4k|        CALLBACK0(OnDropExpr);
  ------------------
  |  |   58|  10.4k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  10.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.4k|  do {                         \
  |  |  |  |  |  |   42|  10.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  808|  10.4k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  10.4k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  10.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.4k|  do {                         \
  |  |  |  |  |  |   42|  10.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  809|  10.4k|        break;
  810|       |
  811|  94.8k|      case Opcode::End:
  ------------------
  |  Branch (811:7): [True: 94.8k, False: 7.73M]
  ------------------
  812|  94.8k|        CALLBACK0(OnEndExpr);
  ------------------
  |  |   58|  94.8k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  94.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  94.8k|  do {                         \
  |  |  |  |  |  |   42|  94.8k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 94.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  94.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  813|  94.8k|        if (nested_blocks.empty()) {
  ------------------
  |  Branch (813:13): [True: 37.5k, False: 57.2k]
  ------------------
  814|  37.5k|          return Result::Ok;
  815|  37.5k|        }
  816|  57.2k|        nested_blocks.pop();
  817|  57.2k|        break;
  818|       |
  819|  10.8k|      case Opcode::I32Const: {
  ------------------
  |  Branch (819:7): [True: 10.8k, False: 7.81M]
  ------------------
  820|  10.8k|        uint32_t value;
  821|  10.8k|        CHECK_RESULT(ReadS32Leb128(&value, "i32.const value"));
  ------------------
  |  |   55|  10.8k|  do {                              \
  |  |   56|  10.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 46, False: 10.7k]
  |  |  ------------------
  |  |   57|     46|      return ::wabt::Result::Error; \
  |  |   58|     46|    }                               \
  |  |   59|  10.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  822|  10.7k|        CALLBACK(OnI32ConstExpr, value);
  ------------------
  |  |   61|  10.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  10.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.7k|  do {                         \
  |  |  |  |  |  |   42|  10.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  10.7k|               #member " callback failed")
  ------------------
  823|  10.7k|        CALLBACK(OnOpcodeUint32, value);
  ------------------
  |  |   61|  10.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  10.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.7k|  do {                         \
  |  |  |  |  |  |   42|  10.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  10.7k|               #member " callback failed")
  ------------------
  824|  10.7k|        break;
  825|  10.7k|      }
  826|       |
  827|  25.9k|      case Opcode::I64Const: {
  ------------------
  |  Branch (827:7): [True: 25.9k, False: 7.80M]
  ------------------
  828|  25.9k|        uint64_t value;
  829|  25.9k|        CHECK_RESULT(ReadS64Leb128(&value, "i64.const value"));
  ------------------
  |  |   55|  25.9k|  do {                              \
  |  |   56|  25.9k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 198, False: 25.7k]
  |  |  ------------------
  |  |   57|    198|      return ::wabt::Result::Error; \
  |  |   58|    198|    }                               \
  |  |   59|  25.9k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  830|  25.7k|        CALLBACK(OnI64ConstExpr, value);
  ------------------
  |  |   61|  25.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  25.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  25.7k|  do {                         \
  |  |  |  |  |  |   42|  25.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 25.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  25.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  25.7k|               #member " callback failed")
  ------------------
  831|  25.7k|        CALLBACK(OnOpcodeUint64, value);
  ------------------
  |  |   61|  25.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  25.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  25.7k|  do {                         \
  |  |  |  |  |  |   42|  25.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 25.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  25.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  25.7k|               #member " callback failed")
  ------------------
  832|  25.7k|        break;
  833|  25.7k|      }
  834|       |
  835|   242k|      case Opcode::F32Const: {
  ------------------
  |  Branch (835:7): [True: 242k, False: 7.58M]
  ------------------
  836|   242k|        uint32_t value_bits = 0;
  837|   242k|        CHECK_RESULT(ReadF32(&value_bits, "f32.const value"));
  ------------------
  |  |   55|   242k|  do {                              \
  |  |   56|   242k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 33, False: 242k]
  |  |  ------------------
  |  |   57|     33|      return ::wabt::Result::Error; \
  |  |   58|     33|    }                               \
  |  |   59|   242k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  838|   242k|        CALLBACK(OnF32ConstExpr, value_bits);
  ------------------
  |  |   61|   242k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   242k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   242k|  do {                         \
  |  |  |  |  |  |   42|   242k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 242k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   242k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   242k|               #member " callback failed")
  ------------------
  839|   242k|        CALLBACK(OnOpcodeF32, value_bits);
  ------------------
  |  |   61|   242k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   242k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   242k|  do {                         \
  |  |  |  |  |  |   42|   242k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 242k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   242k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   242k|               #member " callback failed")
  ------------------
  840|   242k|        break;
  841|   242k|      }
  842|       |
  843|   242k|      case Opcode::F64Const: {
  ------------------
  |  Branch (843:7): [True: 27.1k, False: 7.79M]
  ------------------
  844|  27.1k|        uint64_t value_bits = 0;
  845|  27.1k|        CHECK_RESULT(ReadF64(&value_bits, "f64.const value"));
  ------------------
  |  |   55|  27.1k|  do {                              \
  |  |   56|  27.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 56, False: 27.0k]
  |  |  ------------------
  |  |   57|     56|      return ::wabt::Result::Error; \
  |  |   58|     56|    }                               \
  |  |   59|  27.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  846|  27.0k|        CALLBACK(OnF64ConstExpr, value_bits);
  ------------------
  |  |   61|  27.0k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  27.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  27.0k|  do {                         \
  |  |  |  |  |  |   42|  27.0k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 27.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  27.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  27.0k|               #member " callback failed")
  ------------------
  847|  27.0k|        CALLBACK(OnOpcodeF64, value_bits);
  ------------------
  |  |   61|  27.0k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  27.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  27.0k|  do {                         \
  |  |  |  |  |  |   42|  27.0k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 27.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  27.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  27.0k|               #member " callback failed")
  ------------------
  848|  27.0k|        break;
  849|  27.0k|      }
  850|       |
  851|  27.0k|      case Opcode::V128Const: {
  ------------------
  |  Branch (851:7): [True: 687, False: 7.82M]
  ------------------
  852|    687|        v128 value_bits;
  853|    687|        ZeroMemory(value_bits);
  854|    687|        CHECK_RESULT(ReadV128(&value_bits, "v128.const value"));
  ------------------
  |  |   55|    687|  do {                              \
  |  |   56|    687|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 16, False: 671]
  |  |  ------------------
  |  |   57|     16|      return ::wabt::Result::Error; \
  |  |   58|     16|    }                               \
  |  |   59|    687|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  855|    671|        CALLBACK(OnV128ConstExpr, value_bits);
  ------------------
  |  |   61|    671|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    671|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    671|  do {                         \
  |  |  |  |  |  |   42|    671|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 671]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    671|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    671|               #member " callback failed")
  ------------------
  856|    671|        CALLBACK(OnOpcodeV128, value_bits);
  ------------------
  |  |   61|    671|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    671|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    671|  do {                         \
  |  |  |  |  |  |   42|    671|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 671]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    671|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    671|               #member " callback failed")
  ------------------
  857|    671|        break;
  858|    671|      }
  859|       |
  860|  25.6k|      case Opcode::GlobalGet: {
  ------------------
  |  Branch (860:7): [True: 25.6k, False: 7.80M]
  ------------------
  861|  25.6k|        Index global_index;
  862|  25.6k|        CHECK_RESULT(ReadIndex(&global_index, "global.get global index"));
  ------------------
  |  |   55|  25.6k|  do {                              \
  |  |   56|  25.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 43, False: 25.6k]
  |  |  ------------------
  |  |   57|     43|      return ::wabt::Result::Error; \
  |  |   58|     43|    }                               \
  |  |   59|  25.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  863|  25.6k|        CALLBACK(OnGlobalGetExpr, global_index);
  ------------------
  |  |   61|  25.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  25.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  25.6k|  do {                         \
  |  |  |  |  |  |   42|  25.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 25.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  25.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  25.6k|               #member " callback failed")
  ------------------
  864|  25.6k|        CALLBACK(OnOpcodeIndex, global_index);
  ------------------
  |  |   61|  25.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  25.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  25.6k|  do {                         \
  |  |  |  |  |  |   42|  25.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 25.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  25.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  25.6k|               #member " callback failed")
  ------------------
  865|  25.6k|        break;
  866|  25.6k|      }
  867|       |
  868|  25.6k|      case Opcode::LocalGet: {
  ------------------
  |  Branch (868:7): [True: 12.7k, False: 7.81M]
  ------------------
  869|  12.7k|        Index local_index;
  870|  12.7k|        CHECK_RESULT(ReadIndex(&local_index, "local.get local index"));
  ------------------
  |  |   55|  12.7k|  do {                              \
  |  |   56|  12.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 29, False: 12.7k]
  |  |  ------------------
  |  |   57|     29|      return ::wabt::Result::Error; \
  |  |   58|     29|    }                               \
  |  |   59|  12.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  871|  12.7k|        CALLBACK(OnLocalGetExpr, local_index);
  ------------------
  |  |   61|  12.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  12.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  12.7k|  do {                         \
  |  |  |  |  |  |   42|  12.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 12.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  12.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  12.7k|               #member " callback failed")
  ------------------
  872|  12.7k|        CALLBACK(OnOpcodeIndex, local_index);
  ------------------
  |  |   61|  12.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  12.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  12.7k|  do {                         \
  |  |  |  |  |  |   42|  12.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 12.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  12.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  12.7k|               #member " callback failed")
  ------------------
  873|  12.7k|        break;
  874|  12.7k|      }
  875|       |
  876|  12.7k|      case Opcode::GlobalSet: {
  ------------------
  |  Branch (876:7): [True: 3.88k, False: 7.82M]
  ------------------
  877|  3.88k|        Index global_index;
  878|  3.88k|        CHECK_RESULT(ReadIndex(&global_index, "global.set global index"));
  ------------------
  |  |   55|  3.88k|  do {                              \
  |  |   56|  3.88k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 22, False: 3.86k]
  |  |  ------------------
  |  |   57|     22|      return ::wabt::Result::Error; \
  |  |   58|     22|    }                               \
  |  |   59|  3.88k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  879|  3.86k|        CALLBACK(OnGlobalSetExpr, global_index);
  ------------------
  |  |   61|  3.86k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.86k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.86k|  do {                         \
  |  |  |  |  |  |   42|  3.86k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.86k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.86k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.86k|               #member " callback failed")
  ------------------
  880|  3.86k|        CALLBACK(OnOpcodeIndex, global_index);
  ------------------
  |  |   61|  3.86k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.86k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.86k|  do {                         \
  |  |  |  |  |  |   42|  3.86k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.86k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.86k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.86k|               #member " callback failed")
  ------------------
  881|  3.86k|        break;
  882|  3.86k|      }
  883|       |
  884|  6.12k|      case Opcode::LocalSet: {
  ------------------
  |  Branch (884:7): [True: 6.12k, False: 7.82M]
  ------------------
  885|  6.12k|        Index local_index;
  886|  6.12k|        CHECK_RESULT(ReadIndex(&local_index, "local.set local index"));
  ------------------
  |  |   55|  6.12k|  do {                              \
  |  |   56|  6.12k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 40, False: 6.08k]
  |  |  ------------------
  |  |   57|     40|      return ::wabt::Result::Error; \
  |  |   58|     40|    }                               \
  |  |   59|  6.12k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  887|  6.08k|        CALLBACK(OnLocalSetExpr, local_index);
  ------------------
  |  |   61|  6.08k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.08k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.08k|  do {                         \
  |  |  |  |  |  |   42|  6.08k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.08k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.08k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.08k|               #member " callback failed")
  ------------------
  888|  6.08k|        CALLBACK(OnOpcodeIndex, local_index);
  ------------------
  |  |   61|  6.08k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.08k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.08k|  do {                         \
  |  |  |  |  |  |   42|  6.08k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.08k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.08k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.08k|               #member " callback failed")
  ------------------
  889|  6.08k|        break;
  890|  6.08k|      }
  891|       |
  892|  10.5k|      case Opcode::Call: {
  ------------------
  |  Branch (892:7): [True: 10.5k, False: 7.81M]
  ------------------
  893|  10.5k|        Index func_index;
  894|  10.5k|        CHECK_RESULT(ReadIndex(&func_index, "call function index"));
  ------------------
  |  |   55|  10.5k|  do {                              \
  |  |   56|  10.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 35, False: 10.5k]
  |  |  ------------------
  |  |   57|     35|      return ::wabt::Result::Error; \
  |  |   58|     35|    }                               \
  |  |   59|  10.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  895|  10.5k|        CALLBACK(OnCallExpr, func_index);
  ------------------
  |  |   61|  10.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  10.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.5k|  do {                         \
  |  |  |  |  |  |   42|  10.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  10.5k|               #member " callback failed")
  ------------------
  896|  10.5k|        CALLBACK(OnOpcodeIndex, func_index);
  ------------------
  |  |   61|  10.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  10.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.5k|  do {                         \
  |  |  |  |  |  |   42|  10.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  10.5k|               #member " callback failed")
  ------------------
  897|  10.5k|        break;
  898|  10.5k|      }
  899|       |
  900|  10.5k|      case Opcode::CallIndirect: {
  ------------------
  |  Branch (900:7): [True: 441, False: 7.82M]
  ------------------
  901|    441|        Index sig_index;
  902|    441|        CHECK_RESULT(ReadIndex(&sig_index, "call_indirect signature index"));
  ------------------
  |  |   55|    441|  do {                              \
  |  |   56|    441|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 25, False: 416]
  |  |  ------------------
  |  |   57|     25|      return ::wabt::Result::Error; \
  |  |   58|     25|    }                               \
  |  |   59|    441|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  903|    416|        Index table_index = 0;
  904|    416|        if (options_.features.reference_types_enabled()) {
  ------------------
  |  Branch (904:13): [True: 416, False: 0]
  ------------------
  905|    416|          CHECK_RESULT(ReadIndex(&table_index, "call_indirect table index"));
  ------------------
  |  |   55|    416|  do {                              \
  |  |   56|    416|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 19, False: 397]
  |  |  ------------------
  |  |   57|     19|      return ::wabt::Result::Error; \
  |  |   58|     19|    }                               \
  |  |   59|    416|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  906|    416|        } else {
  907|      0|          uint8_t reserved;
  908|      0|          CHECK_RESULT(ReadU8(&reserved, "call_indirect reserved"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  909|      0|          ERROR_UNLESS(reserved == 0, "call_indirect reserved value must be 0");
  ------------------
  |  |   48|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|      0|  do {                         \
  |  |  |  |   42|      0|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  910|      0|        }
  911|    397|        CALLBACK(OnCallIndirectExpr, sig_index, table_index);
  ------------------
  |  |   61|    397|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    397|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    397|  do {                         \
  |  |  |  |  |  |   42|    397|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 397]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    397|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    397|               #member " callback failed")
  ------------------
  912|    397|        CALLBACK(OnOpcodeUint32Uint32, sig_index, table_index);
  ------------------
  |  |   61|    397|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    397|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    397|  do {                         \
  |  |  |  |  |  |   42|    397|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 397]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    397|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    397|               #member " callback failed")
  ------------------
  913|    397|        break;
  914|    397|      }
  915|       |
  916|  3.15k|      case Opcode::ReturnCall: {
  ------------------
  |  Branch (916:7): [True: 3.15k, False: 7.82M]
  ------------------
  917|  3.15k|        Index func_index;
  918|  3.15k|        CHECK_RESULT(ReadIndex(&func_index, "return_call"));
  ------------------
  |  |   55|  3.15k|  do {                              \
  |  |   56|  3.15k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7, False: 3.14k]
  |  |  ------------------
  |  |   57|      7|      return ::wabt::Result::Error; \
  |  |   58|      7|    }                               \
  |  |   59|  3.15k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  919|  3.14k|        CALLBACK(OnReturnCallExpr, func_index);
  ------------------
  |  |   61|  3.14k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.14k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.14k|  do {                         \
  |  |  |  |  |  |   42|  3.14k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.14k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.14k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.14k|               #member " callback failed")
  ------------------
  920|  3.14k|        CALLBACK(OnOpcodeIndex, func_index);
  ------------------
  |  |   61|  3.14k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.14k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.14k|  do {                         \
  |  |  |  |  |  |   42|  3.14k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.14k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.14k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.14k|               #member " callback failed")
  ------------------
  921|  3.14k|        break;
  922|  3.14k|      }
  923|       |
  924|  5.41k|      case Opcode::ReturnCallIndirect: {
  ------------------
  |  Branch (924:7): [True: 5.41k, False: 7.82M]
  ------------------
  925|  5.41k|        Index sig_index;
  926|  5.41k|        CHECK_RESULT(ReadIndex(&sig_index, "return_call_indirect"));
  ------------------
  |  |   55|  5.41k|  do {                              \
  |  |   56|  5.41k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 17, False: 5.40k]
  |  |  ------------------
  |  |   57|     17|      return ::wabt::Result::Error; \
  |  |   58|     17|    }                               \
  |  |   59|  5.41k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  927|  5.40k|        Index table_index = 0;
  928|  5.40k|        if (options_.features.reference_types_enabled()) {
  ------------------
  |  Branch (928:13): [True: 5.40k, False: 0]
  ------------------
  929|  5.40k|          CHECK_RESULT(
  ------------------
  |  |   55|  5.40k|  do {                              \
  |  |   56|  5.40k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 21, False: 5.37k]
  |  |  ------------------
  |  |   57|     21|      return ::wabt::Result::Error; \
  |  |   58|     21|    }                               \
  |  |   59|  5.40k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  930|  5.40k|              ReadIndex(&table_index, "return_call_indirect table index"));
  931|  5.40k|        } else {
  932|      0|          uint8_t reserved;
  933|      0|          CHECK_RESULT(ReadU8(&reserved, "return_call_indirect reserved"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  934|      0|          ERROR_UNLESS(reserved == 0,
  ------------------
  |  |   48|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|      0|  do {                         \
  |  |  |  |   42|      0|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  935|      0|                       "return_call_indirect reserved value must be 0");
  936|      0|        }
  937|  5.37k|        CALLBACK(OnReturnCallIndirectExpr, sig_index, table_index);
  ------------------
  |  |   61|  5.37k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.37k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.37k|  do {                         \
  |  |  |  |  |  |   42|  5.37k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.37k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.37k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.37k|               #member " callback failed")
  ------------------
  938|  5.37k|        CALLBACK(OnOpcodeUint32Uint32, sig_index, table_index);
  ------------------
  |  |   61|  5.37k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.37k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.37k|  do {                         \
  |  |  |  |  |  |   42|  5.37k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.37k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.37k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.37k|               #member " callback failed")
  ------------------
  939|  5.37k|        break;
  940|  5.37k|      }
  941|       |
  942|  5.37k|      case Opcode::LocalTee: {
  ------------------
  |  Branch (942:7): [True: 2.77k, False: 7.82M]
  ------------------
  943|  2.77k|        Index local_index;
  944|  2.77k|        CHECK_RESULT(ReadIndex(&local_index, "local.tee local index"));
  ------------------
  |  |   55|  2.77k|  do {                              \
  |  |   56|  2.77k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 12, False: 2.76k]
  |  |  ------------------
  |  |   57|     12|      return ::wabt::Result::Error; \
  |  |   58|     12|    }                               \
  |  |   59|  2.77k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  945|  2.76k|        CALLBACK(OnLocalTeeExpr, local_index);
  ------------------
  |  |   61|  2.76k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.76k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.76k|  do {                         \
  |  |  |  |  |  |   42|  2.76k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.76k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.76k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.76k|               #member " callback failed")
  ------------------
  946|  2.76k|        CALLBACK(OnOpcodeIndex, local_index);
  ------------------
  |  |   61|  2.76k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.76k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.76k|  do {                         \
  |  |  |  |  |  |   42|  2.76k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.76k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.76k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.76k|               #member " callback failed")
  ------------------
  947|  2.76k|        break;
  948|  2.76k|      }
  949|       |
  950|  2.76k|      case Opcode::I32Load8S:
  ------------------
  |  Branch (950:7): [True: 1.89k, False: 7.82M]
  ------------------
  951|  4.78k|      case Opcode::I32Load8U:
  ------------------
  |  Branch (951:7): [True: 2.89k, False: 7.82M]
  ------------------
  952|  10.0k|      case Opcode::I32Load16S:
  ------------------
  |  Branch (952:7): [True: 5.28k, False: 7.82M]
  ------------------
  953|  11.9k|      case Opcode::I32Load16U:
  ------------------
  |  Branch (953:7): [True: 1.88k, False: 7.82M]
  ------------------
  954|  16.6k|      case Opcode::I64Load8S:
  ------------------
  |  Branch (954:7): [True: 4.67k, False: 7.82M]
  ------------------
  955|  23.5k|      case Opcode::I64Load8U:
  ------------------
  |  Branch (955:7): [True: 6.89k, False: 7.81M]
  ------------------
  956|  27.3k|      case Opcode::I64Load16S:
  ------------------
  |  Branch (956:7): [True: 3.79k, False: 7.82M]
  ------------------
  957|  29.7k|      case Opcode::I64Load16U:
  ------------------
  |  Branch (957:7): [True: 2.44k, False: 7.82M]
  ------------------
  958|  32.8k|      case Opcode::I64Load32S:
  ------------------
  |  Branch (958:7): [True: 3.11k, False: 7.82M]
  ------------------
  959|  36.1k|      case Opcode::I64Load32U:
  ------------------
  |  Branch (959:7): [True: 3.30k, False: 7.82M]
  ------------------
  960|  38.9k|      case Opcode::I32Load:
  ------------------
  |  Branch (960:7): [True: 2.73k, False: 7.82M]
  ------------------
  961|  47.1k|      case Opcode::I64Load:
  ------------------
  |  Branch (961:7): [True: 8.22k, False: 7.81M]
  ------------------
  962|  50.2k|      case Opcode::F32Load:
  ------------------
  |  Branch (962:7): [True: 3.14k, False: 7.82M]
  ------------------
  963|  52.9k|      case Opcode::F64Load:
  ------------------
  |  Branch (963:7): [True: 2.61k, False: 7.82M]
  ------------------
  964|  61.4k|      case Opcode::V128Load:
  ------------------
  |  Branch (964:7): [True: 8.58k, False: 7.81M]
  ------------------
  965|  65.0k|      case Opcode::V128Load8X8S:
  ------------------
  |  Branch (965:7): [True: 3.55k, False: 7.82M]
  ------------------
  966|  65.8k|      case Opcode::V128Load8X8U:
  ------------------
  |  Branch (966:7): [True: 822, False: 7.82M]
  ------------------
  967|  66.5k|      case Opcode::V128Load16X4S:
  ------------------
  |  Branch (967:7): [True: 659, False: 7.82M]
  ------------------
  968|  67.2k|      case Opcode::V128Load16X4U:
  ------------------
  |  Branch (968:7): [True: 733, False: 7.82M]
  ------------------
  969|  69.2k|      case Opcode::V128Load32X2S:
  ------------------
  |  Branch (969:7): [True: 2.00k, False: 7.82M]
  ------------------
  970|  69.5k|      case Opcode::V128Load32X2U: {
  ------------------
  |  Branch (970:7): [True: 248, False: 7.82M]
  ------------------
  971|  69.5k|        Address alignment_log2;
  972|  69.5k|        Index memidx;
  973|  69.5k|        Address offset;
  974|  69.5k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  69.5k|  do {                              \
  |  |   56|  69.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 940, False: 68.5k]
  |  |  ------------------
  |  |   57|    940|      return ::wabt::Result::Error; \
  |  |   58|    940|    }                               \
  |  |   59|  69.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  975|  69.5k|                                     "load alignment", "load memidx",
  976|  69.5k|                                     "load offset"));
  977|  68.5k|        CALLBACK(OnLoadExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  68.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  68.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  68.5k|  do {                         \
  |  |  |  |  |  |   42|  68.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 68.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  68.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  68.5k|               #member " callback failed")
  ------------------
  978|  68.5k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  68.5k|  do {                              \
  |  |   56|  68.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 68.5k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  68.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  979|  68.5k|        break;
  980|  68.5k|      }
  981|       |
  982|  68.5k|      case Opcode::I32Store8:
  ------------------
  |  Branch (982:7): [True: 18.8k, False: 7.80M]
  ------------------
  983|  27.0k|      case Opcode::I32Store16:
  ------------------
  |  Branch (983:7): [True: 8.19k, False: 7.81M]
  ------------------
  984|  28.7k|      case Opcode::I64Store8:
  ------------------
  |  Branch (984:7): [True: 1.69k, False: 7.82M]
  ------------------
  985|  33.0k|      case Opcode::I64Store16:
  ------------------
  |  Branch (985:7): [True: 4.27k, False: 7.82M]
  ------------------
  986|  35.7k|      case Opcode::I64Store32:
  ------------------
  |  Branch (986:7): [True: 2.74k, False: 7.82M]
  ------------------
  987|  37.7k|      case Opcode::I32Store:
  ------------------
  |  Branch (987:7): [True: 1.99k, False: 7.82M]
  ------------------
  988|  39.7k|      case Opcode::I64Store:
  ------------------
  |  Branch (988:7): [True: 1.98k, False: 7.82M]
  ------------------
  989|  41.0k|      case Opcode::F32Store:
  ------------------
  |  Branch (989:7): [True: 1.34k, False: 7.82M]
  ------------------
  990|  42.8k|      case Opcode::F64Store:
  ------------------
  |  Branch (990:7): [True: 1.72k, False: 7.82M]
  ------------------
  991|  44.5k|      case Opcode::V128Store: {
  ------------------
  |  Branch (991:7): [True: 1.71k, False: 7.82M]
  ------------------
  992|  44.5k|        Address alignment_log2;
  993|  44.5k|        Index memidx;
  994|  44.5k|        Address offset;
  995|  44.5k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  44.5k|  do {                              \
  |  |   56|  44.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 246, False: 44.2k]
  |  |  ------------------
  |  |   57|    246|      return ::wabt::Result::Error; \
  |  |   58|    246|    }                               \
  |  |   59|  44.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  996|  44.5k|                                     "store alignment", "store memidx",
  997|  44.5k|                                     "store offset"));
  998|  44.2k|        CALLBACK(OnStoreExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  44.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  44.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  44.2k|  do {                         \
  |  |  |  |  |  |   42|  44.2k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 44.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  44.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  44.2k|               #member " callback failed")
  ------------------
  999|  44.2k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  44.2k|  do {                              \
  |  |   56|  44.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 44.2k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  44.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1000|  44.2k|        break;
 1001|  44.2k|      }
 1002|       |
 1003|  44.2k|      case Opcode::MemorySize: {
  ------------------
  |  Branch (1003:7): [True: 11.7k, False: 7.81M]
  ------------------
 1004|  11.7k|        Index memidx = 0;
 1005|  11.7k|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1005:13): [True: 0, False: 11.7k]
  ------------------
 1006|      0|          uint8_t reserved;
 1007|      0|          CHECK_RESULT(ReadU8(&reserved, "memory.size reserved"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1008|      0|          ERROR_UNLESS(reserved == 0, "memory.size reserved value must be 0");
  ------------------
  |  |   48|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|      0|  do {                         \
  |  |  |  |   42|      0|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1009|  11.7k|        } else {
 1010|  11.7k|          CHECK_RESULT(ReadMemidx(&memidx, "memory.size memidx"));
  ------------------
  |  |   55|  11.7k|  do {                              \
  |  |   56|  11.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 11.7k]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|  11.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1011|  11.7k|        }
 1012|  11.7k|        CALLBACK(OnMemorySizeExpr, memidx);
  ------------------
  |  |   61|  11.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  11.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  11.7k|  do {                         \
  |  |  |  |  |  |   42|  11.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 11.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  11.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  11.7k|               #member " callback failed")
  ------------------
 1013|  11.7k|        CALLBACK(OnOpcodeUint32, memidx);
  ------------------
  |  |   61|  11.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  11.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  11.7k|  do {                         \
  |  |  |  |  |  |   42|  11.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 11.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  11.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  11.7k|               #member " callback failed")
  ------------------
 1014|  11.7k|        break;
 1015|  11.7k|      }
 1016|       |
 1017|  11.7k|      case Opcode::MemoryGrow: {
  ------------------
  |  Branch (1017:7): [True: 7.46k, False: 7.81M]
  ------------------
 1018|  7.46k|        Index memidx = 0;
 1019|  7.46k|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1019:13): [True: 0, False: 7.46k]
  ------------------
 1020|      0|          uint8_t reserved;
 1021|      0|          CHECK_RESULT(ReadU8(&reserved, "memory.grow reserved"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1022|      0|          ERROR_UNLESS(reserved == 0, "memory.grow reserved value must be 0");
  ------------------
  |  |   48|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|      0|  do {                         \
  |  |  |  |   42|      0|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1023|  7.46k|        } else {
 1024|  7.46k|          CHECK_RESULT(ReadMemidx(&memidx, "memory.grow memidx"));
  ------------------
  |  |   55|  7.46k|  do {                              \
  |  |   56|  7.46k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 47, False: 7.41k]
  |  |  ------------------
  |  |   57|     47|      return ::wabt::Result::Error; \
  |  |   58|     47|    }                               \
  |  |   59|  7.46k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1025|  7.46k|        }
 1026|  7.41k|        CALLBACK(OnMemoryGrowExpr, memidx);
  ------------------
  |  |   61|  7.41k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  7.41k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.41k|  do {                         \
  |  |  |  |  |  |   42|  7.41k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.41k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  7.41k|               #member " callback failed")
  ------------------
 1027|  7.41k|        CALLBACK(OnOpcodeUint32, memidx);
  ------------------
  |  |   61|  7.41k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  7.41k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.41k|  do {                         \
  |  |  |  |  |  |   42|  7.41k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.41k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  7.41k|               #member " callback failed")
  ------------------
 1028|  7.41k|        break;
 1029|  7.41k|      }
 1030|       |
 1031|  7.41k|      case Opcode::I32Add:
  ------------------
  |  Branch (1031:7): [True: 2.69k, False: 7.82M]
  ------------------
 1032|  25.1k|      case Opcode::I32Sub:
  ------------------
  |  Branch (1032:7): [True: 22.4k, False: 7.80M]
  ------------------
 1033|  45.6k|      case Opcode::I32Mul:
  ------------------
  |  Branch (1033:7): [True: 20.5k, False: 7.80M]
  ------------------
 1034|  72.3k|      case Opcode::I32DivS:
  ------------------
  |  Branch (1034:7): [True: 26.7k, False: 7.79M]
  ------------------
 1035|  97.0k|      case Opcode::I32DivU:
  ------------------
  |  Branch (1035:7): [True: 24.6k, False: 7.80M]
  ------------------
 1036|   117k|      case Opcode::I32RemS:
  ------------------
  |  Branch (1036:7): [True: 20.7k, False: 7.80M]
  ------------------
 1037|   121k|      case Opcode::I32RemU:
  ------------------
  |  Branch (1037:7): [True: 3.95k, False: 7.82M]
  ------------------
 1038|   127k|      case Opcode::I32And:
  ------------------
  |  Branch (1038:7): [True: 5.43k, False: 7.82M]
  ------------------
 1039|   136k|      case Opcode::I32Or:
  ------------------
  |  Branch (1039:7): [True: 9.23k, False: 7.81M]
  ------------------
 1040|   159k|      case Opcode::I32Xor:
  ------------------
  |  Branch (1040:7): [True: 22.6k, False: 7.80M]
  ------------------
 1041|   180k|      case Opcode::I32Shl:
  ------------------
  |  Branch (1041:7): [True: 21.7k, False: 7.80M]
  ------------------
 1042|   195k|      case Opcode::I32ShrU:
  ------------------
  |  Branch (1042:7): [True: 14.8k, False: 7.81M]
  ------------------
 1043|   200k|      case Opcode::I32ShrS:
  ------------------
  |  Branch (1043:7): [True: 5.29k, False: 7.82M]
  ------------------
 1044|   217k|      case Opcode::I32Rotr:
  ------------------
  |  Branch (1044:7): [True: 16.9k, False: 7.80M]
  ------------------
 1045|   222k|      case Opcode::I32Rotl:
  ------------------
  |  Branch (1045:7): [True: 4.72k, False: 7.82M]
  ------------------
 1046|   232k|      case Opcode::I64Add:
  ------------------
  |  Branch (1046:7): [True: 9.60k, False: 7.81M]
  ------------------
 1047|   240k|      case Opcode::I64Sub:
  ------------------
  |  Branch (1047:7): [True: 7.81k, False: 7.81M]
  ------------------
 1048|   276k|      case Opcode::I64Mul:
  ------------------
  |  Branch (1048:7): [True: 36.6k, False: 7.78M]
  ------------------
 1049|   287k|      case Opcode::I64DivS:
  ------------------
  |  Branch (1049:7): [True: 10.5k, False: 7.81M]
  ------------------
 1050|   294k|      case Opcode::I64DivU:
  ------------------
  |  Branch (1050:7): [True: 7.67k, False: 7.81M]
  ------------------
 1051|   302k|      case Opcode::I64RemS:
  ------------------
  |  Branch (1051:7): [True: 7.82k, False: 7.81M]
  ------------------
 1052|   304k|      case Opcode::I64RemU:
  ------------------
  |  Branch (1052:7): [True: 1.62k, False: 7.82M]
  ------------------
 1053|   312k|      case Opcode::I64And:
  ------------------
  |  Branch (1053:7): [True: 8.13k, False: 7.81M]
  ------------------
 1054|   313k|      case Opcode::I64Or:
  ------------------
  |  Branch (1054:7): [True: 1.24k, False: 7.82M]
  ------------------
 1055|   317k|      case Opcode::I64Xor:
  ------------------
  |  Branch (1055:7): [True: 3.52k, False: 7.82M]
  ------------------
 1056|   319k|      case Opcode::I64Shl:
  ------------------
  |  Branch (1056:7): [True: 2.31k, False: 7.82M]
  ------------------
 1057|   322k|      case Opcode::I64ShrU:
  ------------------
  |  Branch (1057:7): [True: 3.07k, False: 7.82M]
  ------------------
 1058|   330k|      case Opcode::I64ShrS:
  ------------------
  |  Branch (1058:7): [True: 8.18k, False: 7.81M]
  ------------------
 1059|   332k|      case Opcode::I64Rotr:
  ------------------
  |  Branch (1059:7): [True: 1.76k, False: 7.82M]
  ------------------
 1060|   333k|      case Opcode::I64Rotl:
  ------------------
  |  Branch (1060:7): [True: 639, False: 7.82M]
  ------------------
 1061|   359k|      case Opcode::F32Add:
  ------------------
  |  Branch (1061:7): [True: 26.4k, False: 7.80M]
  ------------------
 1062|   360k|      case Opcode::F32Sub:
  ------------------
  |  Branch (1062:7): [True: 1.36k, False: 7.82M]
  ------------------
 1063|   362k|      case Opcode::F32Mul:
  ------------------
  |  Branch (1063:7): [True: 1.69k, False: 7.82M]
  ------------------
 1064|   364k|      case Opcode::F32Div:
  ------------------
  |  Branch (1064:7): [True: 1.76k, False: 7.82M]
  ------------------
 1065|   366k|      case Opcode::F32Min:
  ------------------
  |  Branch (1065:7): [True: 1.84k, False: 7.82M]
  ------------------
 1066|   370k|      case Opcode::F32Max:
  ------------------
  |  Branch (1066:7): [True: 4.26k, False: 7.82M]
  ------------------
 1067|   372k|      case Opcode::F32Copysign:
  ------------------
  |  Branch (1067:7): [True: 2.41k, False: 7.82M]
  ------------------
 1068|   375k|      case Opcode::F64Add:
  ------------------
  |  Branch (1068:7): [True: 2.65k, False: 7.82M]
  ------------------
 1069|   380k|      case Opcode::F64Sub:
  ------------------
  |  Branch (1069:7): [True: 4.98k, False: 7.82M]
  ------------------
 1070|   382k|      case Opcode::F64Mul:
  ------------------
  |  Branch (1070:7): [True: 2.12k, False: 7.82M]
  ------------------
 1071|   394k|      case Opcode::F64Div:
  ------------------
  |  Branch (1071:7): [True: 12.0k, False: 7.81M]
  ------------------
 1072|   396k|      case Opcode::F64Min:
  ------------------
  |  Branch (1072:7): [True: 2.05k, False: 7.82M]
  ------------------
 1073|   405k|      case Opcode::F64Max:
  ------------------
  |  Branch (1073:7): [True: 8.99k, False: 7.81M]
  ------------------
 1074|   406k|      case Opcode::F64Copysign:
  ------------------
  |  Branch (1074:7): [True: 1.00k, False: 7.82M]
  ------------------
 1075|   407k|      case Opcode::I8X16Add:
  ------------------
  |  Branch (1075:7): [True: 578, False: 7.82M]
  ------------------
 1076|   407k|      case Opcode::I16X8Add:
  ------------------
  |  Branch (1076:7): [True: 483, False: 7.82M]
  ------------------
 1077|   408k|      case Opcode::I32X4Add:
  ------------------
  |  Branch (1077:7): [True: 387, False: 7.82M]
  ------------------
 1078|   408k|      case Opcode::I64X2Add:
  ------------------
  |  Branch (1078:7): [True: 133, False: 7.82M]
  ------------------
 1079|   411k|      case Opcode::I8X16Sub:
  ------------------
  |  Branch (1079:7): [True: 3.09k, False: 7.82M]
  ------------------
 1080|   412k|      case Opcode::I16X8Sub:
  ------------------
  |  Branch (1080:7): [True: 454, False: 7.82M]
  ------------------
 1081|   413k|      case Opcode::I32X4Sub:
  ------------------
  |  Branch (1081:7): [True: 1.31k, False: 7.82M]
  ------------------
 1082|   413k|      case Opcode::I64X2Sub:
  ------------------
  |  Branch (1082:7): [True: 320, False: 7.82M]
  ------------------
 1083|   414k|      case Opcode::I16X8Mul:
  ------------------
  |  Branch (1083:7): [True: 598, False: 7.82M]
  ------------------
 1084|   415k|      case Opcode::I32X4Mul:
  ------------------
  |  Branch (1084:7): [True: 1.46k, False: 7.82M]
  ------------------
 1085|   415k|      case Opcode::I64X2Mul:
  ------------------
  |  Branch (1085:7): [True: 52, False: 7.82M]
  ------------------
 1086|   416k|      case Opcode::I8X16AddSatS:
  ------------------
  |  Branch (1086:7): [True: 595, False: 7.82M]
  ------------------
 1087|   417k|      case Opcode::I8X16AddSatU:
  ------------------
  |  Branch (1087:7): [True: 933, False: 7.82M]
  ------------------
 1088|   418k|      case Opcode::I16X8AddSatS:
  ------------------
  |  Branch (1088:7): [True: 1.36k, False: 7.82M]
  ------------------
 1089|   419k|      case Opcode::I16X8AddSatU:
  ------------------
  |  Branch (1089:7): [True: 716, False: 7.82M]
  ------------------
 1090|   420k|      case Opcode::I8X16SubSatS:
  ------------------
  |  Branch (1090:7): [True: 1.45k, False: 7.82M]
  ------------------
 1091|   423k|      case Opcode::I8X16SubSatU:
  ------------------
  |  Branch (1091:7): [True: 2.19k, False: 7.82M]
  ------------------
 1092|   423k|      case Opcode::I16X8SubSatS:
  ------------------
  |  Branch (1092:7): [True: 569, False: 7.82M]
  ------------------
 1093|   424k|      case Opcode::I16X8SubSatU:
  ------------------
  |  Branch (1093:7): [True: 1.30k, False: 7.82M]
  ------------------
 1094|   425k|      case Opcode::I8X16MinS:
  ------------------
  |  Branch (1094:7): [True: 509, False: 7.82M]
  ------------------
 1095|   425k|      case Opcode::I16X8MinS:
  ------------------
  |  Branch (1095:7): [True: 326, False: 7.82M]
  ------------------
 1096|   426k|      case Opcode::I32X4MinS:
  ------------------
  |  Branch (1096:7): [True: 311, False: 7.82M]
  ------------------
 1097|   427k|      case Opcode::I8X16MinU:
  ------------------
  |  Branch (1097:7): [True: 1.78k, False: 7.82M]
  ------------------
 1098|   428k|      case Opcode::I16X8MinU:
  ------------------
  |  Branch (1098:7): [True: 777, False: 7.82M]
  ------------------
 1099|   428k|      case Opcode::I32X4MinU:
  ------------------
  |  Branch (1099:7): [True: 104, False: 7.82M]
  ------------------
 1100|   429k|      case Opcode::I8X16MaxS:
  ------------------
  |  Branch (1100:7): [True: 871, False: 7.82M]
  ------------------
 1101|   429k|      case Opcode::I16X8MaxS:
  ------------------
  |  Branch (1101:7): [True: 221, False: 7.82M]
  ------------------
 1102|   430k|      case Opcode::I32X4MaxS:
  ------------------
  |  Branch (1102:7): [True: 376, False: 7.82M]
  ------------------
 1103|   430k|      case Opcode::I8X16MaxU:
  ------------------
  |  Branch (1103:7): [True: 387, False: 7.82M]
  ------------------
 1104|   430k|      case Opcode::I16X8MaxU:
  ------------------
  |  Branch (1104:7): [True: 357, False: 7.82M]
  ------------------
 1105|   432k|      case Opcode::I32X4MaxU:
  ------------------
  |  Branch (1105:7): [True: 1.10k, False: 7.82M]
  ------------------
 1106|   434k|      case Opcode::I8X16Shl:
  ------------------
  |  Branch (1106:7): [True: 2.84k, False: 7.82M]
  ------------------
 1107|   435k|      case Opcode::I16X8Shl:
  ------------------
  |  Branch (1107:7): [True: 401, False: 7.82M]
  ------------------
 1108|   435k|      case Opcode::I32X4Shl:
  ------------------
  |  Branch (1108:7): [True: 140, False: 7.82M]
  ------------------
 1109|   435k|      case Opcode::I64X2Shl:
  ------------------
  |  Branch (1109:7): [True: 113, False: 7.82M]
  ------------------
 1110|   436k|      case Opcode::I8X16ShrS:
  ------------------
  |  Branch (1110:7): [True: 964, False: 7.82M]
  ------------------
 1111|   438k|      case Opcode::I8X16ShrU:
  ------------------
  |  Branch (1111:7): [True: 1.68k, False: 7.82M]
  ------------------
 1112|   439k|      case Opcode::I16X8ShrS:
  ------------------
  |  Branch (1112:7): [True: 1.28k, False: 7.82M]
  ------------------
 1113|   440k|      case Opcode::I16X8ShrU:
  ------------------
  |  Branch (1113:7): [True: 683, False: 7.82M]
  ------------------
 1114|   440k|      case Opcode::I32X4ShrS:
  ------------------
  |  Branch (1114:7): [True: 554, False: 7.82M]
  ------------------
 1115|   440k|      case Opcode::I32X4ShrU:
  ------------------
  |  Branch (1115:7): [True: 93, False: 7.82M]
  ------------------
 1116|   441k|      case Opcode::I64X2ShrS:
  ------------------
  |  Branch (1116:7): [True: 483, False: 7.82M]
  ------------------
 1117|   441k|      case Opcode::I64X2ShrU:
  ------------------
  |  Branch (1117:7): [True: 184, False: 7.82M]
  ------------------
 1118|   444k|      case Opcode::V128And:
  ------------------
  |  Branch (1118:7): [True: 3.43k, False: 7.82M]
  ------------------
 1119|   446k|      case Opcode::V128Or:
  ------------------
  |  Branch (1119:7): [True: 1.23k, False: 7.82M]
  ------------------
 1120|   446k|      case Opcode::V128Xor:
  ------------------
  |  Branch (1120:7): [True: 748, False: 7.82M]
  ------------------
 1121|   447k|      case Opcode::F32X4Min:
  ------------------
  |  Branch (1121:7): [True: 1.07k, False: 7.82M]
  ------------------
 1122|   448k|      case Opcode::F32X4PMin:
  ------------------
  |  Branch (1122:7): [True: 148, False: 7.82M]
  ------------------
 1123|   448k|      case Opcode::F64X2Min:
  ------------------
  |  Branch (1123:7): [True: 224, False: 7.82M]
  ------------------
 1124|   448k|      case Opcode::F64X2PMin:
  ------------------
  |  Branch (1124:7): [True: 267, False: 7.82M]
  ------------------
 1125|   448k|      case Opcode::F32X4Max:
  ------------------
  |  Branch (1125:7): [True: 384, False: 7.82M]
  ------------------
 1126|   449k|      case Opcode::F32X4PMax:
  ------------------
  |  Branch (1126:7): [True: 338, False: 7.82M]
  ------------------
 1127|   449k|      case Opcode::F64X2Max:
  ------------------
  |  Branch (1127:7): [True: 74, False: 7.82M]
  ------------------
 1128|   449k|      case Opcode::F64X2PMax:
  ------------------
  |  Branch (1128:7): [True: 232, False: 7.82M]
  ------------------
 1129|   450k|      case Opcode::F32X4Add:
  ------------------
  |  Branch (1129:7): [True: 649, False: 7.82M]
  ------------------
 1130|   450k|      case Opcode::F64X2Add:
  ------------------
  |  Branch (1130:7): [True: 242, False: 7.82M]
  ------------------
 1131|   450k|      case Opcode::F32X4Sub:
  ------------------
  |  Branch (1131:7): [True: 228, False: 7.82M]
  ------------------
 1132|   451k|      case Opcode::F64X2Sub:
  ------------------
  |  Branch (1132:7): [True: 416, False: 7.82M]
  ------------------
 1133|   452k|      case Opcode::F32X4Div:
  ------------------
  |  Branch (1133:7): [True: 1.15k, False: 7.82M]
  ------------------
 1134|   452k|      case Opcode::F64X2Div:
  ------------------
  |  Branch (1134:7): [True: 143, False: 7.82M]
  ------------------
 1135|   454k|      case Opcode::F32X4Mul:
  ------------------
  |  Branch (1135:7): [True: 2.32k, False: 7.82M]
  ------------------
 1136|   454k|      case Opcode::F64X2Mul:
  ------------------
  |  Branch (1136:7): [True: 173, False: 7.82M]
  ------------------
 1137|   457k|      case Opcode::I8X16Swizzle:
  ------------------
  |  Branch (1137:7): [True: 2.72k, False: 7.82M]
  ------------------
 1138|   458k|      case Opcode::I8X16NarrowI16X8S:
  ------------------
  |  Branch (1138:7): [True: 519, False: 7.82M]
  ------------------
 1139|   458k|      case Opcode::I8X16NarrowI16X8U:
  ------------------
  |  Branch (1139:7): [True: 276, False: 7.82M]
  ------------------
 1140|   459k|      case Opcode::I16X8NarrowI32X4S:
  ------------------
  |  Branch (1140:7): [True: 860, False: 7.82M]
  ------------------
 1141|   459k|      case Opcode::I16X8NarrowI32X4U:
  ------------------
  |  Branch (1141:7): [True: 216, False: 7.82M]
  ------------------
 1142|   460k|      case Opcode::V128Andnot:
  ------------------
  |  Branch (1142:7): [True: 692, False: 7.82M]
  ------------------
 1143|   460k|      case Opcode::I8X16AvgrU:
  ------------------
  |  Branch (1143:7): [True: 418, False: 7.82M]
  ------------------
 1144|   460k|      case Opcode::I16X8AvgrU:
  ------------------
  |  Branch (1144:7): [True: 128, False: 7.82M]
  ------------------
 1145|   461k|      case Opcode::I16X8ExtmulLowI8X16S:
  ------------------
  |  Branch (1145:7): [True: 965, False: 7.82M]
  ------------------
 1146|   470k|      case Opcode::I16X8ExtmulHighI8X16S:
  ------------------
  |  Branch (1146:7): [True: 9.09k, False: 7.81M]
  ------------------
 1147|   471k|      case Opcode::I16X8ExtmulLowI8X16U:
  ------------------
  |  Branch (1147:7): [True: 822, False: 7.82M]
  ------------------
 1148|   473k|      case Opcode::I16X8ExtmulHighI8X16U:
  ------------------
  |  Branch (1148:7): [True: 1.70k, False: 7.82M]
  ------------------
 1149|   475k|      case Opcode::I32X4ExtmulLowI16X8S:
  ------------------
  |  Branch (1149:7): [True: 2.48k, False: 7.82M]
  ------------------
 1150|   477k|      case Opcode::I32X4ExtmulHighI16X8S:
  ------------------
  |  Branch (1150:7): [True: 2.03k, False: 7.82M]
  ------------------
 1151|   478k|      case Opcode::I32X4ExtmulLowI16X8U:
  ------------------
  |  Branch (1151:7): [True: 356, False: 7.82M]
  ------------------
 1152|   479k|      case Opcode::I32X4ExtmulHighI16X8U:
  ------------------
  |  Branch (1152:7): [True: 1.65k, False: 7.82M]
  ------------------
 1153|   480k|      case Opcode::I64X2ExtmulLowI32X4S:
  ------------------
  |  Branch (1153:7): [True: 339, False: 7.82M]
  ------------------
 1154|   480k|      case Opcode::I64X2ExtmulHighI32X4S:
  ------------------
  |  Branch (1154:7): [True: 277, False: 7.82M]
  ------------------
 1155|   480k|      case Opcode::I64X2ExtmulLowI32X4U:
  ------------------
  |  Branch (1155:7): [True: 294, False: 7.82M]
  ------------------
 1156|   481k|      case Opcode::I64X2ExtmulHighI32X4U:
  ------------------
  |  Branch (1156:7): [True: 1.05k, False: 7.82M]
  ------------------
 1157|   481k|      case Opcode::I16X8Q15mulrSatS:
  ------------------
  |  Branch (1157:7): [True: 57, False: 7.82M]
  ------------------
 1158|   481k|      case Opcode::I32X4DotI16X8S:
  ------------------
  |  Branch (1158:7): [True: 97, False: 7.82M]
  ------------------
 1159|   482k|      case Opcode::I8X16RelaxedSwizzle:
  ------------------
  |  Branch (1159:7): [True: 143, False: 7.82M]
  ------------------
 1160|   482k|      case Opcode::F32X4RelaxedMin:
  ------------------
  |  Branch (1160:7): [True: 319, False: 7.82M]
  ------------------
 1161|   482k|      case Opcode::F32X4RelaxedMax:
  ------------------
  |  Branch (1161:7): [True: 153, False: 7.82M]
  ------------------
 1162|   482k|      case Opcode::F64X2RelaxedMin:
  ------------------
  |  Branch (1162:7): [True: 279, False: 7.82M]
  ------------------
 1163|   482k|      case Opcode::F64X2RelaxedMax:
  ------------------
  |  Branch (1163:7): [True: 74, False: 7.82M]
  ------------------
 1164|   485k|      case Opcode::I16X8RelaxedQ15mulrS:
  ------------------
  |  Branch (1164:7): [True: 2.93k, False: 7.82M]
  ------------------
 1165|   486k|      case Opcode::I16X8DotI8X16I7X16S:
  ------------------
  |  Branch (1165:7): [True: 241, False: 7.82M]
  ------------------
 1166|   486k|        CALLBACK(OnBinaryExpr, opcode);
  ------------------
  |  |   61|   486k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   486k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   486k|  do {                         \
  |  |  |  |  |  |   42|   486k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 486k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   486k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   486k|               #member " callback failed")
  ------------------
 1167|   486k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|   486k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   486k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   486k|  do {                         \
  |  |  |  |  |  |   42|   486k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 486k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   486k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1168|   486k|        break;
 1169|       |
 1170|   486k|      case Opcode::I32Eq:
  ------------------
  |  Branch (1170:7): [True: 4.19k, False: 7.82M]
  ------------------
 1171|  9.13k|      case Opcode::I32Ne:
  ------------------
  |  Branch (1171:7): [True: 4.93k, False: 7.82M]
  ------------------
 1172|  13.1k|      case Opcode::I32LtS:
  ------------------
  |  Branch (1172:7): [True: 4.04k, False: 7.82M]
  ------------------
 1173|  23.9k|      case Opcode::I32LeS:
  ------------------
  |  Branch (1173:7): [True: 10.7k, False: 7.81M]
  ------------------
 1174|  39.3k|      case Opcode::I32LtU:
  ------------------
  |  Branch (1174:7): [True: 15.4k, False: 7.81M]
  ------------------
 1175|  42.9k|      case Opcode::I32LeU:
  ------------------
  |  Branch (1175:7): [True: 3.58k, False: 7.82M]
  ------------------
 1176|  46.9k|      case Opcode::I32GtS:
  ------------------
  |  Branch (1176:7): [True: 4.06k, False: 7.82M]
  ------------------
 1177|  54.3k|      case Opcode::I32GeS:
  ------------------
  |  Branch (1177:7): [True: 7.32k, False: 7.81M]
  ------------------
 1178|  56.8k|      case Opcode::I32GtU:
  ------------------
  |  Branch (1178:7): [True: 2.57k, False: 7.82M]
  ------------------
 1179|  58.4k|      case Opcode::I32GeU:
  ------------------
  |  Branch (1179:7): [True: 1.58k, False: 7.82M]
  ------------------
 1180|  61.8k|      case Opcode::I64Eq:
  ------------------
  |  Branch (1180:7): [True: 3.37k, False: 7.82M]
  ------------------
 1181|  65.0k|      case Opcode::I64Ne:
  ------------------
  |  Branch (1181:7): [True: 3.16k, False: 7.82M]
  ------------------
 1182|  67.2k|      case Opcode::I64LtS:
  ------------------
  |  Branch (1182:7): [True: 2.22k, False: 7.82M]
  ------------------
 1183|  69.5k|      case Opcode::I64LeS:
  ------------------
  |  Branch (1183:7): [True: 2.31k, False: 7.82M]
  ------------------
 1184|  78.3k|      case Opcode::I64LtU:
  ------------------
  |  Branch (1184:7): [True: 8.77k, False: 7.81M]
  ------------------
 1185|  80.1k|      case Opcode::I64LeU:
  ------------------
  |  Branch (1185:7): [True: 1.85k, False: 7.82M]
  ------------------
 1186|  90.0k|      case Opcode::I64GtS:
  ------------------
  |  Branch (1186:7): [True: 9.81k, False: 7.81M]
  ------------------
 1187|  92.5k|      case Opcode::I64GeS:
  ------------------
  |  Branch (1187:7): [True: 2.54k, False: 7.82M]
  ------------------
 1188|  96.0k|      case Opcode::I64GtU:
  ------------------
  |  Branch (1188:7): [True: 3.46k, False: 7.82M]
  ------------------
 1189|   105k|      case Opcode::I64GeU:
  ------------------
  |  Branch (1189:7): [True: 9.29k, False: 7.81M]
  ------------------
 1190|   128k|      case Opcode::F32Eq:
  ------------------
  |  Branch (1190:7): [True: 23.3k, False: 7.80M]
  ------------------
 1191|   129k|      case Opcode::F32Ne:
  ------------------
  |  Branch (1191:7): [True: 1.17k, False: 7.82M]
  ------------------
 1192|   148k|      case Opcode::F32Lt:
  ------------------
  |  Branch (1192:7): [True: 18.7k, False: 7.80M]
  ------------------
 1193|   154k|      case Opcode::F32Le:
  ------------------
  |  Branch (1193:7): [True: 5.87k, False: 7.82M]
  ------------------
 1194|   162k|      case Opcode::F32Gt:
  ------------------
  |  Branch (1194:7): [True: 8.02k, False: 7.81M]
  ------------------
 1195|   166k|      case Opcode::F32Ge:
  ------------------
  |  Branch (1195:7): [True: 4.44k, False: 7.82M]
  ------------------
 1196|   206k|      case Opcode::F64Eq:
  ------------------
  |  Branch (1196:7): [True: 39.4k, False: 7.78M]
  ------------------
 1197|   208k|      case Opcode::F64Ne:
  ------------------
  |  Branch (1197:7): [True: 2.64k, False: 7.82M]
  ------------------
 1198|   215k|      case Opcode::F64Lt:
  ------------------
  |  Branch (1198:7): [True: 6.52k, False: 7.81M]
  ------------------
 1199|   228k|      case Opcode::F64Le:
  ------------------
  |  Branch (1199:7): [True: 12.8k, False: 7.81M]
  ------------------
 1200|   252k|      case Opcode::F64Gt:
  ------------------
  |  Branch (1200:7): [True: 24.3k, False: 7.80M]
  ------------------
 1201|   261k|      case Opcode::F64Ge:
  ------------------
  |  Branch (1201:7): [True: 8.47k, False: 7.81M]
  ------------------
 1202|   262k|      case Opcode::I8X16Eq:
  ------------------
  |  Branch (1202:7): [True: 1.38k, False: 7.82M]
  ------------------
 1203|   264k|      case Opcode::I16X8Eq:
  ------------------
  |  Branch (1203:7): [True: 1.52k, False: 7.82M]
  ------------------
 1204|   264k|      case Opcode::I32X4Eq:
  ------------------
  |  Branch (1204:7): [True: 463, False: 7.82M]
  ------------------
 1205|   264k|      case Opcode::I64X2Eq:
  ------------------
  |  Branch (1205:7): [True: 98, False: 7.82M]
  ------------------
 1206|   266k|      case Opcode::F32X4Eq:
  ------------------
  |  Branch (1206:7): [True: 1.39k, False: 7.82M]
  ------------------
 1207|   266k|      case Opcode::F64X2Eq:
  ------------------
  |  Branch (1207:7): [True: 392, False: 7.82M]
  ------------------
 1208|   266k|      case Opcode::I8X16Ne:
  ------------------
  |  Branch (1208:7): [True: 520, False: 7.82M]
  ------------------
 1209|   267k|      case Opcode::I16X8Ne:
  ------------------
  |  Branch (1209:7): [True: 428, False: 7.82M]
  ------------------
 1210|   269k|      case Opcode::I32X4Ne:
  ------------------
  |  Branch (1210:7): [True: 2.06k, False: 7.82M]
  ------------------
 1211|   270k|      case Opcode::I64X2Ne:
  ------------------
  |  Branch (1211:7): [True: 964, False: 7.82M]
  ------------------
 1212|   270k|      case Opcode::F32X4Ne:
  ------------------
  |  Branch (1212:7): [True: 485, False: 7.82M]
  ------------------
 1213|   272k|      case Opcode::F64X2Ne:
  ------------------
  |  Branch (1213:7): [True: 1.97k, False: 7.82M]
  ------------------
 1214|   273k|      case Opcode::I8X16LtS:
  ------------------
  |  Branch (1214:7): [True: 225, False: 7.82M]
  ------------------
 1215|   273k|      case Opcode::I8X16LtU:
  ------------------
  |  Branch (1215:7): [True: 468, False: 7.82M]
  ------------------
 1216|   274k|      case Opcode::I16X8LtS:
  ------------------
  |  Branch (1216:7): [True: 1.06k, False: 7.82M]
  ------------------
 1217|   276k|      case Opcode::I16X8LtU:
  ------------------
  |  Branch (1217:7): [True: 1.77k, False: 7.82M]
  ------------------
 1218|   279k|      case Opcode::I32X4LtS:
  ------------------
  |  Branch (1218:7): [True: 3.50k, False: 7.82M]
  ------------------
 1219|   280k|      case Opcode::I32X4LtU:
  ------------------
  |  Branch (1219:7): [True: 859, False: 7.82M]
  ------------------
 1220|   281k|      case Opcode::I64X2LtS:
  ------------------
  |  Branch (1220:7): [True: 258, False: 7.82M]
  ------------------
 1221|   281k|      case Opcode::F32X4Lt:
  ------------------
  |  Branch (1221:7): [True: 523, False: 7.82M]
  ------------------
 1222|   296k|      case Opcode::F64X2Lt:
  ------------------
  |  Branch (1222:7): [True: 14.7k, False: 7.81M]
  ------------------
 1223|   298k|      case Opcode::I8X16LeS:
  ------------------
  |  Branch (1223:7): [True: 1.86k, False: 7.82M]
  ------------------
 1224|   298k|      case Opcode::I8X16LeU:
  ------------------
  |  Branch (1224:7): [True: 258, False: 7.82M]
  ------------------
 1225|   298k|      case Opcode::I16X8LeS:
  ------------------
  |  Branch (1225:7): [True: 320, False: 7.82M]
  ------------------
 1226|   299k|      case Opcode::I16X8LeU:
  ------------------
  |  Branch (1226:7): [True: 1.17k, False: 7.82M]
  ------------------
 1227|   301k|      case Opcode::I32X4LeS:
  ------------------
  |  Branch (1227:7): [True: 1.15k, False: 7.82M]
  ------------------
 1228|   302k|      case Opcode::I32X4LeU:
  ------------------
  |  Branch (1228:7): [True: 1.02k, False: 7.82M]
  ------------------
 1229|   302k|      case Opcode::I64X2LeS:
  ------------------
  |  Branch (1229:7): [True: 343, False: 7.82M]
  ------------------
 1230|   303k|      case Opcode::F32X4Le:
  ------------------
  |  Branch (1230:7): [True: 578, False: 7.82M]
  ------------------
 1231|   303k|      case Opcode::F64X2Le:
  ------------------
  |  Branch (1231:7): [True: 402, False: 7.82M]
  ------------------
 1232|   303k|      case Opcode::I8X16GtS:
  ------------------
  |  Branch (1232:7): [True: 551, False: 7.82M]
  ------------------
 1233|   305k|      case Opcode::I8X16GtU:
  ------------------
  |  Branch (1233:7): [True: 1.13k, False: 7.82M]
  ------------------
 1234|   306k|      case Opcode::I16X8GtS:
  ------------------
  |  Branch (1234:7): [True: 900, False: 7.82M]
  ------------------
 1235|   307k|      case Opcode::I16X8GtU:
  ------------------
  |  Branch (1235:7): [True: 1.24k, False: 7.82M]
  ------------------
 1236|   308k|      case Opcode::I32X4GtS:
  ------------------
  |  Branch (1236:7): [True: 1.17k, False: 7.82M]
  ------------------
 1237|   311k|      case Opcode::I32X4GtU:
  ------------------
  |  Branch (1237:7): [True: 3.03k, False: 7.82M]
  ------------------
 1238|   312k|      case Opcode::I64X2GtS:
  ------------------
  |  Branch (1238:7): [True: 1.49k, False: 7.82M]
  ------------------
 1239|   314k|      case Opcode::F32X4Gt:
  ------------------
  |  Branch (1239:7): [True: 1.53k, False: 7.82M]
  ------------------
 1240|   314k|      case Opcode::F64X2Gt:
  ------------------
  |  Branch (1240:7): [True: 208, False: 7.82M]
  ------------------
 1241|   315k|      case Opcode::I8X16GeS:
  ------------------
  |  Branch (1241:7): [True: 1.06k, False: 7.82M]
  ------------------
 1242|   316k|      case Opcode::I8X16GeU:
  ------------------
  |  Branch (1242:7): [True: 599, False: 7.82M]
  ------------------
 1243|   317k|      case Opcode::I16X8GeS:
  ------------------
  |  Branch (1243:7): [True: 644, False: 7.82M]
  ------------------
 1244|   317k|      case Opcode::I16X8GeU:
  ------------------
  |  Branch (1244:7): [True: 795, False: 7.82M]
  ------------------
 1245|   317k|      case Opcode::I32X4GeS:
  ------------------
  |  Branch (1245:7): [True: 194, False: 7.82M]
  ------------------
 1246|   318k|      case Opcode::I32X4GeU:
  ------------------
  |  Branch (1246:7): [True: 407, False: 7.82M]
  ------------------
 1247|   318k|      case Opcode::I64X2GeS:
  ------------------
  |  Branch (1247:7): [True: 278, False: 7.82M]
  ------------------
 1248|   319k|      case Opcode::F32X4Ge:
  ------------------
  |  Branch (1248:7): [True: 655, False: 7.82M]
  ------------------
 1249|   320k|      case Opcode::F64X2Ge:
  ------------------
  |  Branch (1249:7): [True: 1.40k, False: 7.82M]
  ------------------
 1250|   320k|        CALLBACK(OnCompareExpr, opcode);
  ------------------
  |  |   61|   320k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   320k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   320k|  do {                         \
  |  |  |  |  |  |   42|   320k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 320k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   320k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   320k|               #member " callback failed")
  ------------------
 1251|   320k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|   320k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   320k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   320k|  do {                         \
  |  |  |  |  |  |   42|   320k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 320k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   320k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1252|   320k|        break;
 1253|       |
 1254|   320k|      case Opcode::I32Clz:
  ------------------
  |  Branch (1254:7): [True: 14.6k, False: 7.81M]
  ------------------
 1255|  18.1k|      case Opcode::I32Ctz:
  ------------------
  |  Branch (1255:7): [True: 3.43k, False: 7.82M]
  ------------------
 1256|  38.7k|      case Opcode::I32Popcnt:
  ------------------
  |  Branch (1256:7): [True: 20.6k, False: 7.80M]
  ------------------
 1257|  57.9k|      case Opcode::I64Clz:
  ------------------
  |  Branch (1257:7): [True: 19.1k, False: 7.80M]
  ------------------
 1258|  62.2k|      case Opcode::I64Ctz:
  ------------------
  |  Branch (1258:7): [True: 4.27k, False: 7.82M]
  ------------------
 1259|  70.1k|      case Opcode::I64Popcnt:
  ------------------
  |  Branch (1259:7): [True: 7.99k, False: 7.81M]
  ------------------
 1260|  73.5k|      case Opcode::F32Abs:
  ------------------
  |  Branch (1260:7): [True: 3.31k, False: 7.82M]
  ------------------
 1261|  75.7k|      case Opcode::F32Neg:
  ------------------
  |  Branch (1261:7): [True: 2.20k, False: 7.82M]
  ------------------
 1262|  78.1k|      case Opcode::F32Ceil:
  ------------------
  |  Branch (1262:7): [True: 2.40k, False: 7.82M]
  ------------------
 1263|  85.3k|      case Opcode::F32Floor:
  ------------------
  |  Branch (1263:7): [True: 7.18k, False: 7.81M]
  ------------------
 1264|  86.5k|      case Opcode::F32Trunc:
  ------------------
  |  Branch (1264:7): [True: 1.28k, False: 7.82M]
  ------------------
 1265|  91.3k|      case Opcode::F32Nearest:
  ------------------
  |  Branch (1265:7): [True: 4.75k, False: 7.82M]
  ------------------
 1266|  94.1k|      case Opcode::F32Sqrt:
  ------------------
  |  Branch (1266:7): [True: 2.76k, False: 7.82M]
  ------------------
 1267|  99.6k|      case Opcode::F64Abs:
  ------------------
  |  Branch (1267:7): [True: 5.52k, False: 7.82M]
  ------------------
 1268|   100k|      case Opcode::F64Neg:
  ------------------
  |  Branch (1268:7): [True: 578, False: 7.82M]
  ------------------
 1269|   103k|      case Opcode::F64Ceil:
  ------------------
  |  Branch (1269:7): [True: 3.67k, False: 7.82M]
  ------------------
 1270|   105k|      case Opcode::F64Floor:
  ------------------
  |  Branch (1270:7): [True: 1.22k, False: 7.82M]
  ------------------
 1271|   106k|      case Opcode::F64Trunc:
  ------------------
  |  Branch (1271:7): [True: 1.29k, False: 7.82M]
  ------------------
 1272|   108k|      case Opcode::F64Nearest:
  ------------------
  |  Branch (1272:7): [True: 2.34k, False: 7.82M]
  ------------------
 1273|   112k|      case Opcode::F64Sqrt:
  ------------------
  |  Branch (1273:7): [True: 3.65k, False: 7.82M]
  ------------------
 1274|   112k|      case Opcode::I8X16Splat:
  ------------------
  |  Branch (1274:7): [True: 326, False: 7.82M]
  ------------------
 1275|   112k|      case Opcode::I16X8Splat:
  ------------------
  |  Branch (1275:7): [True: 163, False: 7.82M]
  ------------------
 1276|   113k|      case Opcode::I32X4Splat:
  ------------------
  |  Branch (1276:7): [True: 912, False: 7.82M]
  ------------------
 1277|   116k|      case Opcode::I64X2Splat:
  ------------------
  |  Branch (1277:7): [True: 2.93k, False: 7.82M]
  ------------------
 1278|   117k|      case Opcode::F32X4Splat:
  ------------------
  |  Branch (1278:7): [True: 1.26k, False: 7.82M]
  ------------------
 1279|   118k|      case Opcode::F64X2Splat:
  ------------------
  |  Branch (1279:7): [True: 229, False: 7.82M]
  ------------------
 1280|   119k|      case Opcode::I8X16Neg:
  ------------------
  |  Branch (1280:7): [True: 1.36k, False: 7.82M]
  ------------------
 1281|   120k|      case Opcode::I16X8Neg:
  ------------------
  |  Branch (1281:7): [True: 501, False: 7.82M]
  ------------------
 1282|   120k|      case Opcode::I32X4Neg:
  ------------------
  |  Branch (1282:7): [True: 161, False: 7.82M]
  ------------------
 1283|   120k|      case Opcode::I64X2Neg:
  ------------------
  |  Branch (1283:7): [True: 658, False: 7.82M]
  ------------------
 1284|   122k|      case Opcode::V128Not:
  ------------------
  |  Branch (1284:7): [True: 1.68k, False: 7.82M]
  ------------------
 1285|   123k|      case Opcode::V128AnyTrue:
  ------------------
  |  Branch (1285:7): [True: 1.28k, False: 7.82M]
  ------------------
 1286|   126k|      case Opcode::I8X16Bitmask:
  ------------------
  |  Branch (1286:7): [True: 2.50k, False: 7.82M]
  ------------------
 1287|   126k|      case Opcode::I16X8Bitmask:
  ------------------
  |  Branch (1287:7): [True: 488, False: 7.82M]
  ------------------
 1288|   127k|      case Opcode::I32X4Bitmask:
  ------------------
  |  Branch (1288:7): [True: 503, False: 7.82M]
  ------------------
 1289|   128k|      case Opcode::I64X2Bitmask:
  ------------------
  |  Branch (1289:7): [True: 671, False: 7.82M]
  ------------------
 1290|   128k|      case Opcode::I8X16AllTrue:
  ------------------
  |  Branch (1290:7): [True: 220, False: 7.82M]
  ------------------
 1291|   129k|      case Opcode::I16X8AllTrue:
  ------------------
  |  Branch (1291:7): [True: 1.12k, False: 7.82M]
  ------------------
 1292|   131k|      case Opcode::I32X4AllTrue:
  ------------------
  |  Branch (1292:7): [True: 1.65k, False: 7.82M]
  ------------------
 1293|   131k|      case Opcode::I64X2AllTrue:
  ------------------
  |  Branch (1293:7): [True: 403, False: 7.82M]
  ------------------
 1294|   132k|      case Opcode::F32X4Ceil:
  ------------------
  |  Branch (1294:7): [True: 1.07k, False: 7.82M]
  ------------------
 1295|   133k|      case Opcode::F64X2Ceil:
  ------------------
  |  Branch (1295:7): [True: 773, False: 7.82M]
  ------------------
 1296|   136k|      case Opcode::F32X4Floor:
  ------------------
  |  Branch (1296:7): [True: 2.78k, False: 7.82M]
  ------------------
 1297|   137k|      case Opcode::F64X2Floor:
  ------------------
  |  Branch (1297:7): [True: 1.02k, False: 7.82M]
  ------------------
 1298|   137k|      case Opcode::F32X4Trunc:
  ------------------
  |  Branch (1298:7): [True: 690, False: 7.82M]
  ------------------
 1299|   141k|      case Opcode::F64X2Trunc:
  ------------------
  |  Branch (1299:7): [True: 4.00k, False: 7.82M]
  ------------------
 1300|   142k|      case Opcode::F32X4Nearest:
  ------------------
  |  Branch (1300:7): [True: 1.07k, False: 7.82M]
  ------------------
 1301|   143k|      case Opcode::F64X2Nearest:
  ------------------
  |  Branch (1301:7): [True: 744, False: 7.82M]
  ------------------
 1302|   144k|      case Opcode::F32X4Neg:
  ------------------
  |  Branch (1302:7): [True: 708, False: 7.82M]
  ------------------
 1303|   145k|      case Opcode::F64X2Neg:
  ------------------
  |  Branch (1303:7): [True: 1.35k, False: 7.82M]
  ------------------
 1304|   146k|      case Opcode::F32X4Abs:
  ------------------
  |  Branch (1304:7): [True: 406, False: 7.82M]
  ------------------
 1305|   146k|      case Opcode::F64X2Abs:
  ------------------
  |  Branch (1305:7): [True: 195, False: 7.82M]
  ------------------
 1306|   146k|      case Opcode::F32X4Sqrt:
  ------------------
  |  Branch (1306:7): [True: 242, False: 7.82M]
  ------------------
 1307|   151k|      case Opcode::F64X2Sqrt:
  ------------------
  |  Branch (1307:7): [True: 4.92k, False: 7.82M]
  ------------------
 1308|   151k|      case Opcode::I16X8ExtendLowI8X16S:
  ------------------
  |  Branch (1308:7): [True: 228, False: 7.82M]
  ------------------
 1309|   151k|      case Opcode::I16X8ExtendHighI8X16S:
  ------------------
  |  Branch (1309:7): [True: 146, False: 7.82M]
  ------------------
 1310|   153k|      case Opcode::I16X8ExtendLowI8X16U:
  ------------------
  |  Branch (1310:7): [True: 1.20k, False: 7.82M]
  ------------------
 1311|   153k|      case Opcode::I16X8ExtendHighI8X16U:
  ------------------
  |  Branch (1311:7): [True: 326, False: 7.82M]
  ------------------
 1312|   154k|      case Opcode::I32X4ExtendLowI16X8S:
  ------------------
  |  Branch (1312:7): [True: 988, False: 7.82M]
  ------------------
 1313|   154k|      case Opcode::I32X4ExtendHighI16X8S:
  ------------------
  |  Branch (1313:7): [True: 565, False: 7.82M]
  ------------------
 1314|   154k|      case Opcode::I32X4ExtendLowI16X8U:
  ------------------
  |  Branch (1314:7): [True: 38, False: 7.82M]
  ------------------
 1315|   154k|      case Opcode::I32X4ExtendHighI16X8U:
  ------------------
  |  Branch (1315:7): [True: 58, False: 7.82M]
  ------------------
 1316|   155k|      case Opcode::I64X2ExtendLowI32X4S:
  ------------------
  |  Branch (1316:7): [True: 126, False: 7.82M]
  ------------------
 1317|   155k|      case Opcode::I64X2ExtendHighI32X4S:
  ------------------
  |  Branch (1317:7): [True: 596, False: 7.82M]
  ------------------
 1318|   155k|      case Opcode::I64X2ExtendLowI32X4U:
  ------------------
  |  Branch (1318:7): [True: 279, False: 7.82M]
  ------------------
 1319|   156k|      case Opcode::I64X2ExtendHighI32X4U:
  ------------------
  |  Branch (1319:7): [True: 786, False: 7.82M]
  ------------------
 1320|   158k|      case Opcode::I8X16Abs:
  ------------------
  |  Branch (1320:7): [True: 1.82k, False: 7.82M]
  ------------------
 1321|   158k|      case Opcode::I16X8Abs:
  ------------------
  |  Branch (1321:7): [True: 192, False: 7.82M]
  ------------------
 1322|   159k|      case Opcode::I32X4Abs:
  ------------------
  |  Branch (1322:7): [True: 411, False: 7.82M]
  ------------------
 1323|   159k|      case Opcode::I64X2Abs:
  ------------------
  |  Branch (1323:7): [True: 200, False: 7.82M]
  ------------------
 1324|   161k|      case Opcode::I8X16Popcnt:
  ------------------
  |  Branch (1324:7): [True: 2.03k, False: 7.82M]
  ------------------
 1325|   162k|      case Opcode::I16X8ExtaddPairwiseI8X16S:
  ------------------
  |  Branch (1325:7): [True: 600, False: 7.82M]
  ------------------
 1326|   162k|      case Opcode::I16X8ExtaddPairwiseI8X16U:
  ------------------
  |  Branch (1326:7): [True: 809, False: 7.82M]
  ------------------
 1327|   164k|      case Opcode::I32X4ExtaddPairwiseI16X8S:
  ------------------
  |  Branch (1327:7): [True: 1.22k, False: 7.82M]
  ------------------
 1328|   164k|      case Opcode::I32X4ExtaddPairwiseI16X8U:
  ------------------
  |  Branch (1328:7): [True: 354, False: 7.82M]
  ------------------
 1329|   164k|      case Opcode::I32X4RelaxedTruncF32X4S:
  ------------------
  |  Branch (1329:7): [True: 6, False: 7.82M]
  ------------------
 1330|   164k|      case Opcode::I32X4RelaxedTruncF32X4U:
  ------------------
  |  Branch (1330:7): [True: 127, False: 7.82M]
  ------------------
 1331|   165k|      case Opcode::I32X4RelaxedTruncF64X2SZero:
  ------------------
  |  Branch (1331:7): [True: 876, False: 7.82M]
  ------------------
 1332|   165k|      case Opcode::I32X4RelaxedTruncF64X2UZero:
  ------------------
  |  Branch (1332:7): [True: 106, False: 7.82M]
  ------------------
 1333|   165k|        CALLBACK(OnUnaryExpr, opcode);
  ------------------
  |  |   61|   165k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   165k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   165k|  do {                         \
  |  |  |  |  |  |   42|   165k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 165k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   165k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   165k|               #member " callback failed")
  ------------------
 1334|   165k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|   165k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   165k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   165k|  do {                         \
  |  |  |  |  |  |   42|   165k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 165k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   165k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1335|   165k|        break;
 1336|       |
 1337|   165k|      case Opcode::V128BitSelect:
  ------------------
  |  Branch (1337:7): [True: 1.40k, False: 7.82M]
  ------------------
 1338|  1.53k|      case Opcode::F32X4RelaxedMadd:
  ------------------
  |  Branch (1338:7): [True: 130, False: 7.82M]
  ------------------
 1339|  1.70k|      case Opcode::F32X4RelaxedNmadd:
  ------------------
  |  Branch (1339:7): [True: 170, False: 7.82M]
  ------------------
 1340|  2.26k|      case Opcode::F64X2RelaxedMadd:
  ------------------
  |  Branch (1340:7): [True: 560, False: 7.82M]
  ------------------
 1341|  2.31k|      case Opcode::F64X2RelaxedNmadd:
  ------------------
  |  Branch (1341:7): [True: 51, False: 7.82M]
  ------------------
 1342|  3.76k|      case Opcode::I8X16RelaxedLaneSelect:
  ------------------
  |  Branch (1342:7): [True: 1.45k, False: 7.82M]
  ------------------
 1343|  3.86k|      case Opcode::I16X8RelaxedLaneSelect:
  ------------------
  |  Branch (1343:7): [True: 101, False: 7.82M]
  ------------------
 1344|  4.07k|      case Opcode::I32X4RelaxedLaneSelect:
  ------------------
  |  Branch (1344:7): [True: 212, False: 7.82M]
  ------------------
 1345|  5.37k|      case Opcode::I64X2RelaxedLaneSelect:
  ------------------
  |  Branch (1345:7): [True: 1.30k, False: 7.82M]
  ------------------
 1346|  5.48k|      case Opcode::I32X4DotI8X16I7X16AddS:
  ------------------
  |  Branch (1346:7): [True: 106, False: 7.82M]
  ------------------
 1347|  5.48k|        CALLBACK(OnTernaryExpr, opcode);
  ------------------
  |  |   61|  5.48k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.48k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.48k|  do {                         \
  |  |  |  |  |  |   42|  5.48k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.48k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.48k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.48k|               #member " callback failed")
  ------------------
 1348|  5.48k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  5.48k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  5.48k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.48k|  do {                         \
  |  |  |  |  |  |   42|  5.48k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.48k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.48k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1349|  5.48k|        break;
 1350|       |
 1351|  5.48k|      case Opcode::I8X16ExtractLaneS:
  ------------------
  |  Branch (1351:7): [True: 292, False: 7.82M]
  ------------------
 1352|    375|      case Opcode::I8X16ExtractLaneU:
  ------------------
  |  Branch (1352:7): [True: 83, False: 7.82M]
  ------------------
 1353|    474|      case Opcode::I16X8ExtractLaneS:
  ------------------
  |  Branch (1353:7): [True: 99, False: 7.82M]
  ------------------
 1354|    590|      case Opcode::I16X8ExtractLaneU:
  ------------------
  |  Branch (1354:7): [True: 116, False: 7.82M]
  ------------------
 1355|    847|      case Opcode::I32X4ExtractLane:
  ------------------
  |  Branch (1355:7): [True: 257, False: 7.82M]
  ------------------
 1356|  2.07k|      case Opcode::I64X2ExtractLane:
  ------------------
  |  Branch (1356:7): [True: 1.23k, False: 7.82M]
  ------------------
 1357|  6.60k|      case Opcode::F32X4ExtractLane:
  ------------------
  |  Branch (1357:7): [True: 4.52k, False: 7.82M]
  ------------------
 1358|  9.93k|      case Opcode::F64X2ExtractLane:
  ------------------
  |  Branch (1358:7): [True: 3.33k, False: 7.82M]
  ------------------
 1359|  10.4k|      case Opcode::I8X16ReplaceLane:
  ------------------
  |  Branch (1359:7): [True: 514, False: 7.82M]
  ------------------
 1360|  11.3k|      case Opcode::I16X8ReplaceLane:
  ------------------
  |  Branch (1360:7): [True: 861, False: 7.82M]
  ------------------
 1361|  11.9k|      case Opcode::I32X4ReplaceLane:
  ------------------
  |  Branch (1361:7): [True: 630, False: 7.82M]
  ------------------
 1362|  12.7k|      case Opcode::I64X2ReplaceLane:
  ------------------
  |  Branch (1362:7): [True: 810, False: 7.82M]
  ------------------
 1363|  13.5k|      case Opcode::F32X4ReplaceLane:
  ------------------
  |  Branch (1363:7): [True: 775, False: 7.82M]
  ------------------
 1364|  14.6k|      case Opcode::F64X2ReplaceLane: {
  ------------------
  |  Branch (1364:7): [True: 1.14k, False: 7.82M]
  ------------------
 1365|  14.6k|        uint8_t lane_val;
 1366|  14.6k|        CHECK_RESULT(ReadU8(&lane_val, "Lane idx"));
  ------------------
  |  |   55|  14.6k|  do {                              \
  |  |   56|  14.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 70, False: 14.6k]
  |  |  ------------------
  |  |   57|     70|      return ::wabt::Result::Error; \
  |  |   58|     70|    }                               \
  |  |   59|  14.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1367|  14.6k|        CALLBACK(OnSimdLaneOpExpr, opcode, lane_val);
  ------------------
  |  |   61|  14.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  14.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  14.6k|  do {                         \
  |  |  |  |  |  |   42|  14.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 14.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  14.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  14.6k|               #member " callback failed")
  ------------------
 1368|  14.6k|        CALLBACK(OnOpcodeUint64, lane_val);
  ------------------
  |  |   61|  14.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  14.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  14.6k|  do {                         \
  |  |  |  |  |  |   42|  14.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 14.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  14.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  14.6k|               #member " callback failed")
  ------------------
 1369|  14.6k|        break;
 1370|  14.6k|      }
 1371|       |
 1372|  14.6k|      case Opcode::I8X16Shuffle: {
  ------------------
  |  Branch (1372:7): [True: 1.77k, False: 7.82M]
  ------------------
 1373|  1.77k|        v128 value;
 1374|  1.77k|        CHECK_RESULT(ReadV128(&value, "Lane idx [16]"));
  ------------------
  |  |   55|  1.77k|  do {                              \
  |  |   56|  1.77k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 25, False: 1.75k]
  |  |  ------------------
  |  |   57|     25|      return ::wabt::Result::Error; \
  |  |   58|     25|    }                               \
  |  |   59|  1.77k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1375|  1.75k|        CALLBACK(OnSimdShuffleOpExpr, opcode, value);
  ------------------
  |  |   61|  1.75k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.75k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.75k|  do {                         \
  |  |  |  |  |  |   42|  1.75k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.75k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.75k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.75k|               #member " callback failed")
  ------------------
 1376|  1.75k|        CALLBACK(OnOpcodeV128, value);
  ------------------
  |  |   61|  1.75k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.75k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.75k|  do {                         \
  |  |  |  |  |  |   42|  1.75k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.75k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.75k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.75k|               #member " callback failed")
  ------------------
 1377|  1.75k|        break;
 1378|  1.75k|      }
 1379|       |
 1380|  1.75k|      case Opcode::V128Load8Splat:
  ------------------
  |  Branch (1380:7): [True: 1.00k, False: 7.82M]
  ------------------
 1381|  2.84k|      case Opcode::V128Load16Splat:
  ------------------
  |  Branch (1381:7): [True: 1.84k, False: 7.82M]
  ------------------
 1382|  5.10k|      case Opcode::V128Load32Splat:
  ------------------
  |  Branch (1382:7): [True: 2.25k, False: 7.82M]
  ------------------
 1383|  7.71k|      case Opcode::V128Load64Splat: {
  ------------------
  |  Branch (1383:7): [True: 2.61k, False: 7.82M]
  ------------------
 1384|  7.71k|        Address alignment_log2;
 1385|  7.71k|        Index memidx;
 1386|  7.71k|        Address offset;
 1387|  7.71k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  7.71k|  do {                              \
  |  |   56|  7.71k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 40, False: 7.67k]
  |  |  ------------------
  |  |   57|     40|      return ::wabt::Result::Error; \
  |  |   58|     40|    }                               \
  |  |   59|  7.71k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1388|  7.71k|                                     "load alignment", "load memidx",
 1389|  7.71k|                                     "load offset"));
 1390|  7.67k|        CALLBACK(OnLoadSplatExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  7.67k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  7.67k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.67k|  do {                         \
  |  |  |  |  |  |   42|  7.67k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.67k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.67k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  7.67k|               #member " callback failed")
  ------------------
 1391|  7.67k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  7.67k|  do {                              \
  |  |   56|  7.67k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 7.67k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  7.67k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1392|  7.67k|        break;
 1393|  7.67k|      }
 1394|  7.67k|      case Opcode::V128Load8Lane:
  ------------------
  |  Branch (1394:7): [True: 1.05k, False: 7.82M]
  ------------------
 1395|  4.81k|      case Opcode::V128Load16Lane:
  ------------------
  |  Branch (1395:7): [True: 3.76k, False: 7.82M]
  ------------------
 1396|  5.96k|      case Opcode::V128Load32Lane:
  ------------------
  |  Branch (1396:7): [True: 1.15k, False: 7.82M]
  ------------------
 1397|  7.49k|      case Opcode::V128Load64Lane: {
  ------------------
  |  Branch (1397:7): [True: 1.53k, False: 7.82M]
  ------------------
 1398|  7.49k|        Address alignment_log2;
 1399|  7.49k|        Index memidx;
 1400|  7.49k|        Address offset;
 1401|  7.49k|        uint8_t lane_val;
 1402|  7.49k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  7.49k|  do {                              \
  |  |   56|  7.49k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 37, False: 7.45k]
  |  |  ------------------
  |  |   57|     37|      return ::wabt::Result::Error; \
  |  |   58|     37|    }                               \
  |  |   59|  7.49k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1403|  7.49k|                                     "load alignment", "load memidx",
 1404|  7.49k|                                     "load offset", &lane_val));
 1405|  7.45k|        CALLBACK(OnSimdLoadLaneExpr, opcode, memidx, alignment_log2, offset,
  ------------------
  |  |   61|  7.45k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  7.45k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.45k|  do {                         \
  |  |  |  |  |  |   42|  7.45k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.45k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.45k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  7.45k|               #member " callback failed")
  ------------------
 1406|  7.45k|                 lane_val);
 1407|  7.45k|        CHECK_RESULT(
  ------------------
  |  |   55|  7.45k|  do {                              \
  |  |   56|  7.45k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 7.45k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  7.45k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1408|  7.45k|            CallbackMemLocation(&alignment_log2, &memidx, &offset, &lane_val));
 1409|  7.45k|        break;
 1410|  7.45k|      }
 1411|  7.45k|      case Opcode::V128Store8Lane:
  ------------------
  |  Branch (1411:7): [True: 410, False: 7.82M]
  ------------------
 1412|    905|      case Opcode::V128Store16Lane:
  ------------------
  |  Branch (1412:7): [True: 495, False: 7.82M]
  ------------------
 1413|  2.14k|      case Opcode::V128Store32Lane:
  ------------------
  |  Branch (1413:7): [True: 1.24k, False: 7.82M]
  ------------------
 1414|  7.87k|      case Opcode::V128Store64Lane: {
  ------------------
  |  Branch (1414:7): [True: 5.72k, False: 7.82M]
  ------------------
 1415|  7.87k|        Address alignment_log2;
 1416|  7.87k|        Index memidx;
 1417|  7.87k|        Address offset;
 1418|  7.87k|        uint8_t lane_val;
 1419|  7.87k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  7.87k|  do {                              \
  |  |   56|  7.87k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 49, False: 7.82k]
  |  |  ------------------
  |  |   57|     49|      return ::wabt::Result::Error; \
  |  |   58|     49|    }                               \
  |  |   59|  7.87k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1420|  7.87k|                                     "store alignment", "store memidx",
 1421|  7.87k|                                     "store offset", &lane_val));
 1422|  7.82k|        CALLBACK(OnSimdStoreLaneExpr, opcode, memidx, alignment_log2, offset,
  ------------------
  |  |   61|  7.82k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  7.82k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.82k|  do {                         \
  |  |  |  |  |  |   42|  7.82k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.82k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.82k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  7.82k|               #member " callback failed")
  ------------------
 1423|  7.82k|                 lane_val);
 1424|  7.82k|        CHECK_RESULT(
  ------------------
  |  |   55|  7.82k|  do {                              \
  |  |   56|  7.82k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 7.82k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  7.82k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1425|  7.82k|            CallbackMemLocation(&alignment_log2, &memidx, &offset, &lane_val));
 1426|  7.82k|        break;
 1427|  7.82k|      }
 1428|  7.82k|      case Opcode::V128Load32Zero:
  ------------------
  |  Branch (1428:7): [True: 522, False: 7.82M]
  ------------------
 1429|  2.54k|      case Opcode::V128Load64Zero: {
  ------------------
  |  Branch (1429:7): [True: 2.01k, False: 7.82M]
  ------------------
 1430|  2.54k|        Address alignment_log2;
 1431|  2.54k|        Index memidx;
 1432|  2.54k|        Address offset;
 1433|  2.54k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  2.54k|  do {                              \
  |  |   56|  2.54k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 31, False: 2.50k]
  |  |  ------------------
  |  |   57|     31|      return ::wabt::Result::Error; \
  |  |   58|     31|    }                               \
  |  |   59|  2.54k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1434|  2.54k|                                     "load alignment", "load memidx",
 1435|  2.54k|                                     "load offset"));
 1436|  2.50k|        CALLBACK(OnLoadZeroExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  2.50k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.50k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.50k|  do {                         \
  |  |  |  |  |  |   42|  2.50k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.50k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.50k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.50k|               #member " callback failed")
  ------------------
 1437|  2.50k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  2.50k|  do {                              \
  |  |   56|  2.50k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.50k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.50k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1438|  2.50k|        break;
 1439|  2.50k|      }
 1440|  2.50k|      case Opcode::I32TruncF32S:
  ------------------
  |  Branch (1440:7): [True: 864, False: 7.82M]
  ------------------
 1441|  2.84k|      case Opcode::I32TruncF64S:
  ------------------
  |  Branch (1441:7): [True: 1.98k, False: 7.82M]
  ------------------
 1442|  6.07k|      case Opcode::I32TruncF32U:
  ------------------
  |  Branch (1442:7): [True: 3.23k, False: 7.82M]
  ------------------
 1443|  19.7k|      case Opcode::I32TruncF64U:
  ------------------
  |  Branch (1443:7): [True: 13.6k, False: 7.81M]
  ------------------
 1444|  23.8k|      case Opcode::I32WrapI64:
  ------------------
  |  Branch (1444:7): [True: 4.12k, False: 7.82M]
  ------------------
 1445|  26.5k|      case Opcode::I64TruncF32S:
  ------------------
  |  Branch (1445:7): [True: 2.73k, False: 7.82M]
  ------------------
 1446|  27.2k|      case Opcode::I64TruncF64S:
  ------------------
  |  Branch (1446:7): [True: 700, False: 7.82M]
  ------------------
 1447|  30.0k|      case Opcode::I64TruncF32U:
  ------------------
  |  Branch (1447:7): [True: 2.79k, False: 7.82M]
  ------------------
 1448|  32.5k|      case Opcode::I64TruncF64U:
  ------------------
  |  Branch (1448:7): [True: 2.49k, False: 7.82M]
  ------------------
 1449|  33.7k|      case Opcode::I64ExtendI32S:
  ------------------
  |  Branch (1449:7): [True: 1.18k, False: 7.82M]
  ------------------
 1450|  41.0k|      case Opcode::I64ExtendI32U:
  ------------------
  |  Branch (1450:7): [True: 7.31k, False: 7.81M]
  ------------------
 1451|  42.4k|      case Opcode::F32ConvertI32S:
  ------------------
  |  Branch (1451:7): [True: 1.38k, False: 7.82M]
  ------------------
 1452|  43.1k|      case Opcode::F32ConvertI32U:
  ------------------
  |  Branch (1452:7): [True: 733, False: 7.82M]
  ------------------
 1453|  65.5k|      case Opcode::F32ConvertI64S:
  ------------------
  |  Branch (1453:7): [True: 22.3k, False: 7.80M]
  ------------------
 1454|  73.4k|      case Opcode::F32ConvertI64U:
  ------------------
  |  Branch (1454:7): [True: 7.95k, False: 7.81M]
  ------------------
 1455|  74.5k|      case Opcode::F32DemoteF64:
  ------------------
  |  Branch (1455:7): [True: 1.08k, False: 7.82M]
  ------------------
 1456|  78.7k|      case Opcode::F32ReinterpretI32:
  ------------------
  |  Branch (1456:7): [True: 4.17k, False: 7.82M]
  ------------------
 1457|  79.6k|      case Opcode::F64ConvertI32S:
  ------------------
  |  Branch (1457:7): [True: 947, False: 7.82M]
  ------------------
 1458|   110k|      case Opcode::F64ConvertI32U:
  ------------------
  |  Branch (1458:7): [True: 31.2k, False: 7.79M]
  ------------------
 1459|   133k|      case Opcode::F64ConvertI64S:
  ------------------
  |  Branch (1459:7): [True: 22.9k, False: 7.80M]
  ------------------
 1460|   136k|      case Opcode::F64ConvertI64U:
  ------------------
  |  Branch (1460:7): [True: 2.11k, False: 7.82M]
  ------------------
 1461|   161k|      case Opcode::F64PromoteF32:
  ------------------
  |  Branch (1461:7): [True: 25.8k, False: 7.80M]
  ------------------
 1462|   163k|      case Opcode::F64ReinterpretI64:
  ------------------
  |  Branch (1462:7): [True: 2.10k, False: 7.82M]
  ------------------
 1463|   230k|      case Opcode::I32ReinterpretF32:
  ------------------
  |  Branch (1463:7): [True: 66.3k, False: 7.76M]
  ------------------
 1464|   235k|      case Opcode::I64ReinterpretF64:
  ------------------
  |  Branch (1464:7): [True: 4.96k, False: 7.82M]
  ------------------
 1465|   241k|      case Opcode::I32Eqz:
  ------------------
  |  Branch (1465:7): [True: 6.06k, False: 7.82M]
  ------------------
 1466|   248k|      case Opcode::I64Eqz:
  ------------------
  |  Branch (1466:7): [True: 7.20k, False: 7.81M]
  ------------------
 1467|   251k|      case Opcode::F32X4ConvertI32X4S:
  ------------------
  |  Branch (1467:7): [True: 2.67k, False: 7.82M]
  ------------------
 1468|   251k|      case Opcode::F32X4ConvertI32X4U:
  ------------------
  |  Branch (1468:7): [True: 47, False: 7.82M]
  ------------------
 1469|   251k|      case Opcode::I32X4TruncSatF32X4S:
  ------------------
  |  Branch (1469:7): [True: 264, False: 7.82M]
  ------------------
 1470|   251k|      case Opcode::I32X4TruncSatF32X4U:
  ------------------
  |  Branch (1470:7): [True: 372, False: 7.82M]
  ------------------
 1471|   252k|      case Opcode::F32X4DemoteF64X2Zero:
  ------------------
  |  Branch (1471:7): [True: 217, False: 7.82M]
  ------------------
 1472|   252k|      case Opcode::F64X2PromoteLowF32X4:
  ------------------
  |  Branch (1472:7): [True: 443, False: 7.82M]
  ------------------
 1473|   252k|      case Opcode::I32X4TruncSatF64X2SZero:
  ------------------
  |  Branch (1473:7): [True: 109, False: 7.82M]
  ------------------
 1474|   254k|      case Opcode::I32X4TruncSatF64X2UZero:
  ------------------
  |  Branch (1474:7): [True: 1.52k, False: 7.82M]
  ------------------
 1475|   254k|      case Opcode::F64X2ConvertLowI32X4S:
  ------------------
  |  Branch (1475:7): [True: 351, False: 7.82M]
  ------------------
 1476|   254k|      case Opcode::F64X2ConvertLowI32X4U:
  ------------------
  |  Branch (1476:7): [True: 130, False: 7.82M]
  ------------------
 1477|   254k|        CALLBACK(OnConvertExpr, opcode);
  ------------------
  |  |   61|   254k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   254k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   254k|  do {                         \
  |  |  |  |  |  |   42|   254k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 254k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   254k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   254k|               #member " callback failed")
  ------------------
 1478|   254k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|   254k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   254k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   254k|  do {                         \
  |  |  |  |  |  |   42|   254k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 254k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   254k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1479|   254k|        break;
 1480|       |
 1481|   321k|      case Opcode::Try: {
  ------------------
  |  Branch (1481:7): [True: 321k, False: 7.50M]
  ------------------
 1482|   321k|        nested_blocks.push(opcode);
 1483|   321k|        Type sig_type;
 1484|   321k|        CHECK_RESULT(ReadType(&sig_type, "try signature type"));
  ------------------
  |  |   55|   321k|  do {                              \
  |  |   56|   321k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 28, False: 321k]
  |  |  ------------------
  |  |   57|     28|      return ::wabt::Result::Error; \
  |  |   58|     28|    }                               \
  |  |   59|   321k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1485|   321k|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   48|   321k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   321k|  do {                         \
  |  |  |  |   42|   321k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 96, False: 321k]
  |  |  |  |  ------------------
  |  |  |  |   43|     96|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     96|      return Result::Error;    \
  |  |  |  |   45|     96|    }                          \
  |  |  |  |   46|   321k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1486|   321k|                     "expected valid block signature type");
 1487|   321k|        CALLBACK(OnTryExpr, sig_type);
  ------------------
  |  |   61|   321k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   321k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   321k|  do {                         \
  |  |  |  |  |  |   42|   321k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 321k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   321k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   321k|               #member " callback failed")
  ------------------
 1488|   321k|        CALLBACK(OnOpcodeBlockSig, sig_type);
  ------------------
  |  |   61|   321k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   321k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   321k|  do {                         \
  |  |  |  |  |  |   42|   321k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 321k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   321k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   321k|               #member " callback failed")
  ------------------
 1489|   321k|        break;
 1490|   321k|      }
 1491|       |
 1492|   321k|      case Opcode::Catch: {
  ------------------
  |  Branch (1492:7): [True: 6.20k, False: 7.82M]
  ------------------
 1493|  6.20k|        Index index;
 1494|  6.20k|        CHECK_RESULT(ReadIndex(&index, "tag index"));
  ------------------
  |  |   55|  6.20k|  do {                              \
  |  |   56|  6.20k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 53, False: 6.15k]
  |  |  ------------------
  |  |   57|     53|      return ::wabt::Result::Error; \
  |  |   58|     53|    }                               \
  |  |   59|  6.20k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1495|  6.15k|        CALLBACK(OnCatchExpr, index);
  ------------------
  |  |   61|  6.15k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.15k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.15k|  do {                         \
  |  |  |  |  |  |   42|  6.15k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.15k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.15k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.15k|               #member " callback failed")
  ------------------
 1496|  6.15k|        CALLBACK(OnOpcodeIndex, index);
  ------------------
  |  |   61|  6.15k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.15k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.15k|  do {                         \
  |  |  |  |  |  |   42|  6.15k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.15k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.15k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.15k|               #member " callback failed")
  ------------------
 1497|  6.15k|        break;
 1498|  6.15k|      }
 1499|       |
 1500|  6.81k|      case Opcode::CatchAll: {
  ------------------
  |  Branch (1500:7): [True: 6.81k, False: 7.81M]
  ------------------
 1501|  6.81k|        CALLBACK(OnCatchAllExpr);
  ------------------
  |  |   61|  6.81k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.81k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.81k|  do {                         \
  |  |  |  |  |  |   42|  6.81k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.81k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.81k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.81k|               #member " callback failed")
  ------------------
 1502|  6.81k|        CALLBACK(OnOpcodeBare);
  ------------------
  |  |   61|  6.81k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.81k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.81k|  do {                         \
  |  |  |  |  |  |   42|  6.81k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.81k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.81k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.81k|               #member " callback failed")
  ------------------
 1503|  6.81k|        break;
 1504|  6.81k|      }
 1505|       |
 1506|  6.81k|      case Opcode::Delegate: {
  ------------------
  |  Branch (1506:7): [True: 1.96k, False: 7.82M]
  ------------------
 1507|  1.96k|        ERROR_IF(nested_blocks.empty() || (nested_blocks.top() != Opcode::Try),
  ------------------
  |  |   41|  1.96k|  do {                         \
  |  |   42|  5.83k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 47, False: 1.91k]
  |  |  |  Branch (42:9): [True: 46, False: 1.86k]
  |  |  ------------------
  |  |   43|     93|      PrintError(__VA_ARGS__); \
  |  |   44|     93|      return Result::Error;    \
  |  |   45|     93|    }                          \
  |  |   46|  1.96k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1508|  1.96k|                 "delegate outside try block");
 1509|  1.86k|        nested_blocks.pop();
 1510|  1.86k|        Index index;
 1511|  1.86k|        CHECK_RESULT(ReadIndex(&index, "depth"));
  ------------------
  |  |   55|  1.86k|  do {                              \
  |  |   56|  1.86k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 16, False: 1.85k]
  |  |  ------------------
  |  |   57|     16|      return ::wabt::Result::Error; \
  |  |   58|     16|    }                               \
  |  |   59|  1.86k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1512|  1.85k|        CALLBACK(OnDelegateExpr, index);
  ------------------
  |  |   61|  1.85k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.85k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.85k|  do {                         \
  |  |  |  |  |  |   42|  1.85k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.85k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.85k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.85k|               #member " callback failed")
  ------------------
 1513|  1.85k|        CALLBACK(OnOpcodeIndex, index);
  ------------------
  |  |   61|  1.85k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.85k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.85k|  do {                         \
  |  |  |  |  |  |   42|  1.85k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.85k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.85k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.85k|               #member " callback failed")
  ------------------
 1514|  1.85k|        break;
 1515|  1.85k|      }
 1516|       |
 1517|  17.0k|      case Opcode::Rethrow: {
  ------------------
  |  Branch (1517:7): [True: 17.0k, False: 7.80M]
  ------------------
 1518|  17.0k|        Index depth;
 1519|  17.0k|        CHECK_RESULT(ReadIndex(&depth, "catch depth"));
  ------------------
  |  |   55|  17.0k|  do {                              \
  |  |   56|  17.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 69, False: 16.9k]
  |  |  ------------------
  |  |   57|     69|      return ::wabt::Result::Error; \
  |  |   58|     69|    }                               \
  |  |   59|  17.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1520|  16.9k|        CALLBACK(OnRethrowExpr, depth);
  ------------------
  |  |   61|  16.9k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  16.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  16.9k|  do {                         \
  |  |  |  |  |  |   42|  16.9k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 16.9k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  16.9k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  16.9k|               #member " callback failed")
  ------------------
 1521|  16.9k|        CALLBACK(OnOpcodeIndex, depth);
  ------------------
  |  |   61|  16.9k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  16.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  16.9k|  do {                         \
  |  |  |  |  |  |   42|  16.9k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 16.9k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  16.9k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  16.9k|               #member " callback failed")
  ------------------
 1522|  16.9k|        break;
 1523|  16.9k|      }
 1524|       |
 1525|  16.9k|      case Opcode::Throw: {
  ------------------
  |  Branch (1525:7): [True: 6.37k, False: 7.82M]
  ------------------
 1526|  6.37k|        Index index;
 1527|  6.37k|        CHECK_RESULT(ReadIndex(&index, "tag index"));
  ------------------
  |  |   55|  6.37k|  do {                              \
  |  |   56|  6.37k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 36, False: 6.34k]
  |  |  ------------------
  |  |   57|     36|      return ::wabt::Result::Error; \
  |  |   58|     36|    }                               \
  |  |   59|  6.37k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1528|  6.34k|        CALLBACK(OnThrowExpr, index);
  ------------------
  |  |   61|  6.34k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.34k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.34k|  do {                         \
  |  |  |  |  |  |   42|  6.34k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.34k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.34k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.34k|               #member " callback failed")
  ------------------
 1529|  6.34k|        CALLBACK(OnOpcodeIndex, index);
  ------------------
  |  |   61|  6.34k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.34k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.34k|  do {                         \
  |  |  |  |  |  |   42|  6.34k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.34k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.34k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.34k|               #member " callback failed")
  ------------------
 1530|  6.34k|        break;
 1531|  6.34k|      }
 1532|       |
 1533|  6.34k|      case Opcode::I32Extend8S:
  ------------------
  |  Branch (1533:7): [True: 2.89k, False: 7.82M]
  ------------------
 1534|  4.63k|      case Opcode::I32Extend16S:
  ------------------
  |  Branch (1534:7): [True: 1.74k, False: 7.82M]
  ------------------
 1535|  5.65k|      case Opcode::I64Extend8S:
  ------------------
  |  Branch (1535:7): [True: 1.02k, False: 7.82M]
  ------------------
 1536|  6.60k|      case Opcode::I64Extend16S:
  ------------------
  |  Branch (1536:7): [True: 948, False: 7.82M]
  ------------------
 1537|  7.50k|      case Opcode::I64Extend32S:
  ------------------
  |  Branch (1537:7): [True: 903, False: 7.82M]
  ------------------
 1538|  7.50k|        CALLBACK(OnUnaryExpr, opcode);
  ------------------
  |  |   61|  7.50k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  7.50k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.50k|  do {                         \
  |  |  |  |  |  |   42|  7.50k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.50k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.50k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  7.50k|               #member " callback failed")
  ------------------
 1539|  7.50k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  7.50k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  7.50k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.50k|  do {                         \
  |  |  |  |  |  |   42|  7.50k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.50k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.50k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1540|  7.50k|        break;
 1541|       |
 1542|  7.50k|      case Opcode::I32TruncSatF32S:
  ------------------
  |  Branch (1542:7): [True: 1.49k, False: 7.82M]
  ------------------
 1543|  2.26k|      case Opcode::I32TruncSatF32U:
  ------------------
  |  Branch (1543:7): [True: 766, False: 7.82M]
  ------------------
 1544|  2.74k|      case Opcode::I32TruncSatF64S:
  ------------------
  |  Branch (1544:7): [True: 484, False: 7.82M]
  ------------------
 1545|  3.25k|      case Opcode::I32TruncSatF64U:
  ------------------
  |  Branch (1545:7): [True: 509, False: 7.82M]
  ------------------
 1546|  9.17k|      case Opcode::I64TruncSatF32S:
  ------------------
  |  Branch (1546:7): [True: 5.91k, False: 7.82M]
  ------------------
 1547|  9.56k|      case Opcode::I64TruncSatF32U:
  ------------------
  |  Branch (1547:7): [True: 392, False: 7.82M]
  ------------------
 1548|  9.87k|      case Opcode::I64TruncSatF64S:
  ------------------
  |  Branch (1548:7): [True: 312, False: 7.82M]
  ------------------
 1549|  10.9k|      case Opcode::I64TruncSatF64U:
  ------------------
  |  Branch (1549:7): [True: 1.10k, False: 7.82M]
  ------------------
 1550|  10.9k|        CALLBACK(OnConvertExpr, opcode);
  ------------------
  |  |   61|  10.9k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  10.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.9k|  do {                         \
  |  |  |  |  |  |   42|  10.9k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.9k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.9k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  10.9k|               #member " callback failed")
  ------------------
 1551|  10.9k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  10.9k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  10.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.9k|  do {                         \
  |  |  |  |  |  |   42|  10.9k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.9k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.9k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1552|  10.9k|        break;
 1553|       |
 1554|  10.9k|      case Opcode::MemoryAtomicNotify: {
  ------------------
  |  Branch (1554:7): [True: 2.09k, False: 7.82M]
  ------------------
 1555|  2.09k|        Address alignment_log2;
 1556|  2.09k|        Index memidx;
 1557|  2.09k|        Address offset;
 1558|  2.09k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  2.09k|  do {                              \
  |  |   56|  2.09k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 26, False: 2.07k]
  |  |  ------------------
  |  |   57|     26|      return ::wabt::Result::Error; \
  |  |   58|     26|    }                               \
  |  |   59|  2.09k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1559|  2.09k|                                     "notify alignment", "notify memidx",
 1560|  2.09k|                                     "notify offset"));
 1561|  2.07k|        CALLBACK(OnAtomicNotifyExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  2.07k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.07k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.07k|  do {                         \
  |  |  |  |  |  |   42|  2.07k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.07k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.07k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.07k|               #member " callback failed")
  ------------------
 1562|  2.07k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  2.07k|  do {                              \
  |  |   56|  2.07k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.07k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.07k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1563|  2.07k|        break;
 1564|  2.07k|      }
 1565|       |
 1566|  3.19k|      case Opcode::MemoryAtomicWait32:
  ------------------
  |  Branch (1566:7): [True: 3.19k, False: 7.82M]
  ------------------
 1567|  3.95k|      case Opcode::MemoryAtomicWait64: {
  ------------------
  |  Branch (1567:7): [True: 763, False: 7.82M]
  ------------------
 1568|  3.95k|        Address alignment_log2;
 1569|  3.95k|        Index memidx;
 1570|  3.95k|        Address offset;
 1571|  3.95k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  3.95k|  do {                              \
  |  |   56|  3.95k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 25, False: 3.93k]
  |  |  ------------------
  |  |   57|     25|      return ::wabt::Result::Error; \
  |  |   58|     25|    }                               \
  |  |   59|  3.95k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1572|  3.95k|                                     "wait alignment", "wait memidx",
 1573|  3.95k|                                     "wait offset"));
 1574|  3.93k|        CALLBACK(OnAtomicWaitExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  3.93k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.93k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.93k|  do {                         \
  |  |  |  |  |  |   42|  3.93k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.93k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.93k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.93k|               #member " callback failed")
  ------------------
 1575|  3.93k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  3.93k|  do {                              \
  |  |   56|  3.93k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 3.93k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  3.93k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1576|  3.93k|        break;
 1577|  3.93k|      }
 1578|       |
 1579|  3.93k|      case Opcode::AtomicFence: {
  ------------------
  |  Branch (1579:7): [True: 1.27k, False: 7.82M]
  ------------------
 1580|  1.27k|        uint8_t consistency_model;
 1581|  1.27k|        CHECK_RESULT(ReadU8(&consistency_model, "consistency model"));
  ------------------
  |  |   55|  1.27k|  do {                              \
  |  |   56|  1.27k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7, False: 1.26k]
  |  |  ------------------
  |  |   57|      7|      return ::wabt::Result::Error; \
  |  |   58|      7|    }                               \
  |  |   59|  1.27k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1582|  1.26k|        ERROR_UNLESS(consistency_model == 0,
  ------------------
  |  |   48|  1.26k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  1.26k|  do {                         \
  |  |  |  |   42|  1.26k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 17, False: 1.24k]
  |  |  |  |  ------------------
  |  |  |  |   43|     17|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     17|      return Result::Error;    \
  |  |  |  |   45|     17|    }                          \
  |  |  |  |   46|  1.26k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1583|  1.24k|                     "atomic.fence consistency model must be 0");
 1584|  1.24k|        CALLBACK(OnAtomicFenceExpr, consistency_model);
  ------------------
  |  |   61|  1.24k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.24k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.24k|  do {                         \
  |  |  |  |  |  |   42|  1.24k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.24k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.24k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.24k|               #member " callback failed")
  ------------------
 1585|  1.24k|        CALLBACK(OnOpcodeUint32, consistency_model);
  ------------------
  |  |   61|  1.24k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.24k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.24k|  do {                         \
  |  |  |  |  |  |   42|  1.24k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.24k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.24k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.24k|               #member " callback failed")
  ------------------
 1586|  1.24k|        break;
 1587|  1.24k|      }
 1588|       |
 1589|  1.24k|      case Opcode::I32AtomicLoad8U:
  ------------------
  |  Branch (1589:7): [True: 245, False: 7.82M]
  ------------------
 1590|  1.04k|      case Opcode::I32AtomicLoad16U:
  ------------------
  |  Branch (1590:7): [True: 799, False: 7.82M]
  ------------------
 1591|  1.27k|      case Opcode::I64AtomicLoad8U:
  ------------------
  |  Branch (1591:7): [True: 235, False: 7.82M]
  ------------------
 1592|  1.65k|      case Opcode::I64AtomicLoad16U:
  ------------------
  |  Branch (1592:7): [True: 373, False: 7.82M]
  ------------------
 1593|  1.71k|      case Opcode::I64AtomicLoad32U:
  ------------------
  |  Branch (1593:7): [True: 66, False: 7.82M]
  ------------------
 1594|  2.33k|      case Opcode::I32AtomicLoad:
  ------------------
  |  Branch (1594:7): [True: 621, False: 7.82M]
  ------------------
 1595|  2.41k|      case Opcode::I64AtomicLoad: {
  ------------------
  |  Branch (1595:7): [True: 78, False: 7.82M]
  ------------------
 1596|  2.41k|        Address alignment_log2;
 1597|  2.41k|        Index memidx;
 1598|  2.41k|        Address offset;
 1599|  2.41k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  2.41k|  do {                              \
  |  |   56|  2.41k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 27, False: 2.39k]
  |  |  ------------------
  |  |   57|     27|      return ::wabt::Result::Error; \
  |  |   58|     27|    }                               \
  |  |   59|  2.41k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1600|  2.41k|                                     "load alignment", "load memidx",
 1601|  2.41k|                                     "load offset"));
 1602|  2.39k|        CALLBACK(OnAtomicLoadExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  2.39k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.39k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.39k|  do {                         \
  |  |  |  |  |  |   42|  2.39k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.39k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.39k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.39k|               #member " callback failed")
  ------------------
 1603|  2.39k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  2.39k|  do {                              \
  |  |   56|  2.39k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.39k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.39k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1604|  2.39k|        break;
 1605|  2.39k|      }
 1606|       |
 1607|  2.39k|      case Opcode::I32AtomicStore8:
  ------------------
  |  Branch (1607:7): [True: 1.17k, False: 7.82M]
  ------------------
 1608|  1.27k|      case Opcode::I32AtomicStore16:
  ------------------
  |  Branch (1608:7): [True: 100, False: 7.82M]
  ------------------
 1609|  1.43k|      case Opcode::I64AtomicStore8:
  ------------------
  |  Branch (1609:7): [True: 166, False: 7.82M]
  ------------------
 1610|  2.33k|      case Opcode::I64AtomicStore16:
  ------------------
  |  Branch (1610:7): [True: 902, False: 7.82M]
  ------------------
 1611|  3.08k|      case Opcode::I64AtomicStore32:
  ------------------
  |  Branch (1611:7): [True: 750, False: 7.82M]
  ------------------
 1612|  4.98k|      case Opcode::I32AtomicStore:
  ------------------
  |  Branch (1612:7): [True: 1.89k, False: 7.82M]
  ------------------
 1613|  5.03k|      case Opcode::I64AtomicStore: {
  ------------------
  |  Branch (1613:7): [True: 51, False: 7.82M]
  ------------------
 1614|  5.03k|        Address alignment_log2;
 1615|  5.03k|        Index memidx;
 1616|  5.03k|        Address offset;
 1617|  5.03k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  5.03k|  do {                              \
  |  |   56|  5.03k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 37, False: 4.99k]
  |  |  ------------------
  |  |   57|     37|      return ::wabt::Result::Error; \
  |  |   58|     37|    }                               \
  |  |   59|  5.03k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1618|  5.03k|                                     "store alignment", "store memidx",
 1619|  5.03k|                                     "store offset"));
 1620|  4.99k|        CALLBACK(OnAtomicStoreExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  4.99k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.99k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.99k|  do {                         \
  |  |  |  |  |  |   42|  4.99k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.99k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.99k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.99k|               #member " callback failed")
  ------------------
 1621|  4.99k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  4.99k|  do {                              \
  |  |   56|  4.99k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4.99k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  4.99k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1622|  4.99k|        break;
 1623|  4.99k|      }
 1624|       |
 1625|  4.99k|      case Opcode::I32AtomicRmwAdd:
  ------------------
  |  Branch (1625:7): [True: 225, False: 7.82M]
  ------------------
 1626|    384|      case Opcode::I64AtomicRmwAdd:
  ------------------
  |  Branch (1626:7): [True: 159, False: 7.82M]
  ------------------
 1627|    437|      case Opcode::I32AtomicRmw8AddU:
  ------------------
  |  Branch (1627:7): [True: 53, False: 7.82M]
  ------------------
 1628|    532|      case Opcode::I32AtomicRmw16AddU:
  ------------------
  |  Branch (1628:7): [True: 95, False: 7.82M]
  ------------------
 1629|  1.54k|      case Opcode::I64AtomicRmw8AddU:
  ------------------
  |  Branch (1629:7): [True: 1.01k, False: 7.82M]
  ------------------
 1630|  2.14k|      case Opcode::I64AtomicRmw16AddU:
  ------------------
  |  Branch (1630:7): [True: 592, False: 7.82M]
  ------------------
 1631|  2.96k|      case Opcode::I64AtomicRmw32AddU:
  ------------------
  |  Branch (1631:7): [True: 827, False: 7.82M]
  ------------------
 1632|  2.99k|      case Opcode::I32AtomicRmwSub:
  ------------------
  |  Branch (1632:7): [True: 31, False: 7.82M]
  ------------------
 1633|  3.24k|      case Opcode::I64AtomicRmwSub:
  ------------------
  |  Branch (1633:7): [True: 250, False: 7.82M]
  ------------------
 1634|  3.83k|      case Opcode::I32AtomicRmw8SubU:
  ------------------
  |  Branch (1634:7): [True: 583, False: 7.82M]
  ------------------
 1635|  3.91k|      case Opcode::I32AtomicRmw16SubU:
  ------------------
  |  Branch (1635:7): [True: 86, False: 7.82M]
  ------------------
 1636|  4.21k|      case Opcode::I64AtomicRmw8SubU:
  ------------------
  |  Branch (1636:7): [True: 300, False: 7.82M]
  ------------------
 1637|  4.53k|      case Opcode::I64AtomicRmw16SubU:
  ------------------
  |  Branch (1637:7): [True: 320, False: 7.82M]
  ------------------
 1638|  5.74k|      case Opcode::I64AtomicRmw32SubU:
  ------------------
  |  Branch (1638:7): [True: 1.20k, False: 7.82M]
  ------------------
 1639|  5.85k|      case Opcode::I32AtomicRmwAnd:
  ------------------
  |  Branch (1639:7): [True: 111, False: 7.82M]
  ------------------
 1640|  6.27k|      case Opcode::I64AtomicRmwAnd:
  ------------------
  |  Branch (1640:7): [True: 425, False: 7.82M]
  ------------------
 1641|  6.53k|      case Opcode::I32AtomicRmw8AndU:
  ------------------
  |  Branch (1641:7): [True: 255, False: 7.82M]
  ------------------
 1642|  7.09k|      case Opcode::I32AtomicRmw16AndU:
  ------------------
  |  Branch (1642:7): [True: 564, False: 7.82M]
  ------------------
 1643|  8.00k|      case Opcode::I64AtomicRmw8AndU:
  ------------------
  |  Branch (1643:7): [True: 906, False: 7.82M]
  ------------------
 1644|  9.08k|      case Opcode::I64AtomicRmw16AndU:
  ------------------
  |  Branch (1644:7): [True: 1.07k, False: 7.82M]
  ------------------
 1645|  9.85k|      case Opcode::I64AtomicRmw32AndU:
  ------------------
  |  Branch (1645:7): [True: 777, False: 7.82M]
  ------------------
 1646|  10.5k|      case Opcode::I32AtomicRmwOr:
  ------------------
  |  Branch (1646:7): [True: 735, False: 7.82M]
  ------------------
 1647|  10.8k|      case Opcode::I64AtomicRmwOr:
  ------------------
  |  Branch (1647:7): [True: 236, False: 7.82M]
  ------------------
 1648|  11.0k|      case Opcode::I32AtomicRmw8OrU:
  ------------------
  |  Branch (1648:7): [True: 248, False: 7.82M]
  ------------------
 1649|  14.2k|      case Opcode::I32AtomicRmw16OrU:
  ------------------
  |  Branch (1649:7): [True: 3.17k, False: 7.82M]
  ------------------
 1650|  14.3k|      case Opcode::I64AtomicRmw8OrU:
  ------------------
  |  Branch (1650:7): [True: 101, False: 7.82M]
  ------------------
 1651|  14.5k|      case Opcode::I64AtomicRmw16OrU:
  ------------------
  |  Branch (1651:7): [True: 195, False: 7.82M]
  ------------------
 1652|  15.8k|      case Opcode::I64AtomicRmw32OrU:
  ------------------
  |  Branch (1652:7): [True: 1.28k, False: 7.82M]
  ------------------
 1653|  16.0k|      case Opcode::I32AtomicRmwXor:
  ------------------
  |  Branch (1653:7): [True: 172, False: 7.82M]
  ------------------
 1654|  16.1k|      case Opcode::I64AtomicRmwXor:
  ------------------
  |  Branch (1654:7): [True: 151, False: 7.82M]
  ------------------
 1655|  17.7k|      case Opcode::I32AtomicRmw8XorU:
  ------------------
  |  Branch (1655:7): [True: 1.59k, False: 7.82M]
  ------------------
 1656|  17.7k|      case Opcode::I32AtomicRmw16XorU:
  ------------------
  |  Branch (1656:7): [True: 30, False: 7.82M]
  ------------------
 1657|  17.8k|      case Opcode::I64AtomicRmw8XorU:
  ------------------
  |  Branch (1657:7): [True: 46, False: 7.82M]
  ------------------
 1658|  17.9k|      case Opcode::I64AtomicRmw16XorU:
  ------------------
  |  Branch (1658:7): [True: 109, False: 7.82M]
  ------------------
 1659|  19.0k|      case Opcode::I64AtomicRmw32XorU:
  ------------------
  |  Branch (1659:7): [True: 1.11k, False: 7.82M]
  ------------------
 1660|  19.5k|      case Opcode::I32AtomicRmwXchg:
  ------------------
  |  Branch (1660:7): [True: 507, False: 7.82M]
  ------------------
 1661|  19.8k|      case Opcode::I64AtomicRmwXchg:
  ------------------
  |  Branch (1661:7): [True: 283, False: 7.82M]
  ------------------
 1662|  19.9k|      case Opcode::I32AtomicRmw8XchgU:
  ------------------
  |  Branch (1662:7): [True: 70, False: 7.82M]
  ------------------
 1663|  20.0k|      case Opcode::I32AtomicRmw16XchgU:
  ------------------
  |  Branch (1663:7): [True: 107, False: 7.82M]
  ------------------
 1664|  20.3k|      case Opcode::I64AtomicRmw8XchgU:
  ------------------
  |  Branch (1664:7): [True: 294, False: 7.82M]
  ------------------
 1665|  20.7k|      case Opcode::I64AtomicRmw16XchgU:
  ------------------
  |  Branch (1665:7): [True: 446, False: 7.82M]
  ------------------
 1666|  22.2k|      case Opcode::I64AtomicRmw32XchgU: {
  ------------------
  |  Branch (1666:7): [True: 1.50k, False: 7.82M]
  ------------------
 1667|  22.2k|        Address alignment_log2;
 1668|  22.2k|        Index memidx;
 1669|  22.2k|        Address offset;
 1670|  22.2k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  22.2k|  do {                              \
  |  |   56|  22.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 295, False: 21.9k]
  |  |  ------------------
  |  |   57|    295|      return ::wabt::Result::Error; \
  |  |   58|    295|    }                               \
  |  |   59|  22.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1671|  22.2k|                                     "memory alignment", "memory memidx",
 1672|  22.2k|                                     "memory offset"));
 1673|  21.9k|        CALLBACK(OnAtomicRmwExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  21.9k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  21.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  21.9k|  do {                         \
  |  |  |  |  |  |   42|  21.9k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 21.9k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  21.9k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  21.9k|               #member " callback failed")
  ------------------
 1674|  21.9k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  21.9k|  do {                              \
  |  |   56|  21.9k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 21.9k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  21.9k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1675|  21.9k|        break;
 1676|  21.9k|      }
 1677|       |
 1678|  21.9k|      case Opcode::I32AtomicRmwCmpxchg:
  ------------------
  |  Branch (1678:7): [True: 94, False: 7.82M]
  ------------------
 1679|    532|      case Opcode::I64AtomicRmwCmpxchg:
  ------------------
  |  Branch (1679:7): [True: 438, False: 7.82M]
  ------------------
 1680|    978|      case Opcode::I32AtomicRmw8CmpxchgU:
  ------------------
  |  Branch (1680:7): [True: 446, False: 7.82M]
  ------------------
 1681|  1.03k|      case Opcode::I32AtomicRmw16CmpxchgU:
  ------------------
  |  Branch (1681:7): [True: 58, False: 7.82M]
  ------------------
 1682|  1.22k|      case Opcode::I64AtomicRmw8CmpxchgU:
  ------------------
  |  Branch (1682:7): [True: 188, False: 7.82M]
  ------------------
 1683|  1.48k|      case Opcode::I64AtomicRmw16CmpxchgU:
  ------------------
  |  Branch (1683:7): [True: 256, False: 7.82M]
  ------------------
 1684|  2.99k|      case Opcode::I64AtomicRmw32CmpxchgU: {
  ------------------
  |  Branch (1684:7): [True: 1.51k, False: 7.82M]
  ------------------
 1685|  2.99k|        Address alignment_log2;
 1686|  2.99k|        Index memidx;
 1687|  2.99k|        Address offset;
 1688|  2.99k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  2.99k|  do {                              \
  |  |   56|  2.99k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 72, False: 2.92k]
  |  |  ------------------
  |  |   57|     72|      return ::wabt::Result::Error; \
  |  |   58|     72|    }                               \
  |  |   59|  2.99k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1689|  2.99k|                                     "memory alignment", "memory memidx",
 1690|  2.99k|                                     "memory offset"));
 1691|  2.92k|        CALLBACK(OnAtomicRmwCmpxchgExpr, opcode, memidx, alignment_log2,
  ------------------
  |  |   61|  2.92k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.92k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.92k|  do {                         \
  |  |  |  |  |  |   42|  2.92k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.92k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.92k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.92k|               #member " callback failed")
  ------------------
 1692|  2.92k|                 offset);
 1693|  2.92k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  2.92k|  do {                              \
  |  |   56|  2.92k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.92k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.92k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1694|  2.92k|        break;
 1695|  2.92k|      }
 1696|       |
 1697|  2.92k|      case Opcode::TableInit: {
  ------------------
  |  Branch (1697:7): [True: 238, False: 7.82M]
  ------------------
 1698|    238|        Index segment;
 1699|    238|        CHECK_RESULT(ReadIndex(&segment, "elem segment index"));
  ------------------
  |  |   55|    238|  do {                              \
  |  |   56|    238|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 233]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|    238|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1700|    233|        Index table_index;
 1701|    233|        CHECK_RESULT(ReadIndex(&table_index, "reserved table index"));
  ------------------
  |  |   55|    233|  do {                              \
  |  |   56|    233|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 227]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|    233|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1702|    227|        CALLBACK(OnTableInitExpr, segment, table_index);
  ------------------
  |  |   61|    227|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    227|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    227|  do {                         \
  |  |  |  |  |  |   42|    227|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 227]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    227|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    227|               #member " callback failed")
  ------------------
 1703|    227|        CALLBACK(OnOpcodeUint32Uint32, segment, table_index);
  ------------------
  |  |   61|    227|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    227|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    227|  do {                         \
  |  |  |  |  |  |   42|    227|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 227]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    227|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    227|               #member " callback failed")
  ------------------
 1704|    227|        break;
 1705|    227|      }
 1706|       |
 1707|    227|      case Opcode::MemoryInit: {
  ------------------
  |  Branch (1707:7): [True: 83, False: 7.82M]
  ------------------
 1708|     83|        Index segment;
 1709|     83|        ERROR_IF(data_count_ == kInvalidIndex,
  ------------------
  |  |   41|     83|  do {                         \
  |  |   42|     83|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 11, False: 72]
  |  |  ------------------
  |  |   43|     11|      PrintError(__VA_ARGS__); \
  |  |   44|     11|      return Result::Error;    \
  |  |   45|     11|    }                          \
  |  |   46|     83|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1710|     83|                 "memory.init requires data count section");
 1711|     72|        CHECK_RESULT(ReadIndex(&segment, "elem segment index"));
  ------------------
  |  |   55|     72|  do {                              \
  |  |   56|     72|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 70]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|     72|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1712|     70|        Index memidx = 0;
 1713|     70|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1713:13): [True: 0, False: 70]
  ------------------
 1714|      0|          uint8_t reserved;
 1715|      0|          CHECK_RESULT(ReadU8(&reserved, "reserved memory index"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1716|      0|          ERROR_UNLESS(reserved == 0, "reserved value must be 0");
  ------------------
  |  |   48|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|      0|  do {                         \
  |  |  |  |   42|      0|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1717|     70|        } else {
 1718|     70|          CHECK_RESULT(ReadMemidx(&memidx, "memory.init memidx"));
  ------------------
  |  |   55|     70|  do {                              \
  |  |   56|     70|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7, False: 63]
  |  |  ------------------
  |  |   57|      7|      return ::wabt::Result::Error; \
  |  |   58|      7|    }                               \
  |  |   59|     70|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1719|     70|        }
 1720|     63|        CALLBACK(OnMemoryInitExpr, segment, memidx);
  ------------------
  |  |   61|     63|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|     63|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     63|  do {                         \
  |  |  |  |  |  |   42|     63|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 63]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     63|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|     63|               #member " callback failed")
  ------------------
 1721|     63|        CALLBACK(OnOpcodeUint32Uint32, segment, memidx);
  ------------------
  |  |   61|     63|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|     63|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     63|  do {                         \
  |  |  |  |  |  |   42|     63|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 63]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     63|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|     63|               #member " callback failed")
  ------------------
 1722|     63|        break;
 1723|     63|      }
 1724|       |
 1725|     63|      case Opcode::DataDrop:
  ------------------
  |  Branch (1725:7): [True: 48, False: 7.82M]
  ------------------
 1726|     48|        ERROR_IF(data_count_ == kInvalidIndex,
  ------------------
  |  |   41|     48|  do {                         \
  |  |   42|     48|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 6, False: 42]
  |  |  ------------------
  |  |   43|      6|      PrintError(__VA_ARGS__); \
  |  |   44|      6|      return Result::Error;    \
  |  |   45|      6|    }                          \
  |  |   46|     48|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1727|     48|                 "data.drop requires data count section");
 1728|     48|        [[fallthrough]];
 1729|    605|      case Opcode::ElemDrop: {
  ------------------
  |  Branch (1729:7): [True: 563, False: 7.82M]
  ------------------
 1730|    605|        Index segment;
 1731|    605|        CHECK_RESULT(ReadIndex(&segment, "segment index"));
  ------------------
  |  |   55|    605|  do {                              \
  |  |   56|    605|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 12, False: 593]
  |  |  ------------------
  |  |   57|     12|      return ::wabt::Result::Error; \
  |  |   58|     12|    }                               \
  |  |   59|    605|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1732|    593|        if (opcode == Opcode::DataDrop) {
  ------------------
  |  Branch (1732:13): [True: 42, False: 551]
  ------------------
 1733|     42|          CALLBACK(OnDataDropExpr, segment);
  ------------------
  |  |   61|     42|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|     42|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     42|  do {                         \
  |  |  |  |  |  |   42|     42|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 42]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     42|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|     42|               #member " callback failed")
  ------------------
 1734|    551|        } else {
 1735|    551|          CALLBACK(OnElemDropExpr, segment);
  ------------------
  |  |   61|    551|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    551|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    551|  do {                         \
  |  |  |  |  |  |   42|    551|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 551]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    551|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    551|               #member " callback failed")
  ------------------
 1736|    551|        }
 1737|    593|        CALLBACK(OnOpcodeUint32, segment);
  ------------------
  |  |   61|    593|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    593|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    593|  do {                         \
  |  |  |  |  |  |   42|    593|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 593]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    593|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    593|               #member " callback failed")
  ------------------
 1738|    593|        break;
 1739|    593|      }
 1740|       |
 1741|  1.27k|      case Opcode::MemoryFill: {
  ------------------
  |  Branch (1741:7): [True: 1.27k, False: 7.82M]
  ------------------
 1742|  1.27k|        Index memidx = 0;
 1743|  1.27k|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1743:13): [True: 0, False: 1.27k]
  ------------------
 1744|      0|          uint8_t reserved;
 1745|      0|          CHECK_RESULT(ReadU8(&reserved, "memory.fill reserved"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1746|      0|          ERROR_UNLESS(reserved == 0, "memory.fill reserved value must be 0");
  ------------------
  |  |   48|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|      0|  do {                         \
  |  |  |  |   42|      0|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1747|  1.27k|        } else {
 1748|  1.27k|          CHECK_RESULT(ReadMemidx(&memidx, "memory.fill memidx"));
  ------------------
  |  |   55|  1.27k|  do {                              \
  |  |   56|  1.27k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 1.27k]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|  1.27k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1749|  1.27k|        }
 1750|  1.27k|        CALLBACK(OnMemoryFillExpr, memidx);
  ------------------
  |  |   61|  1.27k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.27k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.27k|  do {                         \
  |  |  |  |  |  |   42|  1.27k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.27k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.27k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.27k|               #member " callback failed")
  ------------------
 1751|  1.27k|        CALLBACK(OnOpcodeUint32, memidx);
  ------------------
  |  |   61|  1.27k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.27k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.27k|  do {                         \
  |  |  |  |  |  |   42|  1.27k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.27k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.27k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.27k|               #member " callback failed")
  ------------------
 1752|  1.27k|        break;
 1753|  1.27k|      }
 1754|       |
 1755|  1.27k|      case Opcode::MemoryCopy: {
  ------------------
  |  Branch (1755:7): [True: 269, False: 7.82M]
  ------------------
 1756|    269|        Index destmemidx = 0;
 1757|    269|        Index srcmemidx = 0;
 1758|    269|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1758:13): [True: 0, False: 269]
  ------------------
 1759|      0|          uint8_t reserved;
 1760|      0|          CHECK_RESULT(ReadU8(&reserved, "reserved memory index"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1761|      0|          ERROR_UNLESS(reserved == 0, "reserved value must be 0");
  ------------------
  |  |   48|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|      0|  do {                         \
  |  |  |  |   42|      0|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1762|      0|          CHECK_RESULT(ReadU8(&reserved, "reserved memory index"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1763|      0|          ERROR_UNLESS(reserved == 0, "reserved value must be 0");
  ------------------
  |  |   48|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|      0|  do {                         \
  |  |  |  |   42|      0|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1764|    269|        } else {
 1765|    269|          CHECK_RESULT(ReadMemidx(&destmemidx, "memory.copy destmemindex"));
  ------------------
  |  |   55|    269|  do {                              \
  |  |   56|    269|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 258]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|    269|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1766|    258|          CHECK_RESULT(ReadMemidx(&srcmemidx, "memory.copy srcmemidx"));
  ------------------
  |  |   55|    258|  do {                              \
  |  |   56|    258|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 253]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|    258|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1767|    258|        }
 1768|    253|        CALLBACK(OnMemoryCopyExpr, destmemidx, srcmemidx);
  ------------------
  |  |   61|    253|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    253|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    253|  do {                         \
  |  |  |  |  |  |   42|    253|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 253]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    253|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    253|               #member " callback failed")
  ------------------
 1769|    253|        CALLBACK(OnOpcodeUint32Uint32, destmemidx, srcmemidx);
  ------------------
  |  |   61|    253|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    253|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    253|  do {                         \
  |  |  |  |  |  |   42|    253|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 253]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    253|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    253|               #member " callback failed")
  ------------------
 1770|    253|        break;
 1771|    253|      }
 1772|       |
 1773|  2.61k|      case Opcode::TableCopy: {
  ------------------
  |  Branch (1773:7): [True: 2.61k, False: 7.82M]
  ------------------
 1774|  2.61k|        Index table_dst;
 1775|  2.61k|        Index table_src;
 1776|  2.61k|        CHECK_RESULT(ReadIndex(&table_dst, "reserved table index"));
  ------------------
  |  |   55|  2.61k|  do {                              \
  |  |   56|  2.61k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7, False: 2.60k]
  |  |  ------------------
  |  |   57|      7|      return ::wabt::Result::Error; \
  |  |   58|      7|    }                               \
  |  |   59|  2.61k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1777|  2.60k|        CHECK_RESULT(ReadIndex(&table_src, "table src"));
  ------------------
  |  |   55|  2.60k|  do {                              \
  |  |   56|  2.60k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 2.59k]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|  2.60k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1778|  2.59k|        CALLBACK(OnTableCopyExpr, table_dst, table_src);
  ------------------
  |  |   61|  2.59k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.59k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.59k|  do {                         \
  |  |  |  |  |  |   42|  2.59k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.59k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.59k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.59k|               #member " callback failed")
  ------------------
 1779|  2.59k|        CALLBACK(OnOpcodeUint32Uint32, table_dst, table_src);
  ------------------
  |  |   61|  2.59k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.59k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.59k|  do {                         \
  |  |  |  |  |  |   42|  2.59k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.59k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.59k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.59k|               #member " callback failed")
  ------------------
 1780|  2.59k|        break;
 1781|  2.59k|      }
 1782|       |
 1783|  2.59k|      case Opcode::TableGet: {
  ------------------
  |  Branch (1783:7): [True: 2.40k, False: 7.82M]
  ------------------
 1784|  2.40k|        Index table;
 1785|  2.40k|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|  2.40k|  do {                              \
  |  |   56|  2.40k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 35, False: 2.36k]
  |  |  ------------------
  |  |   57|     35|      return ::wabt::Result::Error; \
  |  |   58|     35|    }                               \
  |  |   59|  2.40k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1786|  2.36k|        CALLBACK(OnTableGetExpr, table);
  ------------------
  |  |   61|  2.36k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.36k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.36k|  do {                         \
  |  |  |  |  |  |   42|  2.36k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.36k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.36k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.36k|               #member " callback failed")
  ------------------
 1787|  2.36k|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   61|  2.36k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.36k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.36k|  do {                         \
  |  |  |  |  |  |   42|  2.36k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.36k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.36k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.36k|               #member " callback failed")
  ------------------
 1788|  2.36k|        break;
 1789|  2.36k|      }
 1790|       |
 1791|  2.40k|      case Opcode::TableSet: {
  ------------------
  |  Branch (1791:7): [True: 2.40k, False: 7.82M]
  ------------------
 1792|  2.40k|        Index table;
 1793|  2.40k|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|  2.40k|  do {                              \
  |  |   56|  2.40k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 35, False: 2.36k]
  |  |  ------------------
  |  |   57|     35|      return ::wabt::Result::Error; \
  |  |   58|     35|    }                               \
  |  |   59|  2.40k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1794|  2.36k|        CALLBACK(OnTableSetExpr, table);
  ------------------
  |  |   61|  2.36k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.36k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.36k|  do {                         \
  |  |  |  |  |  |   42|  2.36k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.36k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.36k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.36k|               #member " callback failed")
  ------------------
 1795|  2.36k|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   61|  2.36k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.36k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.36k|  do {                         \
  |  |  |  |  |  |   42|  2.36k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.36k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.36k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.36k|               #member " callback failed")
  ------------------
 1796|  2.36k|        break;
 1797|  2.36k|      }
 1798|       |
 1799|  2.36k|      case Opcode::TableGrow: {
  ------------------
  |  Branch (1799:7): [True: 574, False: 7.82M]
  ------------------
 1800|    574|        Index table;
 1801|    574|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|    574|  do {                              \
  |  |   56|    574|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 30, False: 544]
  |  |  ------------------
  |  |   57|     30|      return ::wabt::Result::Error; \
  |  |   58|     30|    }                               \
  |  |   59|    574|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1802|    544|        CALLBACK(OnTableGrowExpr, table);
  ------------------
  |  |   61|    544|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    544|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    544|  do {                         \
  |  |  |  |  |  |   42|    544|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 544]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    544|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    544|               #member " callback failed")
  ------------------
 1803|    544|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   61|    544|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    544|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    544|  do {                         \
  |  |  |  |  |  |   42|    544|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 544]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    544|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    544|               #member " callback failed")
  ------------------
 1804|    544|        break;
 1805|    544|      }
 1806|       |
 1807|    701|      case Opcode::TableSize: {
  ------------------
  |  Branch (1807:7): [True: 701, False: 7.82M]
  ------------------
 1808|    701|        Index table;
 1809|    701|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|    701|  do {                              \
  |  |   56|    701|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 12, False: 689]
  |  |  ------------------
  |  |   57|     12|      return ::wabt::Result::Error; \
  |  |   58|     12|    }                               \
  |  |   59|    701|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1810|    689|        CALLBACK(OnTableSizeExpr, table);
  ------------------
  |  |   61|    689|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    689|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    689|  do {                         \
  |  |  |  |  |  |   42|    689|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 689]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    689|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    689|               #member " callback failed")
  ------------------
 1811|    689|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   61|    689|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    689|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    689|  do {                         \
  |  |  |  |  |  |   42|    689|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 689]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    689|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    689|               #member " callback failed")
  ------------------
 1812|    689|        break;
 1813|    689|      }
 1814|       |
 1815|    689|      case Opcode::TableFill: {
  ------------------
  |  Branch (1815:7): [True: 434, False: 7.82M]
  ------------------
 1816|    434|        Index table;
 1817|    434|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|    434|  do {                              \
  |  |   56|    434|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 428]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|    434|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1818|    428|        CALLBACK(OnTableFillExpr, table);
  ------------------
  |  |   61|    428|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    428|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    428|  do {                         \
  |  |  |  |  |  |   42|    428|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 428]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    428|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    428|               #member " callback failed")
  ------------------
 1819|    428|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   61|    428|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    428|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    428|  do {                         \
  |  |  |  |  |  |   42|    428|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 428]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    428|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    428|               #member " callback failed")
  ------------------
 1820|    428|        break;
 1821|    428|      }
 1822|       |
 1823|  1.18k|      case Opcode::RefFunc: {
  ------------------
  |  Branch (1823:7): [True: 1.18k, False: 7.82M]
  ------------------
 1824|  1.18k|        Index func;
 1825|  1.18k|        CHECK_RESULT(ReadIndex(&func, "func index"));
  ------------------
  |  |   55|  1.18k|  do {                              \
  |  |   56|  1.18k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 1.17k]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|  1.18k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1826|  1.17k|        CALLBACK(OnRefFuncExpr, func);
  ------------------
  |  |   61|  1.17k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.17k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.17k|  do {                         \
  |  |  |  |  |  |   42|  1.17k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.17k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.17k|               #member " callback failed")
  ------------------
 1827|  1.17k|        CALLBACK(OnOpcodeUint32, func);
  ------------------
  |  |   61|  1.17k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.17k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.17k|  do {                         \
  |  |  |  |  |  |   42|  1.17k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.17k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.17k|               #member " callback failed")
  ------------------
 1828|  1.17k|        break;
 1829|  1.17k|      }
 1830|       |
 1831|  2.94k|      case Opcode::RefNull: {
  ------------------
  |  Branch (1831:7): [True: 2.94k, False: 7.82M]
  ------------------
 1832|  2.94k|        Type type;
 1833|  2.94k|        CHECK_RESULT(ReadRefType(&type, "ref.null type"));
  ------------------
  |  |   55|  2.94k|  do {                              \
  |  |   56|  2.94k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 246, False: 2.69k]
  |  |  ------------------
  |  |   57|    246|      return ::wabt::Result::Error; \
  |  |   58|    246|    }                               \
  |  |   59|  2.94k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1834|  2.69k|        CALLBACK(OnRefNullExpr, type);
  ------------------
  |  |   61|  2.69k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.69k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.69k|  do {                         \
  |  |  |  |  |  |   42|  2.69k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.69k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.69k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.69k|               #member " callback failed")
  ------------------
 1835|  2.69k|        CALLBACK(OnOpcodeType, type);
  ------------------
  |  |   61|  2.69k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.69k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.69k|  do {                         \
  |  |  |  |  |  |   42|  2.69k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.69k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.69k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.69k|               #member " callback failed")
  ------------------
 1836|  2.69k|        break;
 1837|  2.69k|      }
 1838|       |
 1839|  2.69k|      case Opcode::RefIsNull:
  ------------------
  |  Branch (1839:7): [True: 893, False: 7.82M]
  ------------------
 1840|    893|        CALLBACK(OnRefIsNullExpr);
  ------------------
  |  |   61|    893|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    893|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    893|  do {                         \
  |  |  |  |  |  |   42|    893|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 893]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    893|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    893|               #member " callback failed")
  ------------------
 1841|    893|        CALLBACK(OnOpcodeBare);
  ------------------
  |  |   61|    893|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    893|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    893|  do {                         \
  |  |  |  |  |  |   42|    893|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 893]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    893|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    893|               #member " callback failed")
  ------------------
 1842|    893|        break;
 1843|       |
 1844|  3.57k|      case Opcode::CallRef:
  ------------------
  |  Branch (1844:7): [True: 3.57k, False: 7.82M]
  ------------------
 1845|  3.57k|        CALLBACK(OnCallRefExpr);
  ------------------
  |  |   61|  3.57k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.57k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.57k|  do {                         \
  |  |  |  |  |  |   42|  3.57k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.57k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.57k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.57k|               #member " callback failed")
  ------------------
 1846|  3.57k|        CALLBACK(OnOpcodeBare);
  ------------------
  |  |   61|  3.57k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.57k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.57k|  do {                         \
  |  |  |  |  |  |   42|  3.57k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.57k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.57k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.57k|               #member " callback failed")
  ------------------
 1847|  3.57k|        break;
 1848|       |
 1849|  3.57k|      default:
  ------------------
  |  Branch (1849:7): [True: 3.08k, False: 7.82M]
  ------------------
 1850|  3.08k|        return ReportUnexpectedOpcode(opcode);
 1851|  7.82M|    }
 1852|  7.82M|  }
 1853|       |
 1854|  4.50k|  PrintError("%s must end with END opcode", context);
 1855|  4.50k|  return Result::Error;
 1856|  51.3k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadOpcodeEPNS_6OpcodeEPKc:
  260|  7.82M|Result BinaryReader::ReadOpcode(Opcode* out_value, const char* desc) {
  261|  7.82M|  uint8_t value = 0;
  262|  7.82M|  CHECK_RESULT(ReadU8(&value, desc));
  ------------------
  |  |   55|  7.82M|  do {                              \
  |  |   56|  7.82M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 514, False: 7.82M]
  |  |  ------------------
  |  |   57|    514|      return ::wabt::Result::Error; \
  |  |   58|    514|    }                               \
  |  |   59|  7.82M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  263|       |
  264|  7.82M|  if (Opcode::IsPrefixByte(value)) {
  ------------------
  |  Branch (264:7): [True: 323k, False: 7.50M]
  ------------------
  265|   323k|    uint32_t code;
  266|   323k|    CHECK_RESULT(ReadU32Leb128(&code, desc));
  ------------------
  |  |   55|   323k|  do {                              \
  |  |   56|   323k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 396, False: 323k]
  |  |  ------------------
  |  |   57|    396|      return ::wabt::Result::Error; \
  |  |   58|    396|    }                               \
  |  |   59|   323k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  267|   323k|    *out_value = Opcode::FromCode(value, code);
  268|  7.50M|  } else {
  269|  7.50M|    *out_value = Opcode::FromCode(value);
  270|  7.50M|  }
  271|  7.82M|  return Result::Ok;
  272|  7.82M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader22ReportUnexpectedOpcodeENS_6OpcodeEPKc:
  240|  3.36k|Result BinaryReader::ReportUnexpectedOpcode(Opcode opcode, const char* where) {
  241|  3.36k|  std::string message = "unexpected opcode";
  242|  3.36k|  if (where) {
  ------------------
  |  Branch (242:7): [True: 0, False: 3.36k]
  ------------------
  243|      0|    message += ' ';
  244|      0|    message += where;
  245|      0|  }
  246|       |
  247|  3.36k|  message += ":";
  248|       |
  249|  3.36k|  std::vector<uint8_t> bytes = opcode.GetBytes();
  250|  3.36k|  assert(bytes.size() > 0);
  251|       |
  252|  5.02k|  for (uint8_t byte : bytes) {
  ------------------
  |  Branch (252:21): [True: 5.02k, False: 3.36k]
  ------------------
  253|  5.02k|    message += StringPrintf(" 0x%x", byte);
  254|  5.02k|  }
  255|       |
  256|  3.36k|  PrintError("%s", message.c_str());
  257|  3.36k|  return Result::Error;
  258|  3.36k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader11IsBlockTypeENS_4TypeE:
  551|  4.79M|bool BinaryReader::IsBlockType(Type type) {
  552|  4.79M|  if (IsConcreteType(type) || type == Type::Void) {
  ------------------
  |  Branch (552:7): [True: 33.9k, False: 4.76M]
  |  Branch (552:31): [True: 754, False: 4.76M]
  ------------------
  553|  34.7k|    return true;
  554|  34.7k|  }
  555|       |
  556|  4.76M|  if (!(options_.features.multi_value_enabled() && type.IsIndex())) {
  ------------------
  |  Branch (556:9): [True: 4.76M, False: 0]
  |  Branch (556:52): [True: 4.75M, False: 446]
  ------------------
  557|    446|    return false;
  558|    446|  }
  559|       |
  560|  4.75M|  return true;
  561|  4.76M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadS64Leb128EPmPKc:
  341|  25.9k|Result BinaryReader::ReadS64Leb128(uint64_t* out_value, const char* desc) {
  342|  25.9k|  const uint8_t* p = state_.data + state_.offset;
  343|  25.9k|  const uint8_t* end = state_.data + read_end_;
  344|  25.9k|  size_t bytes_read = wabt::ReadS64Leb128(p, end, out_value);
  345|  25.9k|  ERROR_UNLESS(bytes_read > 0, "unable to read i64 leb128: %s", desc);
  ------------------
  |  |   48|  25.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  25.9k|  do {                         \
  |  |  |  |   42|  25.9k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 198, False: 25.7k]
  |  |  |  |  ------------------
  |  |  |  |   43|    198|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    198|      return Result::Error;    \
  |  |  |  |   45|    198|    }                          \
  |  |  |  |   46|  25.9k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  346|  25.7k|  state_.offset += bytes_read;
  347|  25.7k|  return Result::Ok;
  348|  25.9k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadF32EPjPKc:
  302|   242k|Result BinaryReader::ReadF32(uint32_t* out_value, const char* desc) {
  303|   242k|  return ReadT(out_value, "float", desc);
  304|   242k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadF64EPmPKc:
  306|  27.1k|Result BinaryReader::ReadF64(uint64_t* out_value, const char* desc) {
  307|  27.1k|  return ReadT(out_value, "double", desc);
  308|  27.1k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTImEENS_6ResultEPT_PKcS7_:
  277|  27.1k|                           const char* desc) {
  278|  27.1k|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (278:7): [True: 56, False: 27.0k]
  ------------------
  279|     56|    PrintError("unable to read %s: %s", type_name, desc);
  280|     56|    return Result::Error;
  281|     56|  }
  282|       |#if WABT_BIG_ENDIAN
  283|       |  uint8_t tmp[sizeof(T)];
  284|       |  memcpy(tmp, state_.data + state_.offset, sizeof(tmp));
  285|       |  SwapBytesSized(tmp, sizeof(tmp));
  286|       |  memcpy(out_value, tmp, sizeof(T));
  287|       |#else
  288|  27.0k|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  289|  27.0k|#endif
  290|  27.0k|  state_.offset += sizeof(T);
  291|  27.0k|  return Result::Ok;
  292|  27.1k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader8ReadV128EP4v128PKc:
  310|  2.46k|Result BinaryReader::ReadV128(v128* out_value, const char* desc) {
  311|  2.46k|  return ReadT(out_value, "v128", desc);
  312|  2.46k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTI4v128EENS_6ResultEPT_PKcS8_:
  277|  2.46k|                           const char* desc) {
  278|  2.46k|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (278:7): [True: 41, False: 2.42k]
  ------------------
  279|     41|    PrintError("unable to read %s: %s", type_name, desc);
  280|     41|    return Result::Error;
  281|     41|  }
  282|       |#if WABT_BIG_ENDIAN
  283|       |  uint8_t tmp[sizeof(T)];
  284|       |  memcpy(tmp, state_.data + state_.offset, sizeof(tmp));
  285|       |  SwapBytesSized(tmp, sizeof(tmp));
  286|       |  memcpy(out_value, tmp, sizeof(T));
  287|       |#else
  288|  2.42k|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  289|  2.42k|#endif
  290|  2.42k|  state_.offset += sizeof(T);
  291|  2.42k|  return Result::Ok;
  292|  2.46k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadMemLocationEPmPjS2_PKcS5_S5_Ph:
  455|   178k|                                     uint8_t* lane_val) {
  456|   178k|  CHECK_RESULT(ReadAlignment(alignment_log2, desc_align));
  ------------------
  |  |   55|   178k|  do {                              \
  |  |   56|   178k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.29k, False: 177k]
  |  |  ------------------
  |  |   57|  1.29k|      return ::wabt::Result::Error; \
  |  |   58|  1.29k|    }                               \
  |  |   59|   178k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  457|   177k|  *memidx = 0;
  458|   177k|  if (*alignment_log2 >> 6) {
  ------------------
  |  Branch (458:7): [True: 40.5k, False: 136k]
  ------------------
  459|  40.5k|    ERROR_IF(!options_.features.multi_memory_enabled(),
  ------------------
  |  |   41|  40.5k|  do {                         \
  |  |   42|  40.5k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 0, False: 40.5k]
  |  |  ------------------
  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |   44|      0|      return Result::Error;    \
  |  |   45|      0|    }                          \
  |  |   46|  40.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  460|  40.5k|             "multi_memory not allowed");
  461|  40.5k|    *alignment_log2 = *alignment_log2 & ((1 << 6) - 1);
  462|  40.5k|    CHECK_RESULT(ReadMemidx(memidx, desc_memidx));
  ------------------
  |  |   55|  40.5k|  do {                              \
  |  |   56|  40.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 112, False: 40.4k]
  |  |  ------------------
  |  |   57|    112|      return ::wabt::Result::Error; \
  |  |   58|    112|    }                               \
  |  |   59|  40.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  463|  40.5k|  }
  464|   177k|  CHECK_RESULT(ReadAddress(offset, 0, desc_offset));
  ------------------
  |  |   55|   177k|  do {                              \
  |  |   56|   177k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 398, False: 176k]
  |  |  ------------------
  |  |   57|    398|      return ::wabt::Result::Error; \
  |  |   58|    398|    }                               \
  |  |   59|   177k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  465|       |
  466|   176k|  if (lane_val) {
  ------------------
  |  Branch (466:7): [True: 15.3k, False: 161k]
  ------------------
  467|  15.3k|    CHECK_RESULT(ReadU8(lane_val, "Lane idx"));
  ------------------
  |  |   55|  15.3k|  do {                              \
  |  |   56|  15.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 21, False: 15.2k]
  |  |  ------------------
  |  |   57|     21|      return ::wabt::Result::Error; \
  |  |   58|     21|    }                               \
  |  |   59|  15.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  468|  15.3k|  }
  469|       |
  470|   176k|  return Result::Ok;
  471|   176k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader11ReadAddressEPmjPKc:
  656|   177k|                                 const char* desc) {
  657|   177k|  if (options_.features.memory64_enabled()) {
  ------------------
  |  Branch (657:7): [True: 177k, False: 0]
  ------------------
  658|   177k|    return ReadU64Leb128(out_value, desc);
  659|   177k|  } else {
  660|      0|    uint32_t val;
  661|      0|    Result res = ReadU32Leb128(&val, desc);
  662|      0|    *out_value = val;
  663|      0|    return res;
  664|      0|  }
  665|   177k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader19CallbackMemLocationEPKmPKjS3_PKh:
  476|   176k|                                         const uint8_t* lane_val) {
  477|   176k|  if (lane_val) {
  ------------------
  |  Branch (477:7): [True: 15.2k, False: 161k]
  ------------------
  478|  15.2k|    if (*memidx) {
  ------------------
  |  Branch (478:9): [True: 9.72k, False: 5.55k]
  ------------------
  479|  9.72k|      CALLBACK(OnOpcodeUint32Uint32Uint32Uint32, *alignment_log2, *memidx,
  ------------------
  |  |   61|  9.72k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  9.72k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  9.72k|  do {                         \
  |  |  |  |  |  |   42|  9.72k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 9.72k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  9.72k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  9.72k|               #member " callback failed")
  ------------------
  480|  9.72k|               *offset, *lane_val);
  481|  9.72k|    } else {
  482|  5.55k|      CALLBACK(OnOpcodeUint32Uint32Uint32, *alignment_log2, *offset, *lane_val);
  ------------------
  |  |   61|  5.55k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.55k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.55k|  do {                         \
  |  |  |  |  |  |   42|  5.55k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.55k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.55k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.55k|               #member " callback failed")
  ------------------
  483|  5.55k|    }
  484|   161k|  } else {
  485|   161k|    if (*memidx) {
  ------------------
  |  Branch (485:9): [True: 25.6k, False: 135k]
  ------------------
  486|  25.6k|      CALLBACK(OnOpcodeUint32Uint32Uint32, *alignment_log2, *memidx, *offset);
  ------------------
  |  |   61|  25.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  25.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  25.6k|  do {                         \
  |  |  |  |  |  |   42|  25.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 25.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  25.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  25.6k|               #member " callback failed")
  ------------------
  487|   135k|    } else {
  488|   135k|      CALLBACK(OnOpcodeUint32Uint32, *alignment_log2, *offset);
  ------------------
  |  |   61|   135k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   135k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   135k|  do {                         \
  |  |  |  |  |  |   42|   135k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 135k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   135k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   135k|               #member " callback failed")
  ------------------
  489|   135k|    }
  490|   161k|  }
  491|       |
  492|   176k|  return Result::Ok;
  493|   176k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadMemidxEPjPKc:
  444|  61.6k|Result BinaryReader::ReadMemidx(Index* memidx, const char* desc) {
  445|  61.6k|  CHECK_RESULT(ReadIndex(memidx, desc));
  ------------------
  |  |   55|  61.6k|  do {                              \
  |  |   56|  61.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 199, False: 61.4k]
  |  |  ------------------
  |  |   57|    199|      return ::wabt::Result::Error; \
  |  |   58|    199|    }                               \
  |  |   59|  61.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  446|  61.4k|  return Result::Ok;
  447|  61.6k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadExportSectionEm:
 2668|  2.46k|Result BinaryReader::ReadExportSection(Offset section_size) {
 2669|  2.46k|  CALLBACK(BeginExportSection, section_size);
  ------------------
  |  |   61|  2.46k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.46k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.46k|  do {                         \
  |  |  |  |  |  |   42|  2.46k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.46k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.46k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.46k|               #member " callback failed")
  ------------------
 2670|  2.46k|  Index num_exports;
 2671|  2.46k|  CHECK_RESULT(ReadCount(&num_exports, "export count"));
  ------------------
  |  |   55|  2.46k|  do {                              \
  |  |   56|  2.46k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 475, False: 1.99k]
  |  |  ------------------
  |  |   57|    475|      return ::wabt::Result::Error; \
  |  |   58|    475|    }                               \
  |  |   59|  2.46k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2672|  1.99k|  CALLBACK(OnExportCount, num_exports);
  ------------------
  |  |   61|  1.99k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.99k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.99k|  do {                         \
  |  |  |  |  |  |   42|  1.99k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.99k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.99k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.99k|               #member " callback failed")
  ------------------
 2673|  12.0k|  for (Index i = 0; i < num_exports; ++i) {
  ------------------
  |  Branch (2673:21): [True: 11.8k, False: 145]
  ------------------
 2674|  11.8k|    std::string_view name;
 2675|  11.8k|    CHECK_RESULT(ReadStr(&name, "export item name"));
  ------------------
  |  |   55|  11.8k|  do {                              \
  |  |   56|  11.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.17k, False: 10.7k]
  |  |  ------------------
  |  |   57|  1.17k|      return ::wabt::Result::Error; \
  |  |   58|  1.17k|    }                               \
  |  |   59|  11.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2676|       |
 2677|  10.7k|    ExternalKind kind;
 2678|  10.7k|    CHECK_RESULT(ReadExternalKind(&kind, "export kind"));
  ------------------
  |  |   55|  10.7k|  do {                              \
  |  |   56|  10.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 620, False: 10.0k]
  |  |  ------------------
  |  |   57|    620|      return ::wabt::Result::Error; \
  |  |   58|    620|    }                               \
  |  |   59|  10.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2679|       |
 2680|  10.0k|    Index item_index;
 2681|  10.0k|    CHECK_RESULT(ReadIndex(&item_index, "export item index"));
  ------------------
  |  |   55|  10.0k|  do {                              \
  |  |   56|  10.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 50, False: 10.0k]
  |  |  ------------------
  |  |   57|     50|      return ::wabt::Result::Error; \
  |  |   58|     50|    }                               \
  |  |   59|  10.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2682|  10.0k|    if (kind == ExternalKind::Tag) {
  ------------------
  |  Branch (2682:9): [True: 185, False: 9.86k]
  ------------------
 2683|    185|      ERROR_UNLESS(options_.features.exceptions_enabled(),
  ------------------
  |  |   48|    185|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    185|  do {                         \
  |  |  |  |   42|    185|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 185]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|    185|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2684|    185|                   "invalid export tag kind: exceptions not allowed");
 2685|    185|    }
 2686|       |
 2687|  10.0k|    CALLBACK(OnExport, i, static_cast<ExternalKind>(kind), item_index, name);
  ------------------
  |  |   61|  10.0k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  10.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.0k|  do {                         \
  |  |  |  |  |  |   42|  10.0k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  10.0k|               #member " callback failed")
  ------------------
 2688|  10.0k|  }
 2689|    145|  CALLBACK0(EndExportSection);
  ------------------
  |  |   58|    145|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    145|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    145|  do {                         \
  |  |  |  |  |  |   42|    145|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 145]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    145|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2690|    145|  return Result::Ok;
 2691|    145|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadExternalKindEPNS_12ExternalKindEPKc:
  372|  17.2k|                                      const char* desc) {
  373|  17.2k|  uint8_t value = 0;
  374|  17.2k|  CHECK_RESULT(ReadU8(&value, desc));
  ------------------
  |  |   55|  17.2k|  do {                              \
  |  |   56|  17.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 265, False: 17.0k]
  |  |  ------------------
  |  |   57|    265|      return ::wabt::Result::Error; \
  |  |   58|    265|    }                               \
  |  |   59|  17.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  375|  17.0k|  ERROR_UNLESS(value < kExternalKindCount, "invalid export external kind: %d",
  ------------------
  |  |   48|  17.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  17.0k|  do {                         \
  |  |  |  |   42|  17.0k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 405, False: 16.5k]
  |  |  |  |  ------------------
  |  |  |  |   43|    405|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    405|      return Result::Error;    \
  |  |  |  |   45|    405|    }                          \
  |  |  |  |   46|  17.0k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  376|  16.5k|               value);
  377|  16.5k|  *out_value = static_cast<ExternalKind>(value);
  378|  16.5k|  return Result::Ok;
  379|  17.0k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadStartSectionEm:
 2693|    500|Result BinaryReader::ReadStartSection(Offset section_size) {
 2694|    500|  CALLBACK(BeginStartSection, section_size);
  ------------------
  |  |   61|    500|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    500|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    500|  do {                         \
  |  |  |  |  |  |   42|    500|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 500]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    500|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    500|               #member " callback failed")
  ------------------
 2695|    500|  Index func_index;
 2696|    500|  CHECK_RESULT(ReadIndex(&func_index, "start function index"));
  ------------------
  |  |   55|    500|  do {                              \
  |  |   56|    500|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 155, False: 345]
  |  |  ------------------
  |  |   57|    155|      return ::wabt::Result::Error; \
  |  |   58|    155|    }                               \
  |  |   59|    500|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2697|    345|  CALLBACK(OnStartFunction, func_index);
  ------------------
  |  |   61|    345|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    345|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    345|  do {                         \
  |  |  |  |  |  |   42|    345|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 345]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    345|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    345|               #member " callback failed")
  ------------------
 2698|    345|  CALLBACK0(EndStartSection);
  ------------------
  |  |   58|    345|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    345|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    345|  do {                         \
  |  |  |  |  |  |   42|    345|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 345]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    345|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2699|    345|  return Result::Ok;
 2700|    345|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadElemSectionEm:
 2702|  9.93k|Result BinaryReader::ReadElemSection(Offset section_size) {
 2703|  9.93k|  CALLBACK(BeginElemSection, section_size);
  ------------------
  |  |   61|  9.93k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  9.93k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  9.93k|  do {                         \
  |  |  |  |  |  |   42|  9.93k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 9.93k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  9.93k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  9.93k|               #member " callback failed")
  ------------------
 2704|  9.93k|  Index num_elem_segments;
 2705|  9.93k|  CHECK_RESULT(ReadCount(&num_elem_segments, "elem segment count"));
  ------------------
  |  |   55|  9.93k|  do {                              \
  |  |   56|  9.93k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 290, False: 9.64k]
  |  |  ------------------
  |  |   57|    290|      return ::wabt::Result::Error; \
  |  |   58|    290|    }                               \
  |  |   59|  9.93k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2706|  9.64k|  CALLBACK(OnElemSegmentCount, num_elem_segments);
  ------------------
  |  |   61|  9.64k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  9.64k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  9.64k|  do {                         \
  |  |  |  |  |  |   42|  9.64k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 9.64k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  9.64k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  9.64k|               #member " callback failed")
  ------------------
 2707|  33.9k|  for (Index i = 0; i < num_elem_segments; ++i) {
  ------------------
  |  Branch (2707:21): [True: 33.8k, False: 65]
  ------------------
 2708|  33.8k|    uint32_t flags;
 2709|  33.8k|    CHECK_RESULT(ReadU32Leb128(&flags, "elem segment flags"));
  ------------------
  |  |   55|  33.8k|  do {                              \
  |  |   56|  33.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 200, False: 33.6k]
  |  |  ------------------
  |  |   57|    200|      return ::wabt::Result::Error; \
  |  |   58|    200|    }                               \
  |  |   59|  33.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2710|  33.6k|    ERROR_IF(flags > SegFlagMax, "invalid elem segment flags: %#x", flags);
  ------------------
  |  |   41|  33.6k|  do {                         \
  |  |   42|  33.6k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 395, False: 33.2k]
  |  |  ------------------
  |  |   43|    395|      PrintError(__VA_ARGS__); \
  |  |   44|    395|      return Result::Error;    \
  |  |   45|    395|    }                          \
  |  |   46|  33.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2711|  33.2k|    Index table_index(0);
 2712|  33.2k|    if ((flags & (SegPassive | SegExplicitIndex)) == SegExplicitIndex) {
  ------------------
  |  Branch (2712:9): [True: 740, False: 32.5k]
  ------------------
 2713|    740|      CHECK_RESULT(ReadIndex(&table_index, "elem segment table index"));
  ------------------
  |  |   55|    740|  do {                              \
  |  |   56|    740|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 735]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|    740|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2714|    740|    }
 2715|  33.2k|    Type elem_type = Type::FuncRef;
 2716|       |
 2717|  33.2k|    CALLBACK(BeginElemSegment, i, table_index, flags);
  ------------------
  |  |   61|  33.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  33.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  33.2k|  do {                         \
  |  |  |  |  |  |   42|  33.2k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 33.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  33.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  33.2k|               #member " callback failed")
  ------------------
 2718|       |
 2719|  33.2k|    if (!(flags & SegPassive)) {
  ------------------
  |  Branch (2719:9): [True: 26.1k, False: 7.11k]
  ------------------
 2720|  26.1k|      CALLBACK(BeginElemSegmentInitExpr, i);
  ------------------
  |  |   61|  26.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  26.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  26.1k|  do {                         \
  |  |  |  |  |  |   42|  26.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 26.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  26.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  26.1k|               #member " callback failed")
  ------------------
 2721|  26.1k|      CHECK_RESULT(ReadInitExpr(i));
  ------------------
  |  |   55|  26.1k|  do {                              \
  |  |   56|  26.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7.88k, False: 18.2k]
  |  |  ------------------
  |  |   57|  7.88k|      return ::wabt::Result::Error; \
  |  |   58|  7.88k|    }                               \
  |  |   59|  26.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2722|  18.2k|      CALLBACK(EndElemSegmentInitExpr, i);
  ------------------
  |  |   61|  18.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  18.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  18.2k|  do {                         \
  |  |  |  |  |  |   42|  18.2k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 18.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  18.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  18.2k|               #member " callback failed")
  ------------------
 2723|  18.2k|    }
 2724|       |
 2725|       |    // For backwards compat we support not declaring the element kind.
 2726|  25.3k|    if (flags & (SegPassive | SegExplicitIndex)) {
  ------------------
  |  Branch (2726:9): [True: 7.16k, False: 18.2k]
  ------------------
 2727|  7.16k|      if (flags & SegUseElemExprs) {
  ------------------
  |  Branch (2727:11): [True: 610, False: 6.55k]
  ------------------
 2728|    610|        CHECK_RESULT(ReadRefType(&elem_type, "table elem type"));
  ------------------
  |  |   55|    610|  do {                              \
  |  |   56|    610|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 250, False: 360]
  |  |  ------------------
  |  |   57|    250|      return ::wabt::Result::Error; \
  |  |   58|    250|    }                               \
  |  |   59|    610|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2729|  6.55k|      } else {
 2730|  6.55k|        ExternalKind kind;
 2731|  6.55k|        CHECK_RESULT(ReadExternalKind(&kind, "export kind"));
  ------------------
  |  |   55|  6.55k|  do {                              \
  |  |   56|  6.55k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 50, False: 6.50k]
  |  |  ------------------
  |  |   57|     50|      return ::wabt::Result::Error; \
  |  |   58|     50|    }                               \
  |  |   59|  6.55k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2732|  6.50k|        ERROR_UNLESS(kind == ExternalKind::Func,
  ------------------
  |  |   48|  6.50k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  6.50k|  do {                         \
  |  |  |  |   42|  6.50k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 20, False: 6.48k]
  |  |  |  |  ------------------
  |  |  |  |   43|     20|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     20|      return Result::Error;    \
  |  |  |  |   45|     20|    }                          \
  |  |  |  |   46|  6.50k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2733|  6.48k|                     "segment elem type must be func (%s)",
 2734|  6.48k|                     elem_type.GetName().c_str());
 2735|  6.48k|        elem_type = Type::FuncRef;
 2736|  6.48k|      }
 2737|  7.16k|    }
 2738|       |
 2739|  25.0k|    CALLBACK(OnElemSegmentElemType, i, elem_type);
  ------------------
  |  |   61|  25.0k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  25.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  25.0k|  do {                         \
  |  |  |  |  |  |   42|  25.0k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 25.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  25.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  25.0k|               #member " callback failed")
  ------------------
 2740|       |
 2741|  25.0k|    Index num_elem_exprs;
 2742|  25.0k|    CHECK_RESULT(ReadCount(&num_elem_exprs, "elem count"));
  ------------------
  |  |   55|  25.0k|  do {                              \
  |  |   56|  25.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 330, False: 24.7k]
  |  |  ------------------
  |  |   57|    330|      return ::wabt::Result::Error; \
  |  |   58|    330|    }                               \
  |  |   59|  25.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2743|       |
 2744|  24.7k|    CALLBACK(OnElemSegmentElemExprCount, i, num_elem_exprs);
  ------------------
  |  |   61|  24.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  24.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  24.7k|  do {                         \
  |  |  |  |  |  |   42|  24.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 24.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  24.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  24.7k|               #member " callback failed")
  ------------------
 2745|  62.2k|    for (Index j = 0; j < num_elem_exprs; ++j) {
  ------------------
  |  Branch (2745:23): [True: 37.9k, False: 24.2k]
  ------------------
 2746|  37.9k|      CALLBACK(BeginElemExpr, i, j);
  ------------------
  |  |   61|  37.9k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  37.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  37.9k|  do {                         \
  |  |  |  |  |  |   42|  37.9k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 37.9k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  37.9k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  37.9k|               #member " callback failed")
  ------------------
 2747|  37.9k|      if (flags & SegUseElemExprs) {
  ------------------
  |  Branch (2747:11): [True: 4.39k, False: 33.5k]
  ------------------
 2748|  4.39k|        CHECK_RESULT(ReadInitExpr(j));
  ------------------
  |  |   55|  4.39k|  do {                              \
  |  |   56|  4.39k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 350, False: 4.04k]
  |  |  ------------------
  |  |   57|    350|      return ::wabt::Result::Error; \
  |  |   58|    350|    }                               \
  |  |   59|  4.39k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2749|  33.5k|      } else {
 2750|  33.5k|        Index func_index;
 2751|  33.5k|        CHECK_RESULT(ReadIndex(&func_index, "elem expr func index"));
  ------------------
  |  |   55|  33.5k|  do {                              \
  |  |   56|  33.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 90, False: 33.5k]
  |  |  ------------------
  |  |   57|     90|      return ::wabt::Result::Error; \
  |  |   58|     90|    }                               \
  |  |   59|  33.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2752|  33.5k|        CALLBACK(OnOpcode, Opcode::RefFunc);
  ------------------
  |  |   61|  33.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  33.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  33.5k|  do {                         \
  |  |  |  |  |  |   42|  33.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 33.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  33.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  33.5k|               #member " callback failed")
  ------------------
 2753|  33.5k|        CALLBACK(OnRefFuncExpr, func_index);
  ------------------
  |  |   61|  33.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  33.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  33.5k|  do {                         \
  |  |  |  |  |  |   42|  33.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 33.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  33.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  33.5k|               #member " callback failed")
  ------------------
 2754|  33.5k|        CALLBACK(OnOpcodeUint32, func_index);
  ------------------
  |  |   61|  33.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  33.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  33.5k|  do {                         \
  |  |  |  |  |  |   42|  33.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 33.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  33.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  33.5k|               #member " callback failed")
  ------------------
 2755|  33.5k|        CALLBACK0(OnEndExpr);
  ------------------
  |  |   58|  33.5k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  33.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  33.5k|  do {                         \
  |  |  |  |  |  |   42|  33.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 33.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  33.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2756|  33.5k|      }
 2757|  37.5k|      CALLBACK(EndElemExpr, i, j);
  ------------------
  |  |   61|  37.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  37.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  37.5k|  do {                         \
  |  |  |  |  |  |   42|  37.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 37.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  37.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  37.5k|               #member " callback failed")
  ------------------
 2758|  37.5k|    }
 2759|  24.2k|    CALLBACK(EndElemSegment, i);
  ------------------
  |  |   61|  24.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  24.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  24.2k|  do {                         \
  |  |  |  |  |  |   42|  24.2k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 24.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  24.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  24.2k|               #member " callback failed")
  ------------------
 2760|  24.2k|  }
 2761|     65|  CALLBACK0(EndElemSection);
  ------------------
  |  |   58|     65|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|     65|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     65|  do {                         \
  |  |  |  |  |  |   42|     65|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 65]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     65|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2762|     65|  return Result::Ok;
 2763|     65|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadCodeSectionEm:
 2765|  8.60k|Result BinaryReader::ReadCodeSection(Offset section_size) {
 2766|  8.60k|  CALLBACK(BeginCodeSection, section_size);
  ------------------
  |  |   61|  8.60k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  8.60k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  8.60k|  do {                         \
  |  |  |  |  |  |   42|  8.60k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 8.60k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  8.60k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  8.60k|               #member " callback failed")
  ------------------
 2767|  8.60k|  CHECK_RESULT(ReadCount(&num_function_bodies_, "function body count"));
  ------------------
  |  |   55|  8.60k|  do {                              \
  |  |   56|  8.60k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 230, False: 8.37k]
  |  |  ------------------
  |  |   57|    230|      return ::wabt::Result::Error; \
  |  |   58|    230|    }                               \
  |  |   59|  8.60k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2768|  8.37k|  ERROR_UNLESS(num_function_signatures_ == num_function_bodies_,
  ------------------
  |  |   48|  8.37k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  8.37k|  do {                         \
  |  |  |  |   42|  8.37k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 200, False: 8.17k]
  |  |  |  |  ------------------
  |  |  |  |   43|    200|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    200|      return Result::Error;    \
  |  |  |  |   45|    200|    }                          \
  |  |  |  |   46|  8.37k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2769|  8.17k|               "function signature count != function body count");
 2770|  8.17k|  CALLBACK(OnFunctionBodyCount, num_function_bodies_);
  ------------------
  |  |   61|  8.17k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  8.17k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  8.17k|  do {                         \
  |  |  |  |  |  |   42|  8.17k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 8.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  8.17k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  8.17k|               #member " callback failed")
  ------------------
 2771|  17.2k|  for (Index i = 0; i < num_function_bodies_; ++i) {
  ------------------
  |  Branch (2771:21): [True: 16.8k, False: 414]
  ------------------
 2772|  16.8k|    Index func_index = num_func_imports_ + i;
 2773|  16.8k|    Offset func_offset = state_.offset;
 2774|  16.8k|    state_.offset = func_offset;
 2775|  16.8k|    uint32_t body_size;
 2776|  16.8k|    CHECK_RESULT(ReadU32Leb128(&body_size, "function body size"));
  ------------------
  |  |   55|  16.8k|  do {                              \
  |  |   56|  16.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5.18k, False: 11.6k]
  |  |  ------------------
  |  |   57|  5.18k|      return ::wabt::Result::Error; \
  |  |   58|  5.18k|    }                               \
  |  |   59|  16.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2777|  11.6k|    Offset body_start_offset = state_.offset;
 2778|  11.6k|    Offset end_offset = body_start_offset + body_size;
 2779|  11.6k|    CALLBACK(BeginFunctionBody, func_index, body_size);
  ------------------
  |  |   61|  11.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  11.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  11.6k|  do {                         \
  |  |  |  |  |  |   42|  11.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 11.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  11.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  11.6k|               #member " callback failed")
  ------------------
 2780|       |
 2781|  11.6k|    uint64_t total_locals = 0;
 2782|  11.6k|    Index num_local_decls;
 2783|  11.6k|    CHECK_RESULT(ReadCount(&num_local_decls, "local declaration count"));
  ------------------
  |  |   55|  11.6k|  do {                              \
  |  |   56|  11.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 496, False: 11.1k]
  |  |  ------------------
  |  |   57|    496|      return ::wabt::Result::Error; \
  |  |   58|    496|    }                               \
  |  |   59|  11.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2784|  11.1k|    CALLBACK(OnLocalDeclCount, num_local_decls);
  ------------------
  |  |   61|  11.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  11.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  11.1k|  do {                         \
  |  |  |  |  |  |   42|  11.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  11.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  11.1k|               #member " callback failed")
  ------------------
 2785|  16.4k|    for (Index k = 0; k < num_local_decls; ++k) {
  ------------------
  |  Branch (2785:23): [True: 5.85k, False: 10.5k]
  ------------------
 2786|  5.85k|      Index num_local_types;
 2787|  5.85k|      CHECK_RESULT(ReadIndex(&num_local_types, "local type count"));
  ------------------
  |  |   55|  5.85k|  do {                              \
  |  |   56|  5.85k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 85, False: 5.77k]
  |  |  ------------------
  |  |   57|     85|      return ::wabt::Result::Error; \
  |  |   58|     85|    }                               \
  |  |   59|  5.85k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2788|  5.77k|      total_locals += num_local_types;
 2789|  5.77k|      ERROR_UNLESS(total_locals <= UINT32_MAX, "local count must be <= 0x%x",
  ------------------
  |  |   48|  5.77k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  5.77k|  do {                         \
  |  |  |  |   42|  5.77k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 10, False: 5.76k]
  |  |  |  |  ------------------
  |  |  |  |   43|     10|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     10|      return Result::Error;    \
  |  |  |  |   45|     10|    }                          \
  |  |  |  |   46|  5.77k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2790|  5.76k|                   UINT32_MAX);
 2791|  5.76k|      Type local_type;
 2792|  5.76k|      CHECK_RESULT(ReadType(&local_type, "local type"));
  ------------------
  |  |   55|  5.76k|  do {                              \
  |  |   56|  5.76k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 104, False: 5.65k]
  |  |  ------------------
  |  |   57|    104|      return ::wabt::Result::Error; \
  |  |   58|    104|    }                               \
  |  |   59|  5.76k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2793|  5.65k|      ERROR_UNLESS(IsConcreteType(local_type), "expected valid local type");
  ------------------
  |  |   48|  5.65k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  5.65k|  do {                         \
  |  |  |  |   42|  5.65k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 415, False: 5.24k]
  |  |  |  |  ------------------
  |  |  |  |   43|    415|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    415|      return Result::Error;    \
  |  |  |  |   45|    415|    }                          \
  |  |  |  |   46|  5.65k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2794|  5.24k|      CALLBACK(OnLocalDecl, k, num_local_types, local_type);
  ------------------
  |  |   61|  5.24k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.24k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.24k|  do {                         \
  |  |  |  |  |  |   42|  5.24k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.24k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.24k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.24k|               #member " callback failed")
  ------------------
 2795|  5.24k|    }
 2796|       |
 2797|  10.5k|    if (options_.skip_function_bodies) {
  ------------------
  |  Branch (2797:9): [True: 8.65k, False: 1.92k]
  ------------------
 2798|  8.65k|      state_.offset = end_offset;
 2799|  8.65k|    } else {
 2800|  1.92k|      CHECK_RESULT(ReadFunctionBody(end_offset));
  ------------------
  |  |   55|  1.92k|  do {                              \
  |  |   56|  1.92k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.47k, False: 459]
  |  |  ------------------
  |  |   57|  1.47k|      return ::wabt::Result::Error; \
  |  |   58|  1.47k|    }                               \
  |  |   59|  1.92k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2801|  1.92k|    }
 2802|       |
 2803|  9.11k|    CALLBACK(EndFunctionBody, func_index);
  ------------------
  |  |   61|  9.11k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  9.11k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  9.11k|  do {                         \
  |  |  |  |  |  |   42|  9.11k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 9.11k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  9.11k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  9.11k|               #member " callback failed")
  ------------------
 2804|  9.11k|  }
 2805|    414|  CALLBACK0(EndCodeSection);
  ------------------
  |  |   58|    414|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    414|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    414|  do {                         \
  |  |  |  |  |  |   42|    414|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 414]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    414|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2806|    414|  return Result::Ok;
 2807|    414|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadFunctionBodyEm:
  667|  1.92k|Result BinaryReader::ReadFunctionBody(Offset end_offset) {
  668|  1.92k|  CHECK_RESULT(ReadInstructions(end_offset, "function body"));
  ------------------
  |  |   55|  1.92k|  do {                              \
  |  |   56|  1.92k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.45k, False: 477]
  |  |  ------------------
  |  |   57|  1.45k|      return ::wabt::Result::Error; \
  |  |   58|  1.45k|    }                               \
  |  |   59|  1.92k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  669|    477|  ERROR_UNLESS(state_.offset == end_offset,
  ------------------
  |  |   48|    477|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    477|  do {                         \
  |  |  |  |   42|    477|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 18, False: 459]
  |  |  |  |  ------------------
  |  |  |  |   43|     18|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     18|      return Result::Error;    \
  |  |  |  |   45|     18|    }                          \
  |  |  |  |   46|    477|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  670|    459|               "function body shorter than given size");
  671|    459|  return Result::Ok;
  672|    477|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadDataSectionEm:
 2809|  4.53k|Result BinaryReader::ReadDataSection(Offset section_size) {
 2810|  4.53k|  CALLBACK(BeginDataSection, section_size);
  ------------------
  |  |   61|  4.53k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.53k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.53k|  do {                         \
  |  |  |  |  |  |   42|  4.53k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.53k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.53k|               #member " callback failed")
  ------------------
 2811|  4.53k|  Index num_data_segments;
 2812|  4.53k|  CHECK_RESULT(ReadCount(&num_data_segments, "data segment count"));
  ------------------
  |  |   55|  4.53k|  do {                              \
  |  |   56|  4.53k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 360, False: 4.17k]
  |  |  ------------------
  |  |   57|    360|      return ::wabt::Result::Error; \
  |  |   58|    360|    }                               \
  |  |   59|  4.53k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2813|  4.17k|  CALLBACK(OnDataSegmentCount, num_data_segments);
  ------------------
  |  |   61|  4.17k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.17k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.17k|  do {                         \
  |  |  |  |  |  |   42|  4.17k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.17k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.17k|               #member " callback failed")
  ------------------
 2814|       |  // If the DataCount section is not present, then data_count_ will be invalid.
 2815|  4.17k|  ERROR_UNLESS(data_count_ == kInvalidIndex || data_count_ == num_data_segments,
  ------------------
  |  |   48|  4.17k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  4.17k|  do {                         \
  |  |  |  |   42|  8.43k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 4.08k, False: 90]
  |  |  |  |  |  Branch (42:9): [True: 15, False: 75]
  |  |  |  |  ------------------
  |  |  |  |   43|     75|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     75|      return Result::Error;    \
  |  |  |  |   45|     75|    }                          \
  |  |  |  |   46|  4.17k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2816|  4.09k|               "data segment count does not equal count in DataCount section");
 2817|  22.6k|  for (Index i = 0; i < num_data_segments; ++i) {
  ------------------
  |  Branch (2817:21): [True: 22.5k, False: 105]
  ------------------
 2818|  22.5k|    uint32_t flags;
 2819|  22.5k|    CHECK_RESULT(ReadU32Leb128(&flags, "data segment flags"));
  ------------------
  |  |   55|  22.5k|  do {                              \
  |  |   56|  22.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 385, False: 22.1k]
  |  |  ------------------
  |  |   57|    385|      return ::wabt::Result::Error; \
  |  |   58|    385|    }                               \
  |  |   59|  22.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2820|  22.1k|    ERROR_IF(flags != 0 && !options_.features.bulk_memory_enabled(),
  ------------------
  |  |   41|  22.1k|  do {                         \
  |  |   42|  54.4k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 10.1k, False: 12.0k]
  |  |  |  Branch (42:9): [True: 0, False: 10.1k]
  |  |  ------------------
  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |   44|      0|      return Result::Error;    \
  |  |   45|      0|    }                          \
  |  |   46|  22.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2821|  22.1k|             "invalid memory index %d: bulk memory not allowed", flags);
 2822|  22.1k|    ERROR_IF(flags > SegFlagMax, "invalid data segment flags: %#x", flags);
  ------------------
  |  |   41|  22.1k|  do {                         \
  |  |   42|  22.1k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 410, False: 21.7k]
  |  |  ------------------
  |  |   43|    410|      PrintError(__VA_ARGS__); \
  |  |   44|    410|      return Result::Error;    \
  |  |   45|    410|    }                          \
  |  |   46|  22.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2823|  21.7k|    Index memory_index(0);
 2824|  21.7k|    if (flags & SegExplicitIndex) {
  ------------------
  |  Branch (2824:9): [True: 8.13k, False: 13.6k]
  ------------------
 2825|  8.13k|      CHECK_RESULT(ReadIndex(&memory_index, "data segment memory index"));
  ------------------
  |  |   55|  8.13k|  do {                              \
  |  |   56|  8.13k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 8.13k]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|  8.13k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2826|  8.13k|    }
 2827|  21.7k|    CALLBACK(BeginDataSegment, i, memory_index, flags);
  ------------------
  |  |   61|  21.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  21.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  21.7k|  do {                         \
  |  |  |  |  |  |   42|  21.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 21.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  21.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  21.7k|               #member " callback failed")
  ------------------
 2828|  21.7k|    if (!(flags & SegPassive)) {
  ------------------
  |  Branch (2828:9): [True: 13.1k, False: 8.55k]
  ------------------
 2829|  13.1k|      CALLBACK(BeginDataSegmentInitExpr, i);
  ------------------
  |  |   61|  13.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  13.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  13.1k|  do {                         \
  |  |  |  |  |  |   42|  13.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 13.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  13.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  13.1k|               #member " callback failed")
  ------------------
 2830|  13.1k|      CHECK_RESULT(ReadInitExpr(i));
  ------------------
  |  |   55|  13.1k|  do {                              \
  |  |   56|  13.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.93k, False: 10.2k]
  |  |  ------------------
  |  |   57|  2.93k|      return ::wabt::Result::Error; \
  |  |   58|  2.93k|    }                               \
  |  |   59|  13.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2831|  10.2k|      CALLBACK(EndDataSegmentInitExpr, i);
  ------------------
  |  |   61|  10.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  10.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.2k|  do {                         \
  |  |  |  |  |  |   42|  10.2k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  10.2k|               #member " callback failed")
  ------------------
 2832|  10.2k|    }
 2833|       |
 2834|  18.8k|    Address data_size;
 2835|  18.8k|    const void* data;
 2836|  18.8k|    CHECK_RESULT(ReadBytes(&data, &data_size, "data segment data"));
  ------------------
  |  |   55|  18.8k|  do {                              \
  |  |   56|  18.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 260, False: 18.5k]
  |  |  ------------------
  |  |   57|    260|      return ::wabt::Result::Error; \
  |  |   58|    260|    }                               \
  |  |   59|  18.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2837|  18.5k|    CALLBACK(OnDataSegmentData, i, data, data_size);
  ------------------
  |  |   61|  18.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  18.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  18.5k|  do {                         \
  |  |  |  |  |  |   42|  18.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 18.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  18.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  18.5k|               #member " callback failed")
  ------------------
 2838|  18.5k|    CALLBACK(EndDataSegment, i);
  ------------------
  |  |   61|  18.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  18.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  18.5k|  do {                         \
  |  |  |  |  |  |   42|  18.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 18.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  18.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  18.5k|               #member " callback failed")
  ------------------
 2839|  18.5k|  }
 2840|    105|  CALLBACK0(EndDataSection);
  ------------------
  |  |   58|    105|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    105|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    105|  do {                         \
  |  |  |  |  |  |   42|    105|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 105]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    105|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2841|    105|  return Result::Ok;
 2842|    105|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader14ReadTagSectionEm:
 2327|    400|Result BinaryReader::ReadTagSection(Offset section_size) {
 2328|    400|  CALLBACK(BeginTagSection, section_size);
  ------------------
  |  |   61|    400|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    400|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    400|  do {                         \
  |  |  |  |  |  |   42|    400|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 400]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    400|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    400|               #member " callback failed")
  ------------------
 2329|    400|  Index num_tags;
 2330|    400|  CHECK_RESULT(ReadCount(&num_tags, "tag count"));
  ------------------
  |  |   55|    400|  do {                              \
  |  |   56|    400|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 260, False: 140]
  |  |  ------------------
  |  |   57|    260|      return ::wabt::Result::Error; \
  |  |   58|    260|    }                               \
  |  |   59|    400|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2331|    140|  CALLBACK(OnTagCount, num_tags);
  ------------------
  |  |   61|    140|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    140|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    140|  do {                         \
  |  |  |  |  |  |   42|    140|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 140]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    140|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    140|               #member " callback failed")
  ------------------
 2332|       |
 2333|  9.56k|  for (Index i = 0; i < num_tags; ++i) {
  ------------------
  |  Branch (2333:21): [True: 9.54k, False: 20]
  ------------------
 2334|  9.54k|    Index tag_index = num_tag_imports_ + i;
 2335|  9.54k|    Index sig_index;
 2336|  9.54k|    CHECK_RESULT(ReadTagType(&sig_index));
  ------------------
  |  |   55|  9.54k|  do {                              \
  |  |   56|  9.54k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 120, False: 9.42k]
  |  |  ------------------
  |  |   57|    120|      return ::wabt::Result::Error; \
  |  |   58|    120|    }                               \
  |  |   59|  9.54k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2337|  9.42k|    CALLBACK(OnTagType, tag_index, sig_index);
  ------------------
  |  |   61|  9.42k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  9.42k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  9.42k|  do {                         \
  |  |  |  |  |  |   42|  9.42k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 9.42k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  9.42k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  9.42k|               #member " callback failed")
  ------------------
 2338|  9.42k|  }
 2339|       |
 2340|     20|  CALLBACK(EndTagSection);
  ------------------
  |  |   61|     20|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|     20|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     20|  do {                         \
  |  |  |  |  |  |   42|     20|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 20]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     20|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|     20|               #member " callback failed")
  ------------------
 2341|     20|  return Result::Ok;
 2342|     20|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader20ReadDataCountSectionEm:
 2844|    490|Result BinaryReader::ReadDataCountSection(Offset section_size) {
 2845|    490|  CALLBACK(BeginDataCountSection, section_size);
  ------------------
  |  |   61|    490|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    490|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    490|  do {                         \
  |  |  |  |  |  |   42|    490|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 490]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    490|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    490|               #member " callback failed")
  ------------------
 2846|    490|  Index data_count;
 2847|    490|  CHECK_RESULT(ReadIndex(&data_count, "data count"));
  ------------------
  |  |   55|    490|  do {                              \
  |  |   56|    490|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 475]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|    490|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2848|    475|  CALLBACK(OnDataCount, data_count);
  ------------------
  |  |   61|    475|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    475|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    475|  do {                         \
  |  |  |  |  |  |   42|    475|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 475]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    475|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    475|               #member " callback failed")
  ------------------
 2849|    475|  CALLBACK0(EndDataCountSection);
  ------------------
  |  |   58|    475|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    475|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    475|  do {                         \
  |  |  |  |  |  |   42|    475|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 475]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    475|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2850|    475|  data_count_ = data_count;
 2851|    475|  return Result::Ok;
 2852|    475|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardImXadL_ZNS1_9read_end_EEEED2Ev:
   86|  9.73M|    ~ValueRestoreGuard() { this_->*member = previous_value_; }

_ZN4wabt15GetSectionOrderENS_13BinarySectionE:
   21|  30.5k|BinarySectionOrder GetSectionOrder(BinarySection sec) {
   22|  30.5k|  switch (sec) {
   23|      0|#define V(Name, name, code) \
   24|      0|  case BinarySection::Name: \
   25|      0|    return BinarySectionOrder::Name;
   26|      0|    WABT_FOREACH_BINARY_SECTION(V)
  ------------------
  |  |   40|      0|  V(Custom, custom, 0)                 \
  |  |  ------------------
  |  |  |  |   26|      0|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|      0|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 0, False: 30.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|      0|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   41|  1.29k|  V(Type, type, 1)                     \
  |  |  ------------------
  |  |  |  |   26|  1.29k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|  1.29k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 1.29k, False: 29.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|  1.29k|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   42|  1.29k|  V(Import, import, 2)                 \
  |  |  ------------------
  |  |  |  |   26|  1.21k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|  1.21k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 1.21k, False: 29.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|  1.21k|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   43|  10.0k|  V(Function, function, 3)             \
  |  |  ------------------
  |  |  |  |   26|  10.0k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|  10.0k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 10.0k, False: 20.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|  10.0k|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   44|  10.0k|  V(Table, table, 4)                   \
  |  |  ------------------
  |  |  |  |   26|    870|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    870|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 870, False: 29.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    870|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   45|    870|  V(Memory, memory, 5)                 \
  |  |  ------------------
  |  |  |  |   26|    850|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    850|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 850, False: 29.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    850|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   46|    850|  V(Tag, tag, 13)                      \
  |  |  ------------------
  |  |  |  |   26|    200|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    200|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 200, False: 30.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    200|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   47|    805|  V(Global, global, 6)                 \
  |  |  ------------------
  |  |  |  |   26|    805|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    805|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 805, False: 29.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    805|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   48|  2.11k|  V(Export, export, 7)                 \
  |  |  ------------------
  |  |  |  |   26|  2.11k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|  2.11k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 2.11k, False: 28.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|  2.11k|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   49|  2.11k|  V(Start, start, 8)                   \
  |  |  ------------------
  |  |  |  |   26|    455|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    455|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 455, False: 30.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    455|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|  1.70k|  V(Elem, elem, 9)                     \
  |  |  ------------------
  |  |  |  |   26|  1.70k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|  1.70k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 1.70k, False: 28.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|  1.70k|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   51|  1.70k|  V(DataCount, data_count, 12)         \
  |  |  ------------------
  |  |  |  |   26|    765|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    765|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 765, False: 29.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    765|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   52|  9.01k|  V(Code, code, 10)                    \
  |  |  ------------------
  |  |  |  |   26|  9.01k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|  9.01k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 9.01k, False: 21.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|  9.01k|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   53|  9.01k|  V(Data, data, 11)
  |  |  ------------------
  |  |  |  |   26|  1.29k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|  1.29k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 1.29k, False: 29.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|  1.29k|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   27|      0|#undef V
   28|      0|    default:
  ------------------
  |  Branch (28:5): [True: 0, False: 30.5k]
  ------------------
   29|      0|      WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
   30|  30.5k|  }
   31|  30.5k|}
_ZN4wabt14GetSectionNameENS_13BinarySectionE:
   33|  4.91M|const char* GetSectionName(BinarySection sec) {
   34|  4.91M|  switch (sec) {
   35|      0|#define V(Name, name, code) \
   36|      0|  case BinarySection::Name: \
   37|      0|    return #Name;
   38|      0|    WABT_FOREACH_BINARY_SECTION(V)
  ------------------
  |  |   40|  4.86M|  V(Custom, custom, 0)                 \
  |  |  ------------------
  |  |  |  |   38|  4.86M|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|  4.86M|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 4.86M, False: 41.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|  4.86M|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   41|  4.86M|  V(Type, type, 1)                     \
  |  |  ------------------
  |  |  |  |   38|  3.46k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|  3.46k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 3.46k, False: 4.90M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|  3.46k|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   42|  3.46k|  V(Import, import, 2)                 \
  |  |  ------------------
  |  |  |  |   38|  1.73k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|  1.73k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 1.73k, False: 4.90M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|  1.73k|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   43|  9.97k|  V(Function, function, 3)             \
  |  |  ------------------
  |  |  |  |   38|  9.97k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|  9.97k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 9.97k, False: 4.90M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|  9.97k|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   44|  9.97k|  V(Table, table, 4)                   \
  |  |  ------------------
  |  |  |  |   38|  1.09k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|  1.09k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 1.09k, False: 4.90M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|  1.09k|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   45|  1.09k|  V(Memory, memory, 5)                 \
  |  |  ------------------
  |  |  |  |   38|  1.04k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|  1.04k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 1.04k, False: 4.90M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|  1.04k|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   46|  1.04k|  V(Tag, tag, 13)                      \
  |  |  ------------------
  |  |  |  |   38|    385|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|    385|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 385, False: 4.91M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|    385|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   47|  1.96k|  V(Global, global, 6)                 \
  |  |  ------------------
  |  |  |  |   38|  1.96k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|  1.96k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 1.96k, False: 4.90M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|  1.96k|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   48|  2.05k|  V(Export, export, 7)                 \
  |  |  ------------------
  |  |  |  |   38|  2.05k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|  2.05k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 2.05k, False: 4.90M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|  2.05k|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   49|  2.05k|  V(Start, start, 8)                   \
  |  |  ------------------
  |  |  |  |   38|    495|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|    495|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 495, False: 4.91M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|    495|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|  8.02k|  V(Elem, elem, 9)                     \
  |  |  ------------------
  |  |  |  |   38|  8.02k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|  8.02k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 8.02k, False: 4.90M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|  8.02k|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   51|  8.02k|  V(DataCount, data_count, 12)         \
  |  |  ------------------
  |  |  |  |   38|    397|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|    397|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 397, False: 4.91M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|    397|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   52|  6.93k|  V(Code, code, 10)                    \
  |  |  ------------------
  |  |  |  |   38|  6.93k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|  6.93k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 6.93k, False: 4.90M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|  6.93k|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   53|  6.93k|  V(Data, data, 11)
  |  |  ------------------
  |  |  |  |   38|  3.73k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|  3.73k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 3.73k, False: 4.90M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|  3.73k|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   39|      0|#undef V
   40|      0|    default:
  ------------------
  |  Branch (40:5): [True: 0, False: 4.91M]
  ------------------
   41|      0|      WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
   42|  4.91M|  }
   43|  4.91M|}
_ZN4wabt28GetNameSectionSubsectionNameENS_21NameSectionSubsectionE:
   62|  16.1k|const char* GetNameSectionSubsectionName(NameSectionSubsection subsec) {
   63|  16.1k|  static_assert(WABT_ENUM_COUNT(NameSectionSubsection) ==
   64|  16.1k|                    WABT_ARRAY_SIZE(NameSubsectionName),
   65|  16.1k|                "Malformed ExprTypeName array");
   66|  16.1k|  return NameSubsectionName[size_t(subsec)];
   67|  16.1k|}

_ZN4wabt5RelocC2ENS_9RelocTypeEmji:
   41|  4.68k|    : type(type), offset(offset), index(index), addend(addend) {}

_ZN4wabt8Features18UpdateDependenciesEv:
   39|   821k|void Features::UpdateDependencies() {
   40|       |  // Exception handling requires reference types.
   41|   821k|  if (exceptions_enabled_) {
  ------------------
  |  Branch (41:7): [True: 821k, False: 0]
  ------------------
   42|   821k|    reference_types_enabled_ = true;
   43|   821k|  }
   44|       |
   45|       |  // Function references require reference types.
   46|   821k|  if (function_references_enabled_) {
  ------------------
  |  Branch (46:7): [True: 547k, False: 273k]
  ------------------
   47|   547k|    reference_types_enabled_ = true;
   48|   547k|  }
   49|       |
   50|       |  // Reference types requires bulk memory.
   51|   821k|  if (!bulk_memory_enabled_) {
  ------------------
  |  Branch (51:7): [True: 0, False: 821k]
  ------------------
   52|      0|    reference_types_enabled_ = false;
   53|      0|  }
   54|   821k|}

_ZN4wabt11GetBasenameENSt3__117basic_string_viewIcNS0_11char_traitsIcEEEE:
   29|  9.04k|std::string_view GetBasename(std::string_view filename) {
   30|  9.04k|  size_t last_slash = filename.find_last_of('/');
   31|  9.04k|  size_t last_backslash = filename.find_last_of('\\');
   32|  9.04k|  if (last_slash == std::string_view::npos &&
  ------------------
  |  Branch (32:7): [True: 9.04k, False: 0]
  ------------------
   33|  9.04k|      last_backslash == std::string_view::npos) {
  ------------------
  |  Branch (33:7): [True: 9.04k, False: 0]
  ------------------
   34|  9.04k|    return filename;
   35|  9.04k|  }
   36|       |
   37|      0|  if (last_slash == std::string_view::npos) {
  ------------------
  |  Branch (37:7): [True: 0, False: 0]
  ------------------
   38|      0|    if (last_backslash == std::string_view::npos) {
  ------------------
  |  Branch (38:9): [True: 0, False: 0]
  ------------------
   39|      0|      return filename;
   40|      0|    }
   41|      0|    last_slash = last_backslash;
   42|      0|  } else if (last_backslash != std::string_view::npos) {
  ------------------
  |  Branch (42:14): [True: 0, False: 0]
  ------------------
   43|      0|    last_slash = std::max(last_slash, last_backslash);
   44|      0|  }
   45|       |
   46|      0|  return filename.substr(last_slash + 1);
   47|      0|}

_ZN4wabt17WriteU32Leb128RawEPhS0_j:
   86|  21.4k|Offset WriteU32Leb128Raw(uint8_t* dest, uint8_t* dest_end, uint32_t value) {
   87|  21.4k|  uint8_t data[MAX_U32_LEB128_BYTES];
   88|  21.4k|  Offset length = 0;
   89|  21.4k|  LEB128_LOOP_UNTIL(value == 0);
  ------------------
  |  |   38|  30.2k|  do {                              \
  |  |   39|  30.2k|    uint8_t byte = value & 0x7f;    \
  |  |   40|  30.2k|    value >>= 7;                    \
  |  |   41|  30.2k|    if (end_cond) {                 \
  |  |  ------------------
  |  |  |  Branch (41:9): [True: 21.4k, False: 8.86k]
  |  |  ------------------
  |  |   42|  21.4k|      data[length++] = byte;        \
  |  |   43|  21.4k|      break;                        \
  |  |   44|  21.4k|    } else {                        \
  |  |   45|  8.86k|      data[length++] = byte | 0x80; \
  |  |   46|  8.86k|    }                               \
  |  |   47|  30.2k|  } while (1)
  |  |  ------------------
  |  |  |  Branch (47:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
   90|  21.4k|  if (static_cast<Offset>(dest_end - dest) < length) {
  ------------------
  |  Branch (90:7): [True: 0, False: 21.4k]
  ------------------
   91|      0|    return 0;
   92|      0|  }
   93|  21.4k|  memcpy(dest, data, length);
   94|  21.4k|  return length;
   95|  21.4k|}
_ZN4wabt13ReadU32Leb128EPKhS1_Pj:
  184|  27.2M|                     uint32_t* out_value) {
  185|  27.2M|  if (p < end && (p[0] & 0x80) == 0) {
  ------------------
  |  Branch (185:7): [True: 19.7M, False: 7.52M]
  |  Branch (185:18): [True: 18.4M, False: 1.29M]
  ------------------
  186|  18.4M|    *out_value = LEB128_1(uint32_t);
  ------------------
  |  |  166|  18.4M|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  ------------------
  |  |  |  |  164|  18.4M|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  ------------------
  187|  18.4M|    return 1;
  188|  18.4M|  } else if (p + 1 < end && (p[1] & 0x80) == 0) {
  ------------------
  |  Branch (188:14): [True: 1.28M, False: 7.53M]
  |  Branch (188:29): [True: 1.07M, False: 205k]
  ------------------
  189|  1.07M|    *out_value = LEB128_2(uint32_t);
  ------------------
  |  |  167|  1.07M|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  164|  1.07M|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  166|  1.07M|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.07M|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  190|  1.07M|    return 2;
  191|  7.74M|  } else if (p + 2 < end && (p[2] & 0x80) == 0) {
  ------------------
  |  Branch (191:14): [True: 204k, False: 7.53M]
  |  Branch (191:29): [True: 156k, False: 47.4k]
  ------------------
  192|   156k|    *out_value = LEB128_3(uint32_t);
  ------------------
  |  |  168|   156k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  164|   156k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  167|   156k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|   156k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  166|   156k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|   156k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  193|   156k|    return 3;
  194|  7.58M|  } else if (p + 3 < end && (p[3] & 0x80) == 0) {
  ------------------
  |  Branch (194:14): [True: 46.9k, False: 7.53M]
  |  Branch (194:29): [True: 23.6k, False: 23.2k]
  ------------------
  195|  23.6k|    *out_value = LEB128_4(uint32_t);
  ------------------
  |  |  169|  23.6k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  164|  23.6k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  168|  23.6k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  23.6k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  167|  23.6k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  23.6k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  166|  23.6k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  23.6k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  196|  23.6k|    return 4;
  197|  7.56M|  } else if (p + 4 < end && (p[4] & 0x80) == 0) {
  ------------------
  |  Branch (197:14): [True: 23.1k, False: 7.53M]
  |  Branch (197:29): [True: 19.8k, False: 3.33k]
  ------------------
  198|       |    // The top bits set represent values > 32 bits.
  199|  19.8k|    if (p[4] & 0xf0) {
  ------------------
  |  Branch (199:9): [True: 2.88k, False: 16.9k]
  ------------------
  200|  2.88k|      return 0;
  201|  2.88k|    }
  202|  16.9k|    *out_value = LEB128_5(uint32_t);
  ------------------
  |  |  170|  16.9k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  164|  16.9k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  169|  16.9k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  16.9k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  168|  16.9k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  16.9k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  167|  16.9k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  16.9k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  166|  16.9k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  16.9k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  203|  16.9k|    return 5;
  204|  7.54M|  } else {
  205|       |    // past the end.
  206|  7.54M|    *out_value = 0;
  207|  7.54M|    return 0;
  208|  7.54M|  }
  209|  27.2M|}
_ZN4wabt13ReadU64Leb128EPKhS1_Pm:
  213|   203k|                     uint64_t* out_value) {
  214|   203k|  if (p < end && (p[0] & 0x80) == 0) {
  ------------------
  |  Branch (214:7): [True: 203k, False: 359]
  |  Branch (214:18): [True: 176k, False: 26.3k]
  ------------------
  215|   176k|    *out_value = LEB128_1(uint64_t);
  ------------------
  |  |  166|   176k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  ------------------
  |  |  |  |  164|   176k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  ------------------
  216|   176k|    return 1;
  217|   176k|  } else if (p + 1 < end && (p[1] & 0x80) == 0) {
  ------------------
  |  Branch (217:14): [True: 26.2k, False: 456]
  |  Branch (217:29): [True: 16.6k, False: 9.57k]
  ------------------
  218|  16.6k|    *out_value = LEB128_2(uint64_t);
  ------------------
  |  |  167|  16.6k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  164|  16.6k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  166|  16.6k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  16.6k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  219|  16.6k|    return 2;
  220|  16.6k|  } else if (p + 2 < end && (p[2] & 0x80) == 0) {
  ------------------
  |  Branch (220:14): [True: 9.55k, False: 481]
  |  Branch (220:29): [True: 5.81k, False: 3.73k]
  ------------------
  221|  5.81k|    *out_value = LEB128_3(uint64_t);
  ------------------
  |  |  168|  5.81k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  164|  5.81k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  167|  5.81k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  5.81k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  166|  5.81k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  5.81k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  222|  5.81k|    return 3;
  223|  5.81k|  } else if (p + 3 < end && (p[3] & 0x80) == 0) {
  ------------------
  |  Branch (223:14): [True: 3.72k, False: 493]
  |  Branch (223:29): [True: 1.61k, False: 2.10k]
  ------------------
  224|  1.61k|    *out_value = LEB128_4(uint64_t);
  ------------------
  |  |  169|  1.61k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  164|  1.61k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  168|  1.61k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.61k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  167|  1.61k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.61k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  166|  1.61k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  1.61k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  225|  1.61k|    return 4;
  226|  2.60k|  } else if (p + 4 < end && (p[4] & 0x80) == 0) {
  ------------------
  |  Branch (226:14): [True: 2.10k, False: 498]
  |  Branch (226:29): [True: 484, False: 1.61k]
  ------------------
  227|    484|    *out_value = LEB128_5(uint64_t);
  ------------------
  |  |  170|    484|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  164|    484|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  169|    484|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    484|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  168|    484|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    484|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  167|    484|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    484|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  166|    484|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    484|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  228|    484|    return 5;
  229|  2.11k|  } else if (p + 5 < end && (p[5] & 0x80) == 0) {
  ------------------
  |  Branch (229:14): [True: 1.59k, False: 519]
  |  Branch (229:29): [True: 325, False: 1.27k]
  ------------------
  230|    325|    *out_value = LEB128_6(uint64_t);
  ------------------
  |  |  171|    325|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  ------------------
  |  |  |  |  164|    325|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  ------------------
  |  |  |  |  170|    325|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    325|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  169|    325|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    325|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  168|    325|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    325|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  167|    325|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    325|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  166|    325|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    325|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  231|    325|    return 6;
  232|  1.79k|  } else if (p + 6 < end && (p[6] & 0x80) == 0) {
  ------------------
  |  Branch (232:14): [True: 1.27k, False: 519]
  |  Branch (232:29): [True: 216, False: 1.05k]
  ------------------
  233|    216|    *out_value = LEB128_7(uint64_t);
  ------------------
  |  |  172|    216|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  ------------------
  |  |  |  |  164|    216|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  ------------------
  |  |  |  |  171|    216|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    216|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  170|    216|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    216|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  169|    216|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    216|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  168|    216|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    216|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  167|    216|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    216|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  166|    216|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    216|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  234|    216|    return 7;
  235|  1.57k|  } else if (p + 7 < end && (p[7] & 0x80) == 0) {
  ------------------
  |  Branch (235:14): [True: 1.02k, False: 549]
  |  Branch (235:29): [True: 479, False: 548]
  ------------------
  236|    479|    *out_value = LEB128_8(uint64_t);
  ------------------
  |  |  173|    479|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  ------------------
  |  |  |  |  164|    479|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  ------------------
  |  |  |  |  172|    479|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    479|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|    479|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    479|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  170|    479|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    479|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  169|    479|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    479|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  168|    479|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    479|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  167|    479|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    479|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  166|    479|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    479|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  237|    479|    return 8;
  238|  1.09k|  } else if (p + 8 < end && (p[8] & 0x80) == 0) {
  ------------------
  |  Branch (238:14): [True: 538, False: 559]
  |  Branch (238:29): [True: 429, False: 109]
  ------------------
  239|    429|    *out_value = LEB128_9(uint64_t);
  ------------------
  |  |  174|    429|#define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  ------------------
  |  |  |  |  164|    429|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  ------------------
  |  |  |  |  173|    429|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    429|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  172|    429|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    429|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  171|    429|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    429|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  170|    429|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    429|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  169|    429|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    429|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  168|    429|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    429|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  167|    429|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    429|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  166|    429|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    429|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  240|    429|    return 9;
  241|    668|  } else if (p + 9 < end && (p[9] & 0x80) == 0) {
  ------------------
  |  Branch (241:14): [True: 94, False: 574]
  |  Branch (241:29): [True: 72, False: 22]
  ------------------
  242|       |    // The top bits set represent values > 64 bits.
  243|     72|    if (p[9] & 0xfe) {
  ------------------
  |  Branch (243:9): [True: 12, False: 60]
  ------------------
  244|     12|      return 0;
  245|     12|    }
  246|     60|    *out_value = LEB128_10(uint64_t);
  ------------------
  |  |  175|     60|#define LEB128_10(type) (BYTE_AT(type, 9, 63) | LEB128_9(type))
  |  |  ------------------
  |  |  |  |  164|     60|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_10(type) (BYTE_AT(type, 9, 63) | LEB128_9(type))
  |  |  ------------------
  |  |  |  |  174|     60|#define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|     60|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  173|     60|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|     60|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  172|     60|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|     60|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  171|     60|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|     60|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |               #define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  170|     60|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|     60|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  169|     60|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|     60|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  168|     60|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|     60|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  167|     60|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|     60|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  166|     60|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|     60|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  247|     60|    return 10;
  248|    596|  } else {
  249|       |    // past the end.
  250|    596|    *out_value = 0;
  251|    596|    return 0;
  252|    596|  }
  253|   203k|}
_ZN4wabt13ReadS32Leb128EPKhS1_Pj:
  257|  4.97M|                     uint32_t* out_value) {
  258|  4.97M|  if (p < end && (p[0] & 0x80) == 0) {
  ------------------
  |  Branch (258:7): [True: 4.96M, False: 1.14k]
  |  Branch (258:18): [True: 4.93M, False: 34.9k]
  ------------------
  259|  4.93M|    uint32_t result = LEB128_1(uint32_t);
  ------------------
  |  |  166|  4.93M|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  ------------------
  |  |  |  |  164|  4.93M|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  ------------------
  260|  4.93M|    *out_value = SIGN_EXTEND(int32_t, result, 6);
  ------------------
  |  |  179|  4.93M|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  4.93M|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  4.93M|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  4.93M|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  261|  4.93M|    return 1;
  262|  4.93M|  } else if (p + 1 < end && (p[1] & 0x80) == 0) {
  ------------------
  |  Branch (262:14): [True: 34.6k, False: 1.40k]
  |  Branch (262:29): [True: 11.8k, False: 22.8k]
  ------------------
  263|  11.8k|    uint32_t result = LEB128_2(uint32_t);
  ------------------
  |  |  167|  11.8k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  164|  11.8k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  166|  11.8k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  11.8k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  264|  11.8k|    *out_value = SIGN_EXTEND(int32_t, result, 13);
  ------------------
  |  |  179|  11.8k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  11.8k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  11.8k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  11.8k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  265|  11.8k|    return 2;
  266|  24.2k|  } else if (p + 2 < end && (p[2] & 0x80) == 0) {
  ------------------
  |  Branch (266:14): [True: 22.7k, False: 1.44k]
  |  Branch (266:29): [True: 3.70k, False: 19.0k]
  ------------------
  267|  3.70k|    uint32_t result = LEB128_3(uint32_t);
  ------------------
  |  |  168|  3.70k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  164|  3.70k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  167|  3.70k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  3.70k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  166|  3.70k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  3.70k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  268|  3.70k|    *out_value = SIGN_EXTEND(int32_t, result, 20);
  ------------------
  |  |  179|  3.70k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  3.70k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  3.70k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  3.70k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  269|  3.70k|    return 3;
  270|  20.5k|  } else if (p + 3 < end && (p[3] & 0x80) == 0) {
  ------------------
  |  Branch (270:14): [True: 19.0k, False: 1.45k]
  |  Branch (270:29): [True: 2.16k, False: 16.9k]
  ------------------
  271|  2.16k|    uint32_t result = LEB128_4(uint32_t);
  ------------------
  |  |  169|  2.16k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  164|  2.16k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  168|  2.16k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  2.16k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  167|  2.16k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  2.16k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  166|  2.16k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  2.16k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  272|  2.16k|    *out_value = SIGN_EXTEND(int32_t, result, 27);
  ------------------
  |  |  179|  2.16k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  2.16k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  2.16k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  2.16k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  273|  2.16k|    return 4;
  274|  18.3k|  } else if (p + 4 < end && (p[4] & 0x80) == 0) {
  ------------------
  |  Branch (274:14): [True: 16.8k, False: 1.47k]
  |  Branch (274:29): [True: 3.03k, False: 13.8k]
  ------------------
  275|       |    // The top bits should be a sign-extension of the sign bit.
  276|  3.03k|    bool sign_bit_set = (p[4] & 0x8);
  277|  3.03k|    int top_bits = p[4] & 0xf0;
  278|  3.03k|    if ((sign_bit_set && top_bits != 0x70) ||
  ------------------
  |  Branch (278:10): [True: 814, False: 2.21k]
  |  Branch (278:26): [True: 110, False: 704]
  ------------------
  279|  3.03k|        (!sign_bit_set && top_bits != 0)) {
  ------------------
  |  Branch (279:10): [True: 2.21k, False: 704]
  |  Branch (279:27): [True: 407, False: 1.80k]
  ------------------
  280|    517|      return 0;
  281|    517|    }
  282|  2.51k|    uint32_t result = LEB128_5(uint32_t);
  ------------------
  |  |  170|  2.51k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  164|  2.51k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  169|  2.51k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  2.51k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  168|  2.51k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  2.51k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  167|  2.51k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  2.51k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  166|  2.51k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  2.51k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  283|  2.51k|    *out_value = result;
  284|  2.51k|    return 5;
  285|  15.3k|  } else {
  286|       |    // Past the end.
  287|  15.3k|    return 0;
  288|  15.3k|  }
  289|  4.97M|}
_ZN4wabt13ReadS64Leb128EPKhS1_Pm:
  293|  25.9k|                     uint64_t* out_value) {
  294|  25.9k|  if (p < end && (p[0] & 0x80) == 0) {
  ------------------
  |  Branch (294:7): [True: 25.8k, False: 32]
  |  Branch (294:18): [True: 16.5k, False: 9.32k]
  ------------------
  295|  16.5k|    uint64_t result = LEB128_1(uint64_t);
  ------------------
  |  |  166|  16.5k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  ------------------
  |  |  |  |  164|  16.5k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  ------------------
  296|  16.5k|    *out_value = SIGN_EXTEND(int64_t, result, 6);
  ------------------
  |  |  179|  16.5k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  16.5k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  16.5k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  16.5k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  297|  16.5k|    return 1;
  298|  16.5k|  } else if (p + 1 < end && (p[1] & 0x80) == 0) {
  ------------------
  |  Branch (298:14): [True: 9.29k, False: 53]
  |  Branch (298:29): [True: 1.43k, False: 7.86k]
  ------------------
  299|  1.43k|    uint64_t result = LEB128_2(uint64_t);
  ------------------
  |  |  167|  1.43k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  164|  1.43k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  166|  1.43k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.43k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  300|  1.43k|    *out_value = SIGN_EXTEND(int64_t, result, 13);
  ------------------
  |  |  179|  1.43k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  1.43k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  1.43k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  1.43k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  301|  1.43k|    return 2;
  302|  7.91k|  } else if (p + 2 < end && (p[2] & 0x80) == 0) {
  ------------------
  |  Branch (302:14): [True: 7.85k, False: 64]
  |  Branch (302:29): [True: 1.49k, False: 6.35k]
  ------------------
  303|  1.49k|    uint64_t result = LEB128_3(uint64_t);
  ------------------
  |  |  168|  1.49k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  164|  1.49k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  167|  1.49k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.49k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  166|  1.49k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.49k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  304|  1.49k|    *out_value = SIGN_EXTEND(int64_t, result, 20);
  ------------------
  |  |  179|  1.49k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  1.49k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  1.49k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  1.49k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  305|  1.49k|    return 3;
  306|  6.42k|  } else if (p + 3 < end && (p[3] & 0x80) == 0) {
  ------------------
  |  Branch (306:14): [True: 6.34k, False: 80]
  |  Branch (306:29): [True: 2.39k, False: 3.94k]
  ------------------
  307|  2.39k|    uint64_t result = LEB128_4(uint64_t);
  ------------------
  |  |  169|  2.39k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  164|  2.39k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  168|  2.39k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  2.39k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  167|  2.39k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  2.39k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  166|  2.39k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  2.39k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  308|  2.39k|    *out_value = SIGN_EXTEND(int64_t, result, 27);
  ------------------
  |  |  179|  2.39k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  2.39k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  2.39k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  2.39k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  309|  2.39k|    return 4;
  310|  4.02k|  } else if (p + 4 < end && (p[4] & 0x80) == 0) {
  ------------------
  |  Branch (310:14): [True: 3.93k, False: 90]
  |  Branch (310:29): [True: 782, False: 3.15k]
  ------------------
  311|    782|    uint64_t result = LEB128_5(uint64_t);
  ------------------
  |  |  170|    782|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  164|    782|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  169|    782|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    782|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  168|    782|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    782|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  167|    782|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    782|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  166|    782|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    782|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  312|    782|    *out_value = SIGN_EXTEND(int64_t, result, 34);
  ------------------
  |  |  179|    782|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|    782|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|    782|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|    782|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  313|    782|    return 5;
  314|  3.24k|  } else if (p + 5 < end && (p[5] & 0x80) == 0) {
  ------------------
  |  Branch (314:14): [True: 3.15k, False: 92]
  |  Branch (314:29): [True: 1.06k, False: 2.08k]
  ------------------
  315|  1.06k|    uint64_t result = LEB128_6(uint64_t);
  ------------------
  |  |  171|  1.06k|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  ------------------
  |  |  |  |  164|  1.06k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  ------------------
  |  |  |  |  170|  1.06k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.06k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  169|  1.06k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.06k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  168|  1.06k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  1.06k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  167|  1.06k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.06k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  166|  1.06k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.06k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  316|  1.06k|    *out_value = SIGN_EXTEND(int64_t, result, 41);
  ------------------
  |  |  179|  1.06k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  1.06k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  1.06k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  1.06k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  317|  1.06k|    return 6;
  318|  2.17k|  } else if (p + 6 < end && (p[6] & 0x80) == 0) {
  ------------------
  |  Branch (318:14): [True: 2.07k, False: 102]
  |  Branch (318:29): [True: 146, False: 1.93k]
  ------------------
  319|    146|    uint64_t result = LEB128_7(uint64_t);
  ------------------
  |  |  172|    146|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  ------------------
  |  |  |  |  164|    146|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  ------------------
  |  |  |  |  171|    146|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    146|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  170|    146|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    146|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  169|    146|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    146|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  168|    146|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    146|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  167|    146|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    146|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  166|    146|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    146|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  320|    146|    *out_value = SIGN_EXTEND(int64_t, result, 48);
  ------------------
  |  |  179|    146|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|    146|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|    146|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|    146|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  321|    146|    return 7;
  322|  2.03k|  } else if (p + 7 < end && (p[7] & 0x80) == 0) {
  ------------------
  |  Branch (322:14): [True: 1.93k, False: 102]
  |  Branch (322:29): [True: 1.36k, False: 563]
  ------------------
  323|  1.36k|    uint64_t result = LEB128_8(uint64_t);
  ------------------
  |  |  173|  1.36k|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  ------------------
  |  |  |  |  164|  1.36k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  ------------------
  |  |  |  |  172|  1.36k|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.36k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|  1.36k|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.36k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  170|  1.36k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  1.36k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  169|  1.36k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.36k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  168|  1.36k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.36k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  167|  1.36k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.36k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  166|  1.36k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.36k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  324|  1.36k|    *out_value = SIGN_EXTEND(int64_t, result, 55);
  ------------------
  |  |  179|  1.36k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  1.36k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  1.36k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  1.36k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  325|  1.36k|    return 8;
  326|  1.36k|  } else if (p + 8 < end && (p[8] & 0x80) == 0) {
  ------------------
  |  Branch (326:14): [True: 553, False: 112]
  |  Branch (326:29): [True: 155, False: 398]
  ------------------
  327|    155|    uint64_t result = LEB128_9(uint64_t);
  ------------------
  |  |  174|    155|#define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  ------------------
  |  |  |  |  164|    155|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  ------------------
  |  |  |  |  173|    155|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    155|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  172|    155|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    155|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  171|    155|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    155|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  170|    155|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    155|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  169|    155|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    155|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  168|    155|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    155|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  167|    155|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    155|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  166|    155|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    155|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  328|    155|    *out_value = SIGN_EXTEND(int64_t, result, 62);
  ------------------
  |  |  179|    155|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|    155|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|    155|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|    155|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  329|    155|    return 9;
  330|    510|  } else if (p + 9 < end && (p[9] & 0x80) == 0) {
  ------------------
  |  Branch (330:14): [True: 393, False: 117]
  |  Branch (330:29): [True: 352, False: 41]
  ------------------
  331|       |    // The top bits should be a sign-extension of the sign bit.
  332|    352|    bool sign_bit_set = (p[9] & 0x1);
  333|    352|    int top_bits = p[9] & 0xfe;
  334|    352|    if ((sign_bit_set && top_bits != 0x7e) ||
  ------------------
  |  Branch (334:10): [True: 135, False: 217]
  |  Branch (334:26): [True: 25, False: 110]
  ------------------
  335|    352|        (!sign_bit_set && top_bits != 0)) {
  ------------------
  |  Branch (335:10): [True: 217, False: 110]
  |  Branch (335:27): [True: 15, False: 202]
  ------------------
  336|     40|      return 0;
  337|     40|    }
  338|    312|    uint64_t result = LEB128_10(uint64_t);
  ------------------
  |  |  175|    312|#define LEB128_10(type) (BYTE_AT(type, 9, 63) | LEB128_9(type))
  |  |  ------------------
  |  |  |  |  164|    312|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_10(type) (BYTE_AT(type, 9, 63) | LEB128_9(type))
  |  |  ------------------
  |  |  |  |  174|    312|#define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    312|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  173|    312|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    312|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  172|    312|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    312|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  171|    312|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    312|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |               #define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  170|    312|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    312|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  169|    312|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    312|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  168|    312|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    312|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  167|    312|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    312|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  166|    312|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    312|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  339|    312|    *out_value = result;
  340|    312|    return 10;
  341|    352|  } else {
  342|       |    // Past the end.
  343|    158|    return 0;
  344|    158|  }
  345|  25.9k|}

_ZN4wabt13WriteFloatHexEPcmj:
  786|  89.3k|void WriteFloatHex(char* buffer, size_t size, uint32_t bits) {
  787|  89.3k|  return FloatWriter<float>::WriteHex(buffer, size, bits);
  788|  89.3k|}
_ZN4wabt14WriteDoubleHexEPcmm:
  790|  9.36k|void WriteDoubleHex(char* buffer, size_t size, uint64_t bits) {
  791|  9.36k|  return FloatWriter<double>::WriteHex(buffer, size, bits);
  792|  9.36k|}
literal.cc:_ZN4wabt12_GLOBAL__N_111FloatWriterIfE8WriteHexEPcmj:
  457|  89.3k|void FloatWriter<T>::WriteHex(char* out, size_t size, Uint bits) {
  458|  89.3k|  static constexpr int kNumNybbles = Traits::kBits / 4;
  459|  89.3k|  static constexpr int kTopNybbleShift = Traits::kBits - 4;
  460|  89.3k|  static constexpr Uint kTopNybble = Uint(0xf) << kTopNybbleShift;
  461|  89.3k|  static const char s_hex_digits[] = "0123456789abcdef";
  462|       |
  463|  89.3k|  char buffer[Traits::kMaxHexBufferSize];
  464|  89.3k|  char* p = buffer;
  465|  89.3k|  bool is_neg = (bits >> Traits::kSignShift);
  466|  89.3k|  int exp = ((bits >> Traits::kSigBits) & Traits::kExpMask) - Traits::kExpBias;
  467|  89.3k|  Uint sig = bits & Traits::kSigMask;
  468|       |
  469|  89.3k|  if (is_neg) {
  ------------------
  |  Branch (469:7): [True: 13.2k, False: 76.1k]
  ------------------
  470|  13.2k|    *p++ = '-';
  471|  13.2k|  }
  472|  89.3k|  if (exp == Traits::kMaxExp) {
  ------------------
  |  Branch (472:7): [True: 152, False: 89.2k]
  ------------------
  473|       |    // Infinity or nan.
  474|    152|    if (sig == 0) {
  ------------------
  |  Branch (474:9): [True: 0, False: 152]
  ------------------
  475|      0|      strcpy(p, "inf");
  476|      0|      p += 3;
  477|    152|    } else {
  478|    152|      strcpy(p, "nan");
  479|    152|      p += 3;
  480|    152|      if (sig != Traits::kQuietNanTag) {
  ------------------
  |  Branch (480:11): [True: 146, False: 6]
  ------------------
  481|    146|        strcpy(p, ":0x");
  482|    146|        p += 3;
  483|       |        // Skip leading zeroes.
  484|    146|        int num_nybbles = kNumNybbles;
  485|    453|        while ((sig & kTopNybble) == 0) {
  ------------------
  |  Branch (485:16): [True: 307, False: 146]
  ------------------
  486|    307|          sig <<= 4;
  487|    307|          num_nybbles--;
  488|    307|        }
  489|  1.00k|        while (num_nybbles) {
  ------------------
  |  Branch (489:16): [True: 861, False: 146]
  ------------------
  490|    861|          Uint nybble = (sig >> kTopNybbleShift) & 0xf;
  491|    861|          *p++ = s_hex_digits[nybble];
  492|    861|          sig <<= 4;
  493|    861|          --num_nybbles;
  494|    861|        }
  495|    146|      }
  496|    152|    }
  497|  89.2k|  } else {
  498|  89.2k|    bool is_zero = sig == 0 && exp == Traits::kMinExp;
  ------------------
  |  Branch (498:20): [True: 3.43k, False: 85.7k]
  |  Branch (498:32): [True: 3.42k, False: 12]
  ------------------
  499|  89.2k|    strcpy(p, "0x");
  500|  89.2k|    p += 2;
  501|  89.2k|    *p++ = is_zero ? '0' : '1';
  ------------------
  |  Branch (501:12): [True: 3.42k, False: 85.7k]
  ------------------
  502|       |
  503|       |    // Shift sig up so the top 4-bits are at the top of the Uint.
  504|  89.2k|    sig <<= Traits::kBits - Traits::kSigBits;
  505|       |
  506|  89.2k|    if (sig) {
  ------------------
  |  Branch (506:9): [True: 85.7k, False: 3.43k]
  ------------------
  507|  85.7k|      if (exp == Traits::kMinExp) {
  ------------------
  |  Branch (507:11): [True: 5.85k, False: 79.9k]
  ------------------
  508|       |        // Subnormal; shift the significand up, and shift out the implicit 1.
  509|  5.85k|        Uint leading_zeroes = Clz(sig);
  510|  5.85k|        if (leading_zeroes < Traits::kSignShift) {
  ------------------
  |  Branch (510:13): [True: 5.85k, False: 0]
  ------------------
  511|  5.85k|          sig <<= leading_zeroes + 1;
  512|  5.85k|        } else {
  513|      0|          sig = 0;
  514|      0|        }
  515|  5.85k|        exp -= leading_zeroes;
  516|  5.85k|      }
  517|       |
  518|  85.7k|      *p++ = '.';
  519|   588k|      while (sig) {
  ------------------
  |  Branch (519:14): [True: 503k, False: 85.7k]
  ------------------
  520|   503k|        int nybble = (sig >> kTopNybbleShift) & 0xf;
  521|   503k|        *p++ = s_hex_digits[nybble];
  522|   503k|        sig <<= 4;
  523|   503k|      }
  524|  85.7k|    }
  525|  89.2k|    *p++ = 'p';
  526|  89.2k|    if (is_zero) {
  ------------------
  |  Branch (526:9): [True: 3.42k, False: 85.7k]
  ------------------
  527|  3.42k|      strcpy(p, "+0");
  528|  3.42k|      p += 2;
  529|  85.7k|    } else {
  530|  85.7k|      if (exp < 0) {
  ------------------
  |  Branch (530:11): [True: 18.9k, False: 66.8k]
  ------------------
  531|  18.9k|        *p++ = '-';
  532|  18.9k|        exp = -exp;
  533|  66.8k|      } else {
  534|  66.8k|        *p++ = '+';
  535|  66.8k|      }
  536|  85.7k|      if (exp >= 1000) {
  ------------------
  |  Branch (536:11): [True: 0, False: 85.7k]
  ------------------
  537|      0|        *p++ = '1';
  538|      0|      }
  539|  85.7k|      if (exp >= 100) {
  ------------------
  |  Branch (539:11): [True: 6.99k, False: 78.7k]
  ------------------
  540|  6.99k|        *p++ = '0' + (exp / 100) % 10;
  541|  6.99k|      }
  542|  85.7k|      if (exp >= 10) {
  ------------------
  |  Branch (542:11): [True: 8.25k, False: 77.5k]
  ------------------
  543|  8.25k|        *p++ = '0' + (exp / 10) % 10;
  544|  8.25k|      }
  545|  85.7k|      *p++ = '0' + exp % 10;
  546|  85.7k|    }
  547|  89.2k|  }
  548|       |
  549|  89.3k|  size_t len = p - buffer;
  550|  89.3k|  if (len >= size) {
  ------------------
  |  Branch (550:7): [True: 0, False: 89.3k]
  ------------------
  551|      0|    len = size - 1;
  552|      0|  }
  553|  89.3k|  memcpy(out, buffer, len);
  554|  89.3k|  out[len] = '\0';
  555|  89.3k|}
literal.cc:_ZN4wabt12_GLOBAL__N_111FloatWriterIdE8WriteHexEPcmm:
  457|  9.36k|void FloatWriter<T>::WriteHex(char* out, size_t size, Uint bits) {
  458|  9.36k|  static constexpr int kNumNybbles = Traits::kBits / 4;
  459|  9.36k|  static constexpr int kTopNybbleShift = Traits::kBits - 4;
  460|  9.36k|  static constexpr Uint kTopNybble = Uint(0xf) << kTopNybbleShift;
  461|  9.36k|  static const char s_hex_digits[] = "0123456789abcdef";
  462|       |
  463|  9.36k|  char buffer[Traits::kMaxHexBufferSize];
  464|  9.36k|  char* p = buffer;
  465|  9.36k|  bool is_neg = (bits >> Traits::kSignShift);
  466|  9.36k|  int exp = ((bits >> Traits::kSigBits) & Traits::kExpMask) - Traits::kExpBias;
  467|  9.36k|  Uint sig = bits & Traits::kSigMask;
  468|       |
  469|  9.36k|  if (is_neg) {
  ------------------
  |  Branch (469:7): [True: 1.13k, False: 8.22k]
  ------------------
  470|  1.13k|    *p++ = '-';
  471|  1.13k|  }
  472|  9.36k|  if (exp == Traits::kMaxExp) {
  ------------------
  |  Branch (472:7): [True: 110, False: 9.25k]
  ------------------
  473|       |    // Infinity or nan.
  474|    110|    if (sig == 0) {
  ------------------
  |  Branch (474:9): [True: 4, False: 106]
  ------------------
  475|      4|      strcpy(p, "inf");
  476|      4|      p += 3;
  477|    106|    } else {
  478|    106|      strcpy(p, "nan");
  479|    106|      p += 3;
  480|    106|      if (sig != Traits::kQuietNanTag) {
  ------------------
  |  Branch (480:11): [True: 104, False: 2]
  ------------------
  481|    104|        strcpy(p, ":0x");
  482|    104|        p += 3;
  483|       |        // Skip leading zeroes.
  484|    104|        int num_nybbles = kNumNybbles;
  485|    511|        while ((sig & kTopNybble) == 0) {
  ------------------
  |  Branch (485:16): [True: 407, False: 104]
  ------------------
  486|    407|          sig <<= 4;
  487|    407|          num_nybbles--;
  488|    407|        }
  489|  1.36k|        while (num_nybbles) {
  ------------------
  |  Branch (489:16): [True: 1.25k, False: 104]
  ------------------
  490|  1.25k|          Uint nybble = (sig >> kTopNybbleShift) & 0xf;
  491|  1.25k|          *p++ = s_hex_digits[nybble];
  492|  1.25k|          sig <<= 4;
  493|  1.25k|          --num_nybbles;
  494|  1.25k|        }
  495|    104|      }
  496|    106|    }
  497|  9.25k|  } else {
  498|  9.25k|    bool is_zero = sig == 0 && exp == Traits::kMinExp;
  ------------------
  |  Branch (498:20): [True: 38, False: 9.21k]
  |  Branch (498:32): [True: 33, False: 5]
  ------------------
  499|  9.25k|    strcpy(p, "0x");
  500|  9.25k|    p += 2;
  501|  9.25k|    *p++ = is_zero ? '0' : '1';
  ------------------
  |  Branch (501:12): [True: 33, False: 9.21k]
  ------------------
  502|       |
  503|       |    // Shift sig up so the top 4-bits are at the top of the Uint.
  504|  9.25k|    sig <<= Traits::kBits - Traits::kSigBits;
  505|       |
  506|  9.25k|    if (sig) {
  ------------------
  |  Branch (506:9): [True: 9.21k, False: 38]
  ------------------
  507|  9.21k|      if (exp == Traits::kMinExp) {
  ------------------
  |  Branch (507:11): [True: 425, False: 8.78k]
  ------------------
  508|       |        // Subnormal; shift the significand up, and shift out the implicit 1.
  509|    425|        Uint leading_zeroes = Clz(sig);
  510|    425|        if (leading_zeroes < Traits::kSignShift) {
  ------------------
  |  Branch (510:13): [True: 425, False: 0]
  ------------------
  511|    425|          sig <<= leading_zeroes + 1;
  512|    425|        } else {
  513|      0|          sig = 0;
  514|      0|        }
  515|    425|        exp -= leading_zeroes;
  516|    425|      }
  517|       |
  518|  9.21k|      *p++ = '.';
  519|   126k|      while (sig) {
  ------------------
  |  Branch (519:14): [True: 116k, False: 9.21k]
  ------------------
  520|   116k|        int nybble = (sig >> kTopNybbleShift) & 0xf;
  521|   116k|        *p++ = s_hex_digits[nybble];
  522|   116k|        sig <<= 4;
  523|   116k|      }
  524|  9.21k|    }
  525|  9.25k|    *p++ = 'p';
  526|  9.25k|    if (is_zero) {
  ------------------
  |  Branch (526:9): [True: 33, False: 9.21k]
  ------------------
  527|     33|      strcpy(p, "+0");
  528|     33|      p += 2;
  529|  9.21k|    } else {
  530|  9.21k|      if (exp < 0) {
  ------------------
  |  Branch (530:11): [True: 6.59k, False: 2.62k]
  ------------------
  531|  6.59k|        *p++ = '-';
  532|  6.59k|        exp = -exp;
  533|  6.59k|      } else {
  534|  2.62k|        *p++ = '+';
  535|  2.62k|      }
  536|  9.21k|      if (exp >= 1000) {
  ------------------
  |  Branch (536:11): [True: 5.08k, False: 4.13k]
  ------------------
  537|  5.08k|        *p++ = '1';
  538|  5.08k|      }
  539|  9.21k|      if (exp >= 100) {
  ------------------
  |  Branch (539:11): [True: 7.99k, False: 1.22k]
  ------------------
  540|  7.99k|        *p++ = '0' + (exp / 100) % 10;
  541|  7.99k|      }
  542|  9.21k|      if (exp >= 10) {
  ------------------
  |  Branch (542:11): [True: 9.08k, False: 134]
  ------------------
  543|  9.08k|        *p++ = '0' + (exp / 10) % 10;
  544|  9.08k|      }
  545|  9.21k|      *p++ = '0' + exp % 10;
  546|  9.21k|    }
  547|  9.25k|  }
  548|       |
  549|  9.36k|  size_t len = p - buffer;
  550|  9.36k|  if (len >= size) {
  ------------------
  |  Branch (550:7): [True: 0, False: 9.36k]
  ------------------
  551|      0|    len = size - 1;
  552|      0|  }
  553|  9.36k|  memcpy(out, buffer, len);
  554|  9.36k|  out[len] = '\0';
  555|  9.36k|}

_ZNK4wabt6Opcode7GetInfoEv:
   41|  1.04M|Opcode::Info Opcode::GetInfo() const {
   42|  1.04M|  if (enum_ < Invalid) {
  ------------------
  |  Branch (42:7): [True: 1.04M, False: 7.70k]
  ------------------
   43|  1.04M|    return infos_[enum_];
   44|  1.04M|  }
   45|       |
   46|  7.70k|  Info invalid_info = infos_[Opcode::Invalid];
   47|  7.70k|  DecodeInvalidOpcode(enum_, &invalid_info.prefix, &invalid_info.code);
   48|  7.70k|  invalid_info.prefix_code = PrefixCode(invalid_info.prefix, invalid_info.code);
   49|  7.70k|  return invalid_info;
   50|  1.04M|}
_ZNK4wabt6Opcode9IsEnabledERKNS_8FeaturesE:
   64|  7.82M|bool Opcode::IsEnabled(const Features& features) const {
   65|  7.82M|  switch (enum_) {
   66|   321k|    case Opcode::Try:
  ------------------
  |  Branch (66:5): [True: 321k, False: 7.50M]
  ------------------
   67|   327k|    case Opcode::Catch:
  ------------------
  |  Branch (67:5): [True: 6.20k, False: 7.82M]
  ------------------
   68|   329k|    case Opcode::Delegate:
  ------------------
  |  Branch (68:5): [True: 1.96k, False: 7.82M]
  ------------------
   69|   336k|    case Opcode::Throw:
  ------------------
  |  Branch (69:5): [True: 6.37k, False: 7.82M]
  ------------------
   70|   353k|    case Opcode::Rethrow:
  ------------------
  |  Branch (70:5): [True: 17.0k, False: 7.80M]
  ------------------
   71|   353k|      return features.exceptions_enabled();
   72|       |
   73|  5.41k|    case Opcode::ReturnCallIndirect:
  ------------------
  |  Branch (73:5): [True: 5.41k, False: 7.82M]
  ------------------
   74|  8.56k|    case Opcode::ReturnCall:
  ------------------
  |  Branch (74:5): [True: 3.15k, False: 7.82M]
  ------------------
   75|  8.56k|      return features.tail_call_enabled();
   76|       |
   77|  1.49k|    case Opcode::I32TruncSatF32S:
  ------------------
  |  Branch (77:5): [True: 1.49k, False: 7.82M]
  ------------------
   78|  2.26k|    case Opcode::I32TruncSatF32U:
  ------------------
  |  Branch (78:5): [True: 766, False: 7.82M]
  ------------------
   79|  2.74k|    case Opcode::I32TruncSatF64S:
  ------------------
  |  Branch (79:5): [True: 484, False: 7.82M]
  ------------------
   80|  3.25k|    case Opcode::I32TruncSatF64U:
  ------------------
  |  Branch (80:5): [True: 509, False: 7.82M]
  ------------------
   81|  9.17k|    case Opcode::I64TruncSatF32S:
  ------------------
  |  Branch (81:5): [True: 5.91k, False: 7.82M]
  ------------------
   82|  9.56k|    case Opcode::I64TruncSatF32U:
  ------------------
  |  Branch (82:5): [True: 392, False: 7.82M]
  ------------------
   83|  9.87k|    case Opcode::I64TruncSatF64S:
  ------------------
  |  Branch (83:5): [True: 312, False: 7.82M]
  ------------------
   84|  10.9k|    case Opcode::I64TruncSatF64U:
  ------------------
  |  Branch (84:5): [True: 1.10k, False: 7.82M]
  ------------------
   85|  10.9k|      return features.sat_float_to_int_enabled();
   86|       |
   87|  2.89k|    case Opcode::I32Extend8S:
  ------------------
  |  Branch (87:5): [True: 2.89k, False: 7.82M]
  ------------------
   88|  4.63k|    case Opcode::I32Extend16S:
  ------------------
  |  Branch (88:5): [True: 1.74k, False: 7.82M]
  ------------------
   89|  5.65k|    case Opcode::I64Extend8S:
  ------------------
  |  Branch (89:5): [True: 1.02k, False: 7.82M]
  ------------------
   90|  6.60k|    case Opcode::I64Extend16S:
  ------------------
  |  Branch (90:5): [True: 948, False: 7.82M]
  ------------------
   91|  7.50k|    case Opcode::I64Extend32S:
  ------------------
  |  Branch (91:5): [True: 903, False: 7.82M]
  ------------------
   92|  7.50k|      return features.sign_extension_enabled();
   93|       |
   94|  2.09k|    case Opcode::MemoryAtomicNotify:
  ------------------
  |  Branch (94:5): [True: 2.09k, False: 7.82M]
  ------------------
   95|  5.28k|    case Opcode::MemoryAtomicWait32:
  ------------------
  |  Branch (95:5): [True: 3.19k, False: 7.82M]
  ------------------
   96|  6.05k|    case Opcode::MemoryAtomicWait64:
  ------------------
  |  Branch (96:5): [True: 763, False: 7.82M]
  ------------------
   97|  7.32k|    case Opcode::AtomicFence:
  ------------------
  |  Branch (97:5): [True: 1.27k, False: 7.82M]
  ------------------
   98|  7.94k|    case Opcode::I32AtomicLoad:
  ------------------
  |  Branch (98:5): [True: 621, False: 7.82M]
  ------------------
   99|  8.02k|    case Opcode::I64AtomicLoad:
  ------------------
  |  Branch (99:5): [True: 78, False: 7.82M]
  ------------------
  100|  8.26k|    case Opcode::I32AtomicLoad8U:
  ------------------
  |  Branch (100:5): [True: 245, False: 7.82M]
  ------------------
  101|  9.06k|    case Opcode::I32AtomicLoad16U:
  ------------------
  |  Branch (101:5): [True: 799, False: 7.82M]
  ------------------
  102|  9.30k|    case Opcode::I64AtomicLoad8U:
  ------------------
  |  Branch (102:5): [True: 235, False: 7.82M]
  ------------------
  103|  9.67k|    case Opcode::I64AtomicLoad16U:
  ------------------
  |  Branch (103:5): [True: 373, False: 7.82M]
  ------------------
  104|  9.73k|    case Opcode::I64AtomicLoad32U:
  ------------------
  |  Branch (104:5): [True: 66, False: 7.82M]
  ------------------
  105|  11.6k|    case Opcode::I32AtomicStore:
  ------------------
  |  Branch (105:5): [True: 1.89k, False: 7.82M]
  ------------------
  106|  11.6k|    case Opcode::I64AtomicStore:
  ------------------
  |  Branch (106:5): [True: 51, False: 7.82M]
  ------------------
  107|  12.8k|    case Opcode::I32AtomicStore8:
  ------------------
  |  Branch (107:5): [True: 1.17k, False: 7.82M]
  ------------------
  108|  12.9k|    case Opcode::I32AtomicStore16:
  ------------------
  |  Branch (108:5): [True: 100, False: 7.82M]
  ------------------
  109|  13.1k|    case Opcode::I64AtomicStore8:
  ------------------
  |  Branch (109:5): [True: 166, False: 7.82M]
  ------------------
  110|  14.0k|    case Opcode::I64AtomicStore16:
  ------------------
  |  Branch (110:5): [True: 902, False: 7.82M]
  ------------------
  111|  14.7k|    case Opcode::I64AtomicStore32:
  ------------------
  |  Branch (111:5): [True: 750, False: 7.82M]
  ------------------
  112|  14.9k|    case Opcode::I32AtomicRmwAdd:
  ------------------
  |  Branch (112:5): [True: 225, False: 7.82M]
  ------------------
  113|  15.1k|    case Opcode::I64AtomicRmwAdd:
  ------------------
  |  Branch (113:5): [True: 159, False: 7.82M]
  ------------------
  114|  15.2k|    case Opcode::I32AtomicRmw8AddU:
  ------------------
  |  Branch (114:5): [True: 53, False: 7.82M]
  ------------------
  115|  15.3k|    case Opcode::I32AtomicRmw16AddU:
  ------------------
  |  Branch (115:5): [True: 95, False: 7.82M]
  ------------------
  116|  16.3k|    case Opcode::I64AtomicRmw8AddU:
  ------------------
  |  Branch (116:5): [True: 1.01k, False: 7.82M]
  ------------------
  117|  16.9k|    case Opcode::I64AtomicRmw16AddU:
  ------------------
  |  Branch (117:5): [True: 592, False: 7.82M]
  ------------------
  118|  17.7k|    case Opcode::I64AtomicRmw32AddU:
  ------------------
  |  Branch (118:5): [True: 827, False: 7.82M]
  ------------------
  119|  17.7k|    case Opcode::I32AtomicRmwSub:
  ------------------
  |  Branch (119:5): [True: 31, False: 7.82M]
  ------------------
  120|  18.0k|    case Opcode::I64AtomicRmwSub:
  ------------------
  |  Branch (120:5): [True: 250, False: 7.82M]
  ------------------
  121|  18.6k|    case Opcode::I32AtomicRmw8SubU:
  ------------------
  |  Branch (121:5): [True: 583, False: 7.82M]
  ------------------
  122|  18.6k|    case Opcode::I32AtomicRmw16SubU:
  ------------------
  |  Branch (122:5): [True: 86, False: 7.82M]
  ------------------
  123|  18.9k|    case Opcode::I64AtomicRmw8SubU:
  ------------------
  |  Branch (123:5): [True: 300, False: 7.82M]
  ------------------
  124|  19.3k|    case Opcode::I64AtomicRmw16SubU:
  ------------------
  |  Branch (124:5): [True: 320, False: 7.82M]
  ------------------
  125|  20.5k|    case Opcode::I64AtomicRmw32SubU:
  ------------------
  |  Branch (125:5): [True: 1.20k, False: 7.82M]
  ------------------
  126|  20.6k|    case Opcode::I32AtomicRmwAnd:
  ------------------
  |  Branch (126:5): [True: 111, False: 7.82M]
  ------------------
  127|  21.0k|    case Opcode::I64AtomicRmwAnd:
  ------------------
  |  Branch (127:5): [True: 425, False: 7.82M]
  ------------------
  128|  21.3k|    case Opcode::I32AtomicRmw8AndU:
  ------------------
  |  Branch (128:5): [True: 255, False: 7.82M]
  ------------------
  129|  21.8k|    case Opcode::I32AtomicRmw16AndU:
  ------------------
  |  Branch (129:5): [True: 564, False: 7.82M]
  ------------------
  130|  22.7k|    case Opcode::I64AtomicRmw8AndU:
  ------------------
  |  Branch (130:5): [True: 906, False: 7.82M]
  ------------------
  131|  23.8k|    case Opcode::I64AtomicRmw16AndU:
  ------------------
  |  Branch (131:5): [True: 1.07k, False: 7.82M]
  ------------------
  132|  24.6k|    case Opcode::I64AtomicRmw32AndU:
  ------------------
  |  Branch (132:5): [True: 777, False: 7.82M]
  ------------------
  133|  25.3k|    case Opcode::I32AtomicRmwOr:
  ------------------
  |  Branch (133:5): [True: 735, False: 7.82M]
  ------------------
  134|  25.6k|    case Opcode::I64AtomicRmwOr:
  ------------------
  |  Branch (134:5): [True: 236, False: 7.82M]
  ------------------
  135|  25.8k|    case Opcode::I32AtomicRmw8OrU:
  ------------------
  |  Branch (135:5): [True: 248, False: 7.82M]
  ------------------
  136|  29.0k|    case Opcode::I32AtomicRmw16OrU:
  ------------------
  |  Branch (136:5): [True: 3.17k, False: 7.82M]
  ------------------
  137|  29.1k|    case Opcode::I64AtomicRmw8OrU:
  ------------------
  |  Branch (137:5): [True: 101, False: 7.82M]
  ------------------
  138|  29.3k|    case Opcode::I64AtomicRmw16OrU:
  ------------------
  |  Branch (138:5): [True: 195, False: 7.82M]
  ------------------
  139|  30.5k|    case Opcode::I64AtomicRmw32OrU:
  ------------------
  |  Branch (139:5): [True: 1.28k, False: 7.82M]
  ------------------
  140|  30.7k|    case Opcode::I32AtomicRmwXor:
  ------------------
  |  Branch (140:5): [True: 172, False: 7.82M]
  ------------------
  141|  30.9k|    case Opcode::I64AtomicRmwXor:
  ------------------
  |  Branch (141:5): [True: 151, False: 7.82M]
  ------------------
  142|  32.5k|    case Opcode::I32AtomicRmw8XorU:
  ------------------
  |  Branch (142:5): [True: 1.59k, False: 7.82M]
  ------------------
  143|  32.5k|    case Opcode::I32AtomicRmw16XorU:
  ------------------
  |  Branch (143:5): [True: 30, False: 7.82M]
  ------------------
  144|  32.5k|    case Opcode::I64AtomicRmw8XorU:
  ------------------
  |  Branch (144:5): [True: 46, False: 7.82M]
  ------------------
  145|  32.7k|    case Opcode::I64AtomicRmw16XorU:
  ------------------
  |  Branch (145:5): [True: 109, False: 7.82M]
  ------------------
  146|  33.8k|    case Opcode::I64AtomicRmw32XorU:
  ------------------
  |  Branch (146:5): [True: 1.11k, False: 7.82M]
  ------------------
  147|  34.3k|    case Opcode::I32AtomicRmwXchg:
  ------------------
  |  Branch (147:5): [True: 507, False: 7.82M]
  ------------------
  148|  34.6k|    case Opcode::I64AtomicRmwXchg:
  ------------------
  |  Branch (148:5): [True: 283, False: 7.82M]
  ------------------
  149|  34.6k|    case Opcode::I32AtomicRmw8XchgU:
  ------------------
  |  Branch (149:5): [True: 70, False: 7.82M]
  ------------------
  150|  34.7k|    case Opcode::I32AtomicRmw16XchgU:
  ------------------
  |  Branch (150:5): [True: 107, False: 7.82M]
  ------------------
  151|  35.0k|    case Opcode::I64AtomicRmw8XchgU:
  ------------------
  |  Branch (151:5): [True: 294, False: 7.82M]
  ------------------
  152|  35.5k|    case Opcode::I64AtomicRmw16XchgU:
  ------------------
  |  Branch (152:5): [True: 446, False: 7.82M]
  ------------------
  153|  37.0k|    case Opcode::I64AtomicRmw32XchgU:
  ------------------
  |  Branch (153:5): [True: 1.50k, False: 7.82M]
  ------------------
  154|  37.1k|    case Opcode::I32AtomicRmwCmpxchg:
  ------------------
  |  Branch (154:5): [True: 94, False: 7.82M]
  ------------------
  155|  37.5k|    case Opcode::I64AtomicRmwCmpxchg:
  ------------------
  |  Branch (155:5): [True: 438, False: 7.82M]
  ------------------
  156|  38.0k|    case Opcode::I32AtomicRmw8CmpxchgU:
  ------------------
  |  Branch (156:5): [True: 446, False: 7.82M]
  ------------------
  157|  38.0k|    case Opcode::I32AtomicRmw16CmpxchgU:
  ------------------
  |  Branch (157:5): [True: 58, False: 7.82M]
  ------------------
  158|  38.2k|    case Opcode::I64AtomicRmw8CmpxchgU:
  ------------------
  |  Branch (158:5): [True: 188, False: 7.82M]
  ------------------
  159|  38.5k|    case Opcode::I64AtomicRmw16CmpxchgU:
  ------------------
  |  Branch (159:5): [True: 256, False: 7.82M]
  ------------------
  160|  40.0k|    case Opcode::I64AtomicRmw32CmpxchgU:
  ------------------
  |  Branch (160:5): [True: 1.51k, False: 7.82M]
  ------------------
  161|  40.0k|      return features.threads_enabled();
  162|       |
  163|    687|    case Opcode::V128Const:
  ------------------
  |  Branch (163:5): [True: 687, False: 7.82M]
  ------------------
  164|  9.27k|    case Opcode::V128Load:
  ------------------
  |  Branch (164:5): [True: 8.58k, False: 7.81M]
  ------------------
  165|  10.9k|    case Opcode::V128Store:
  ------------------
  |  Branch (165:5): [True: 1.71k, False: 7.82M]
  ------------------
  166|  11.3k|    case Opcode::I8X16Splat:
  ------------------
  |  Branch (166:5): [True: 326, False: 7.82M]
  ------------------
  167|  11.4k|    case Opcode::I16X8Splat:
  ------------------
  |  Branch (167:5): [True: 163, False: 7.82M]
  ------------------
  168|  12.3k|    case Opcode::I32X4Splat:
  ------------------
  |  Branch (168:5): [True: 912, False: 7.82M]
  ------------------
  169|  15.3k|    case Opcode::I64X2Splat:
  ------------------
  |  Branch (169:5): [True: 2.93k, False: 7.82M]
  ------------------
  170|  16.5k|    case Opcode::F32X4Splat:
  ------------------
  |  Branch (170:5): [True: 1.26k, False: 7.82M]
  ------------------
  171|  16.8k|    case Opcode::F64X2Splat:
  ------------------
  |  Branch (171:5): [True: 229, False: 7.82M]
  ------------------
  172|  17.1k|    case Opcode::I8X16ExtractLaneS:
  ------------------
  |  Branch (172:5): [True: 292, False: 7.82M]
  ------------------
  173|  17.1k|    case Opcode::I8X16ExtractLaneU:
  ------------------
  |  Branch (173:5): [True: 83, False: 7.82M]
  ------------------
  174|  17.2k|    case Opcode::I16X8ExtractLaneS:
  ------------------
  |  Branch (174:5): [True: 99, False: 7.82M]
  ------------------
  175|  17.4k|    case Opcode::I16X8ExtractLaneU:
  ------------------
  |  Branch (175:5): [True: 116, False: 7.82M]
  ------------------
  176|  17.6k|    case Opcode::I32X4ExtractLane:
  ------------------
  |  Branch (176:5): [True: 257, False: 7.82M]
  ------------------
  177|  18.8k|    case Opcode::I64X2ExtractLane:
  ------------------
  |  Branch (177:5): [True: 1.23k, False: 7.82M]
  ------------------
  178|  23.4k|    case Opcode::F32X4ExtractLane:
  ------------------
  |  Branch (178:5): [True: 4.52k, False: 7.82M]
  ------------------
  179|  26.7k|    case Opcode::F64X2ExtractLane:
  ------------------
  |  Branch (179:5): [True: 3.33k, False: 7.82M]
  ------------------
  180|  27.2k|    case Opcode::I8X16ReplaceLane:
  ------------------
  |  Branch (180:5): [True: 514, False: 7.82M]
  ------------------
  181|  28.1k|    case Opcode::I16X8ReplaceLane:
  ------------------
  |  Branch (181:5): [True: 861, False: 7.82M]
  ------------------
  182|  28.7k|    case Opcode::I32X4ReplaceLane:
  ------------------
  |  Branch (182:5): [True: 630, False: 7.82M]
  ------------------
  183|  29.5k|    case Opcode::I64X2ReplaceLane:
  ------------------
  |  Branch (183:5): [True: 810, False: 7.82M]
  ------------------
  184|  30.3k|    case Opcode::F32X4ReplaceLane:
  ------------------
  |  Branch (184:5): [True: 775, False: 7.82M]
  ------------------
  185|  31.4k|    case Opcode::F64X2ReplaceLane:
  ------------------
  |  Branch (185:5): [True: 1.14k, False: 7.82M]
  ------------------
  186|  32.0k|    case Opcode::I8X16Add:
  ------------------
  |  Branch (186:5): [True: 578, False: 7.82M]
  ------------------
  187|  32.5k|    case Opcode::I16X8Add:
  ------------------
  |  Branch (187:5): [True: 483, False: 7.82M]
  ------------------
  188|  32.9k|    case Opcode::I32X4Add:
  ------------------
  |  Branch (188:5): [True: 387, False: 7.82M]
  ------------------
  189|  33.0k|    case Opcode::I64X2Add:
  ------------------
  |  Branch (189:5): [True: 133, False: 7.82M]
  ------------------
  190|  36.1k|    case Opcode::I8X16Sub:
  ------------------
  |  Branch (190:5): [True: 3.09k, False: 7.82M]
  ------------------
  191|  36.6k|    case Opcode::I16X8Sub:
  ------------------
  |  Branch (191:5): [True: 454, False: 7.82M]
  ------------------
  192|  37.9k|    case Opcode::I32X4Sub:
  ------------------
  |  Branch (192:5): [True: 1.31k, False: 7.82M]
  ------------------
  193|  38.2k|    case Opcode::I64X2Sub:
  ------------------
  |  Branch (193:5): [True: 320, False: 7.82M]
  ------------------
  194|  38.8k|    case Opcode::I16X8Mul:
  ------------------
  |  Branch (194:5): [True: 598, False: 7.82M]
  ------------------
  195|  40.3k|    case Opcode::I32X4Mul:
  ------------------
  |  Branch (195:5): [True: 1.46k, False: 7.82M]
  ------------------
  196|  41.6k|    case Opcode::I8X16Neg:
  ------------------
  |  Branch (196:5): [True: 1.36k, False: 7.82M]
  ------------------
  197|  42.1k|    case Opcode::I16X8Neg:
  ------------------
  |  Branch (197:5): [True: 501, False: 7.82M]
  ------------------
  198|  42.3k|    case Opcode::I32X4Neg:
  ------------------
  |  Branch (198:5): [True: 161, False: 7.82M]
  ------------------
  199|  42.9k|    case Opcode::I64X2Neg:
  ------------------
  |  Branch (199:5): [True: 658, False: 7.82M]
  ------------------
  200|  43.5k|    case Opcode::I8X16AddSatS:
  ------------------
  |  Branch (200:5): [True: 595, False: 7.82M]
  ------------------
  201|  44.5k|    case Opcode::I8X16AddSatU:
  ------------------
  |  Branch (201:5): [True: 933, False: 7.82M]
  ------------------
  202|  45.8k|    case Opcode::I16X8AddSatS:
  ------------------
  |  Branch (202:5): [True: 1.36k, False: 7.82M]
  ------------------
  203|  46.6k|    case Opcode::I16X8AddSatU:
  ------------------
  |  Branch (203:5): [True: 716, False: 7.82M]
  ------------------
  204|  48.0k|    case Opcode::I8X16SubSatS:
  ------------------
  |  Branch (204:5): [True: 1.45k, False: 7.82M]
  ------------------
  205|  50.2k|    case Opcode::I8X16SubSatU:
  ------------------
  |  Branch (205:5): [True: 2.19k, False: 7.82M]
  ------------------
  206|  50.8k|    case Opcode::I16X8SubSatS:
  ------------------
  |  Branch (206:5): [True: 569, False: 7.82M]
  ------------------
  207|  52.1k|    case Opcode::I16X8SubSatU:
  ------------------
  |  Branch (207:5): [True: 1.30k, False: 7.82M]
  ------------------
  208|  54.9k|    case Opcode::I8X16Shl:
  ------------------
  |  Branch (208:5): [True: 2.84k, False: 7.82M]
  ------------------
  209|  55.3k|    case Opcode::I16X8Shl:
  ------------------
  |  Branch (209:5): [True: 401, False: 7.82M]
  ------------------
  210|  55.5k|    case Opcode::I32X4Shl:
  ------------------
  |  Branch (210:5): [True: 140, False: 7.82M]
  ------------------
  211|  55.6k|    case Opcode::I64X2Shl:
  ------------------
  |  Branch (211:5): [True: 113, False: 7.82M]
  ------------------
  212|  56.5k|    case Opcode::I8X16ShrS:
  ------------------
  |  Branch (212:5): [True: 964, False: 7.82M]
  ------------------
  213|  58.2k|    case Opcode::I8X16ShrU:
  ------------------
  |  Branch (213:5): [True: 1.68k, False: 7.82M]
  ------------------
  214|  59.5k|    case Opcode::I16X8ShrS:
  ------------------
  |  Branch (214:5): [True: 1.28k, False: 7.82M]
  ------------------
  215|  60.2k|    case Opcode::I16X8ShrU:
  ------------------
  |  Branch (215:5): [True: 683, False: 7.82M]
  ------------------
  216|  60.7k|    case Opcode::I32X4ShrS:
  ------------------
  |  Branch (216:5): [True: 554, False: 7.82M]
  ------------------
  217|  60.8k|    case Opcode::I32X4ShrU:
  ------------------
  |  Branch (217:5): [True: 93, False: 7.82M]
  ------------------
  218|  61.3k|    case Opcode::I64X2ShrS:
  ------------------
  |  Branch (218:5): [True: 483, False: 7.82M]
  ------------------
  219|  61.5k|    case Opcode::I64X2ShrU:
  ------------------
  |  Branch (219:5): [True: 184, False: 7.82M]
  ------------------
  220|  64.9k|    case Opcode::V128And:
  ------------------
  |  Branch (220:5): [True: 3.43k, False: 7.82M]
  ------------------
  221|  66.2k|    case Opcode::V128Or:
  ------------------
  |  Branch (221:5): [True: 1.23k, False: 7.82M]
  ------------------
  222|  66.9k|    case Opcode::V128Xor:
  ------------------
  |  Branch (222:5): [True: 748, False: 7.82M]
  ------------------
  223|  68.6k|    case Opcode::V128Not:
  ------------------
  |  Branch (223:5): [True: 1.68k, False: 7.82M]
  ------------------
  224|  70.0k|    case Opcode::V128BitSelect:
  ------------------
  |  Branch (224:5): [True: 1.40k, False: 7.82M]
  ------------------
  225|  71.3k|    case Opcode::V128AnyTrue:
  ------------------
  |  Branch (225:5): [True: 1.28k, False: 7.82M]
  ------------------
  226|  73.8k|    case Opcode::I8X16Bitmask:
  ------------------
  |  Branch (226:5): [True: 2.50k, False: 7.82M]
  ------------------
  227|  74.3k|    case Opcode::I16X8Bitmask:
  ------------------
  |  Branch (227:5): [True: 488, False: 7.82M]
  ------------------
  228|  74.8k|    case Opcode::I32X4Bitmask:
  ------------------
  |  Branch (228:5): [True: 503, False: 7.82M]
  ------------------
  229|  75.4k|    case Opcode::I64X2Bitmask:
  ------------------
  |  Branch (229:5): [True: 671, False: 7.82M]
  ------------------
  230|  75.7k|    case Opcode::I8X16AllTrue:
  ------------------
  |  Branch (230:5): [True: 220, False: 7.82M]
  ------------------
  231|  76.8k|    case Opcode::I16X8AllTrue:
  ------------------
  |  Branch (231:5): [True: 1.12k, False: 7.82M]
  ------------------
  232|  78.4k|    case Opcode::I32X4AllTrue:
  ------------------
  |  Branch (232:5): [True: 1.65k, False: 7.82M]
  ------------------
  233|  78.9k|    case Opcode::I64X2AllTrue:
  ------------------
  |  Branch (233:5): [True: 403, False: 7.82M]
  ------------------
  234|  80.2k|    case Opcode::I8X16Eq:
  ------------------
  |  Branch (234:5): [True: 1.38k, False: 7.82M]
  ------------------
  235|  81.8k|    case Opcode::I16X8Eq:
  ------------------
  |  Branch (235:5): [True: 1.52k, False: 7.82M]
  ------------------
  236|  82.2k|    case Opcode::I32X4Eq:
  ------------------
  |  Branch (236:5): [True: 463, False: 7.82M]
  ------------------
  237|  83.6k|    case Opcode::F32X4Eq:
  ------------------
  |  Branch (237:5): [True: 1.39k, False: 7.82M]
  ------------------
  238|  84.0k|    case Opcode::F64X2Eq:
  ------------------
  |  Branch (238:5): [True: 392, False: 7.82M]
  ------------------
  239|  84.5k|    case Opcode::I8X16Ne:
  ------------------
  |  Branch (239:5): [True: 520, False: 7.82M]
  ------------------
  240|  85.0k|    case Opcode::I16X8Ne:
  ------------------
  |  Branch (240:5): [True: 428, False: 7.82M]
  ------------------
  241|  87.0k|    case Opcode::I32X4Ne:
  ------------------
  |  Branch (241:5): [True: 2.06k, False: 7.82M]
  ------------------
  242|  87.5k|    case Opcode::F32X4Ne:
  ------------------
  |  Branch (242:5): [True: 485, False: 7.82M]
  ------------------
  243|  89.5k|    case Opcode::F64X2Ne:
  ------------------
  |  Branch (243:5): [True: 1.97k, False: 7.82M]
  ------------------
  244|  89.7k|    case Opcode::I8X16LtS:
  ------------------
  |  Branch (244:5): [True: 225, False: 7.82M]
  ------------------
  245|  90.2k|    case Opcode::I8X16LtU:
  ------------------
  |  Branch (245:5): [True: 468, False: 7.82M]
  ------------------
  246|  91.2k|    case Opcode::I16X8LtS:
  ------------------
  |  Branch (246:5): [True: 1.06k, False: 7.82M]
  ------------------
  247|  93.0k|    case Opcode::I16X8LtU:
  ------------------
  |  Branch (247:5): [True: 1.77k, False: 7.82M]
  ------------------
  248|  96.5k|    case Opcode::I32X4LtS:
  ------------------
  |  Branch (248:5): [True: 3.50k, False: 7.82M]
  ------------------
  249|  97.4k|    case Opcode::I32X4LtU:
  ------------------
  |  Branch (249:5): [True: 859, False: 7.82M]
  ------------------
  250|  97.9k|    case Opcode::F32X4Lt:
  ------------------
  |  Branch (250:5): [True: 523, False: 7.82M]
  ------------------
  251|   112k|    case Opcode::F64X2Lt:
  ------------------
  |  Branch (251:5): [True: 14.7k, False: 7.81M]
  ------------------
  252|   114k|    case Opcode::I8X16LeS:
  ------------------
  |  Branch (252:5): [True: 1.86k, False: 7.82M]
  ------------------
  253|   114k|    case Opcode::I8X16LeU:
  ------------------
  |  Branch (253:5): [True: 258, False: 7.82M]
  ------------------
  254|   115k|    case Opcode::I16X8LeS:
  ------------------
  |  Branch (254:5): [True: 320, False: 7.82M]
  ------------------
  255|   116k|    case Opcode::I16X8LeU:
  ------------------
  |  Branch (255:5): [True: 1.17k, False: 7.82M]
  ------------------
  256|   117k|    case Opcode::I32X4LeS:
  ------------------
  |  Branch (256:5): [True: 1.15k, False: 7.82M]
  ------------------
  257|   118k|    case Opcode::I32X4LeU:
  ------------------
  |  Branch (257:5): [True: 1.02k, False: 7.82M]
  ------------------
  258|   119k|    case Opcode::F32X4Le:
  ------------------
  |  Branch (258:5): [True: 578, False: 7.82M]
  ------------------
  259|   119k|    case Opcode::F64X2Le:
  ------------------
  |  Branch (259:5): [True: 402, False: 7.82M]
  ------------------
  260|   120k|    case Opcode::I8X16GtS:
  ------------------
  |  Branch (260:5): [True: 551, False: 7.82M]
  ------------------
  261|   121k|    case Opcode::I8X16GtU:
  ------------------
  |  Branch (261:5): [True: 1.13k, False: 7.82M]
  ------------------
  262|   122k|    case Opcode::I16X8GtS:
  ------------------
  |  Branch (262:5): [True: 900, False: 7.82M]
  ------------------
  263|   123k|    case Opcode::I16X8GtU:
  ------------------
  |  Branch (263:5): [True: 1.24k, False: 7.82M]
  ------------------
  264|   124k|    case Opcode::I32X4GtS:
  ------------------
  |  Branch (264:5): [True: 1.17k, False: 7.82M]
  ------------------
  265|   127k|    case Opcode::I32X4GtU:
  ------------------
  |  Branch (265:5): [True: 3.03k, False: 7.82M]
  ------------------
  266|   129k|    case Opcode::F32X4Gt:
  ------------------
  |  Branch (266:5): [True: 1.53k, False: 7.82M]
  ------------------
  267|   129k|    case Opcode::F64X2Gt:
  ------------------
  |  Branch (267:5): [True: 208, False: 7.82M]
  ------------------
  268|   130k|    case Opcode::I8X16GeS:
  ------------------
  |  Branch (268:5): [True: 1.06k, False: 7.82M]
  ------------------
  269|   130k|    case Opcode::I8X16GeU:
  ------------------
  |  Branch (269:5): [True: 599, False: 7.82M]
  ------------------
  270|   131k|    case Opcode::I16X8GeS:
  ------------------
  |  Branch (270:5): [True: 644, False: 7.82M]
  ------------------
  271|   132k|    case Opcode::I16X8GeU:
  ------------------
  |  Branch (271:5): [True: 795, False: 7.82M]
  ------------------
  272|   132k|    case Opcode::I32X4GeS:
  ------------------
  |  Branch (272:5): [True: 194, False: 7.82M]
  ------------------
  273|   132k|    case Opcode::I32X4GeU:
  ------------------
  |  Branch (273:5): [True: 407, False: 7.82M]
  ------------------
  274|   133k|    case Opcode::F32X4Ge:
  ------------------
  |  Branch (274:5): [True: 655, False: 7.82M]
  ------------------
  275|   135k|    case Opcode::F64X2Ge:
  ------------------
  |  Branch (275:5): [True: 1.40k, False: 7.82M]
  ------------------
  276|   135k|    case Opcode::F32X4Neg:
  ------------------
  |  Branch (276:5): [True: 708, False: 7.82M]
  ------------------
  277|   137k|    case Opcode::F64X2Neg:
  ------------------
  |  Branch (277:5): [True: 1.35k, False: 7.82M]
  ------------------
  278|   137k|    case Opcode::F32X4Abs:
  ------------------
  |  Branch (278:5): [True: 406, False: 7.82M]
  ------------------
  279|   137k|    case Opcode::F64X2Abs:
  ------------------
  |  Branch (279:5): [True: 195, False: 7.82M]
  ------------------
  280|   138k|    case Opcode::F32X4Min:
  ------------------
  |  Branch (280:5): [True: 1.07k, False: 7.82M]
  ------------------
  281|   138k|    case Opcode::F32X4PMin:
  ------------------
  |  Branch (281:5): [True: 148, False: 7.82M]
  ------------------
  282|   139k|    case Opcode::F64X2Min:
  ------------------
  |  Branch (282:5): [True: 224, False: 7.82M]
  ------------------
  283|   139k|    case Opcode::F64X2PMin:
  ------------------
  |  Branch (283:5): [True: 267, False: 7.82M]
  ------------------
  284|   139k|    case Opcode::F32X4Max:
  ------------------
  |  Branch (284:5): [True: 384, False: 7.82M]
  ------------------
  285|   140k|    case Opcode::F32X4PMax:
  ------------------
  |  Branch (285:5): [True: 338, False: 7.82M]
  ------------------
  286|   140k|    case Opcode::F64X2Max:
  ------------------
  |  Branch (286:5): [True: 74, False: 7.82M]
  ------------------
  287|   140k|    case Opcode::F64X2PMax:
  ------------------
  |  Branch (287:5): [True: 232, False: 7.82M]
  ------------------
  288|   141k|    case Opcode::F32X4Add:
  ------------------
  |  Branch (288:5): [True: 649, False: 7.82M]
  ------------------
  289|   141k|    case Opcode::F64X2Add:
  ------------------
  |  Branch (289:5): [True: 242, False: 7.82M]
  ------------------
  290|   141k|    case Opcode::F32X4Sub:
  ------------------
  |  Branch (290:5): [True: 228, False: 7.82M]
  ------------------
  291|   141k|    case Opcode::F64X2Sub:
  ------------------
  |  Branch (291:5): [True: 416, False: 7.82M]
  ------------------
  292|   143k|    case Opcode::F32X4Div:
  ------------------
  |  Branch (292:5): [True: 1.15k, False: 7.82M]
  ------------------
  293|   143k|    case Opcode::F64X2Div:
  ------------------
  |  Branch (293:5): [True: 143, False: 7.82M]
  ------------------
  294|   145k|    case Opcode::F32X4Mul:
  ------------------
  |  Branch (294:5): [True: 2.32k, False: 7.82M]
  ------------------
  295|   145k|    case Opcode::F64X2Mul:
  ------------------
  |  Branch (295:5): [True: 173, False: 7.82M]
  ------------------
  296|   145k|    case Opcode::F32X4Sqrt:
  ------------------
  |  Branch (296:5): [True: 242, False: 7.82M]
  ------------------
  297|   150k|    case Opcode::F64X2Sqrt:
  ------------------
  |  Branch (297:5): [True: 4.92k, False: 7.82M]
  ------------------
  298|   153k|    case Opcode::F32X4ConvertI32X4S:
  ------------------
  |  Branch (298:5): [True: 2.67k, False: 7.82M]
  ------------------
  299|   153k|    case Opcode::F32X4ConvertI32X4U:
  ------------------
  |  Branch (299:5): [True: 47, False: 7.82M]
  ------------------
  300|   153k|    case Opcode::I32X4TruncSatF32X4S:
  ------------------
  |  Branch (300:5): [True: 264, False: 7.82M]
  ------------------
  301|   154k|    case Opcode::I32X4TruncSatF32X4U:
  ------------------
  |  Branch (301:5): [True: 372, False: 7.82M]
  ------------------
  302|   157k|    case Opcode::I8X16Swizzle:
  ------------------
  |  Branch (302:5): [True: 2.72k, False: 7.82M]
  ------------------
  303|   158k|    case Opcode::I8X16Shuffle:
  ------------------
  |  Branch (303:5): [True: 1.77k, False: 7.82M]
  ------------------
  304|   159k|    case Opcode::V128Load8Splat:
  ------------------
  |  Branch (304:5): [True: 1.00k, False: 7.82M]
  ------------------
  305|   161k|    case Opcode::V128Load16Splat:
  ------------------
  |  Branch (305:5): [True: 1.84k, False: 7.82M]
  ------------------
  306|   163k|    case Opcode::V128Load32Splat:
  ------------------
  |  Branch (306:5): [True: 2.25k, False: 7.82M]
  ------------------
  307|   166k|    case Opcode::V128Load64Splat:
  ------------------
  |  Branch (307:5): [True: 2.61k, False: 7.82M]
  ------------------
  308|   167k|    case Opcode::V128Load8Lane:
  ------------------
  |  Branch (308:5): [True: 1.05k, False: 7.82M]
  ------------------
  309|   171k|    case Opcode::V128Load16Lane:
  ------------------
  |  Branch (309:5): [True: 3.76k, False: 7.82M]
  ------------------
  310|   172k|    case Opcode::V128Load32Lane:
  ------------------
  |  Branch (310:5): [True: 1.15k, False: 7.82M]
  ------------------
  311|   173k|    case Opcode::V128Load64Lane:
  ------------------
  |  Branch (311:5): [True: 1.53k, False: 7.82M]
  ------------------
  312|   174k|    case Opcode::V128Store8Lane:
  ------------------
  |  Branch (312:5): [True: 410, False: 7.82M]
  ------------------
  313|   174k|    case Opcode::V128Store16Lane:
  ------------------
  |  Branch (313:5): [True: 495, False: 7.82M]
  ------------------
  314|   176k|    case Opcode::V128Store32Lane:
  ------------------
  |  Branch (314:5): [True: 1.24k, False: 7.82M]
  ------------------
  315|   181k|    case Opcode::V128Store64Lane:
  ------------------
  |  Branch (315:5): [True: 5.72k, False: 7.82M]
  ------------------
  316|   183k|    case Opcode::I8X16Abs:
  ------------------
  |  Branch (316:5): [True: 1.82k, False: 7.82M]
  ------------------
  317|   183k|    case Opcode::I16X8Abs:
  ------------------
  |  Branch (317:5): [True: 192, False: 7.82M]
  ------------------
  318|   184k|    case Opcode::I32X4Abs:
  ------------------
  |  Branch (318:5): [True: 411, False: 7.82M]
  ------------------
  319|   184k|      return features.simd_enabled();
  320|       |
  321|    143|    case Opcode::I8X16RelaxedSwizzle:
  ------------------
  |  Branch (321:5): [True: 143, False: 7.82M]
  ------------------
  322|    149|    case Opcode::I32X4RelaxedTruncF32X4S:
  ------------------
  |  Branch (322:5): [True: 6, False: 7.82M]
  ------------------
  323|    276|    case Opcode::I32X4RelaxedTruncF32X4U:
  ------------------
  |  Branch (323:5): [True: 127, False: 7.82M]
  ------------------
  324|  1.15k|    case Opcode::I32X4RelaxedTruncF64X2SZero:
  ------------------
  |  Branch (324:5): [True: 876, False: 7.82M]
  ------------------
  325|  1.25k|    case Opcode::I32X4RelaxedTruncF64X2UZero:
  ------------------
  |  Branch (325:5): [True: 106, False: 7.82M]
  ------------------
  326|  1.38k|    case Opcode::F32X4RelaxedMadd:
  ------------------
  |  Branch (326:5): [True: 130, False: 7.82M]
  ------------------
  327|  1.55k|    case Opcode::F32X4RelaxedNmadd:
  ------------------
  |  Branch (327:5): [True: 170, False: 7.82M]
  ------------------
  328|  2.11k|    case Opcode::F64X2RelaxedMadd:
  ------------------
  |  Branch (328:5): [True: 560, False: 7.82M]
  ------------------
  329|  2.16k|    case Opcode::F64X2RelaxedNmadd:
  ------------------
  |  Branch (329:5): [True: 51, False: 7.82M]
  ------------------
  330|  3.62k|    case Opcode::I8X16RelaxedLaneSelect:
  ------------------
  |  Branch (330:5): [True: 1.45k, False: 7.82M]
  ------------------
  331|  3.72k|    case Opcode::I16X8RelaxedLaneSelect:
  ------------------
  |  Branch (331:5): [True: 101, False: 7.82M]
  ------------------
  332|  3.93k|    case Opcode::I32X4RelaxedLaneSelect:
  ------------------
  |  Branch (332:5): [True: 212, False: 7.82M]
  ------------------
  333|  5.23k|    case Opcode::I64X2RelaxedLaneSelect:
  ------------------
  |  Branch (333:5): [True: 1.30k, False: 7.82M]
  ------------------
  334|  5.55k|    case Opcode::F32X4RelaxedMin:
  ------------------
  |  Branch (334:5): [True: 319, False: 7.82M]
  ------------------
  335|  5.70k|    case Opcode::F32X4RelaxedMax:
  ------------------
  |  Branch (335:5): [True: 153, False: 7.82M]
  ------------------
  336|  5.98k|    case Opcode::F64X2RelaxedMin:
  ------------------
  |  Branch (336:5): [True: 279, False: 7.82M]
  ------------------
  337|  6.06k|    case Opcode::F64X2RelaxedMax:
  ------------------
  |  Branch (337:5): [True: 74, False: 7.82M]
  ------------------
  338|  8.99k|    case Opcode::I16X8RelaxedQ15mulrS:
  ------------------
  |  Branch (338:5): [True: 2.93k, False: 7.82M]
  ------------------
  339|  9.23k|    case Opcode::I16X8DotI8X16I7X16S:
  ------------------
  |  Branch (339:5): [True: 241, False: 7.82M]
  ------------------
  340|  9.33k|    case Opcode::I32X4DotI8X16I7X16AddS:
  ------------------
  |  Branch (340:5): [True: 106, False: 7.82M]
  ------------------
  341|  9.33k|      return features.relaxed_simd_enabled();
  342|       |
  343|     83|    case Opcode::MemoryInit:
  ------------------
  |  Branch (343:5): [True: 83, False: 7.82M]
  ------------------
  344|    131|    case Opcode::DataDrop:
  ------------------
  |  Branch (344:5): [True: 48, False: 7.82M]
  ------------------
  345|    400|    case Opcode::MemoryCopy:
  ------------------
  |  Branch (345:5): [True: 269, False: 7.82M]
  ------------------
  346|  1.67k|    case Opcode::MemoryFill:
  ------------------
  |  Branch (346:5): [True: 1.27k, False: 7.82M]
  ------------------
  347|  1.91k|    case Opcode::TableInit:
  ------------------
  |  Branch (347:5): [True: 238, False: 7.82M]
  ------------------
  348|  2.47k|    case Opcode::ElemDrop:
  ------------------
  |  Branch (348:5): [True: 563, False: 7.82M]
  ------------------
  349|  5.08k|    case Opcode::TableCopy:
  ------------------
  |  Branch (349:5): [True: 2.61k, False: 7.82M]
  ------------------
  350|  5.08k|      return features.bulk_memory_enabled();
  351|       |
  352|  2.40k|    case Opcode::TableGet:
  ------------------
  |  Branch (352:5): [True: 2.40k, False: 7.82M]
  ------------------
  353|  4.80k|    case Opcode::TableSet:
  ------------------
  |  Branch (353:5): [True: 2.40k, False: 7.82M]
  ------------------
  354|  5.37k|    case Opcode::TableGrow:
  ------------------
  |  Branch (354:5): [True: 574, False: 7.82M]
  ------------------
  355|  6.08k|    case Opcode::TableSize:
  ------------------
  |  Branch (355:5): [True: 701, False: 7.82M]
  ------------------
  356|  9.02k|    case Opcode::RefNull:
  ------------------
  |  Branch (356:5): [True: 2.94k, False: 7.82M]
  ------------------
  357|  9.91k|    case Opcode::RefIsNull:
  ------------------
  |  Branch (357:5): [True: 893, False: 7.82M]
  ------------------
  358|  9.91k|      return features.reference_types_enabled();
  359|       |
  360|  3.57k|    case Opcode::CallRef:
  ------------------
  |  Branch (360:5): [True: 3.57k, False: 7.82M]
  ------------------
  361|  3.57k|      return features.function_references_enabled();
  362|       |
  363|       |    // Interpreter opcodes are never "enabled".
  364|     98|    case Opcode::InterpAlloca:
  ------------------
  |  Branch (364:5): [True: 98, False: 7.82M]
  ------------------
  365|    141|    case Opcode::InterpBrUnless:
  ------------------
  |  Branch (365:5): [True: 43, False: 7.82M]
  ------------------
  366|    240|    case Opcode::InterpCallImport:
  ------------------
  |  Branch (366:5): [True: 99, False: 7.82M]
  ------------------
  367|    246|    case Opcode::InterpData:
  ------------------
  |  Branch (367:5): [True: 6, False: 7.82M]
  ------------------
  368|    283|    case Opcode::InterpDropKeep:
  ------------------
  |  Branch (368:5): [True: 37, False: 7.82M]
  ------------------
  369|    283|      return false;
  370|       |
  371|  7.19M|    default:
  ------------------
  |  Branch (371:5): [True: 7.19M, False: 632k]
  ------------------
  372|  7.19M|      return true;
  373|  7.82M|  }
  374|  7.82M|}
_ZNK4wabt6Opcode8GetBytesEv:
  414|   296k|std::vector<uint8_t> Opcode::GetBytes() const {
  415|   296k|  std::vector<uint8_t> result;
  416|   296k|  if (HasPrefix()) {
  ------------------
  |  Branch (416:7): [True: 21.4k, False: 275k]
  ------------------
  417|  21.4k|    result.push_back(GetPrefix());
  418|  21.4k|    uint8_t buffer[5];
  419|  21.4k|    Offset length =
  420|  21.4k|        WriteU32Leb128Raw(buffer, buffer + sizeof(buffer), GetCode());
  421|  21.4k|    assert(length != 0);
  422|  21.4k|    result.insert(result.end(), buffer, buffer + length);
  423|   275k|  } else {
  424|   275k|    result.push_back(GetCode());
  425|   275k|  }
  426|   296k|  return result;
  427|   296k|}

_ZN4wabt6StreamC2EPS0_:
   33|  73.0k|    : offset_(0), result_(Result::Ok), log_stream_(log_stream) {}
_ZN4wabt6Stream11WriteDataAtEmPKvmPKcNS_10PrintCharsE:
   43|  44.0M|                         PrintChars print_chars) {
   44|  44.0M|  if (Failed(result_)) {
  ------------------
  |  Branch (44:7): [True: 0, False: 44.0M]
  ------------------
   45|      0|    return;
   46|      0|  }
   47|  44.0M|  if (log_stream_) {
  ------------------
  |  Branch (47:7): [True: 0, False: 44.0M]
  ------------------
   48|      0|    log_stream_->WriteMemoryDump(src, size, at, print_chars, nullptr, desc);
   49|      0|  }
   50|  44.0M|  result_ = WriteDataImpl(at, src, size);
   51|  44.0M|}
_ZN4wabt6Stream9WriteDataEPKvmPKcNS_10PrintCharsE:
   56|  44.0M|                       PrintChars print_chars) {
   57|  44.0M|  WriteDataAt(offset_, src, size, desc, print_chars);
   58|  44.0M|  offset_ += size;
   59|  44.0M|}
_ZN4wabt6Stream6WritefEPKcz:
   87|  16.2M|void Stream::Writef(const char* format, ...) {
   88|  16.2M|  WABT_SNPRINTF_ALLOCA(buffer, length, format);
  ------------------
  |  |   36|  16.2M|  va_list args;                                                            \
  |  |   37|  16.2M|  va_list args_copy;                                                       \
  |  |   38|  16.2M|  va_start(args, format);                                                  \
  |  |   39|  16.2M|  va_copy(args_copy, args);                                                \
  |  |   40|  16.2M|  char fixed_buf[WABT_DEFAULT_SNPRINTF_ALLOCA_BUFSIZE];                    \
  |  |   41|  16.2M|  char* buffer = fixed_buf;                                                \
  |  |   42|  16.2M|  size_t len = wabt_vsnprintf(fixed_buf, sizeof(fixed_buf), format, args); \
  |  |  ------------------
  |  |  |  |  301|  16.2M|#define wabt_vsnprintf vsnprintf
  |  |  ------------------
  |  |   43|  16.2M|  va_end(args);                                                            \
  |  |   44|  16.2M|  if (len + 1 > sizeof(fixed_buf)) {                                       \
  |  |  ------------------
  |  |  |  Branch (44:7): [True: 0, False: 16.2M]
  |  |  ------------------
  |  |   45|      0|    buffer = static_cast<char*>(alloca(len + 1));                          \
  |  |   46|      0|    len = wabt_vsnprintf(buffer, len + 1, format, args_copy);              \
  |  |  ------------------
  |  |  |  |  301|      0|#define wabt_vsnprintf vsnprintf
  |  |  ------------------
  |  |   47|      0|  }                                                                        \
  |  |   48|  16.2M|  va_end(args_copy)
  ------------------
   89|  16.2M|  WriteData(buffer, length);
   90|  16.2M|}
_ZN4wabt6Stream15WriteMemoryDumpEPKvmmNS_10PrintCharsEPKcS5_:
   97|  1.64M|                             const char* desc) {
   98|  1.64M|  const uint8_t* p = static_cast<const uint8_t*>(start);
   99|  1.64M|  const uint8_t* end = p + size;
  100|  2.66M|  while (p < end) {
  ------------------
  |  Branch (100:10): [True: 1.02M, False: 1.64M]
  ------------------
  101|  1.02M|    const uint8_t* line = p;
  102|  1.02M|    const uint8_t* line_end = p + DUMP_OCTETS_PER_LINE;
  ------------------
  |  |   23|  1.02M|#define DUMP_OCTETS_PER_LINE 16
  ------------------
  103|  1.02M|    if (prefix) {
  ------------------
  |  Branch (103:9): [True: 36.3k, False: 985k]
  ------------------
  104|  36.3k|      Writef("%s", prefix);
  105|  36.3k|    }
  106|  1.02M|    Writef("%07" PRIzx ": ", reinterpret_cast<intptr_t>(p) -
  107|  1.02M|                                 reinterpret_cast<intptr_t>(start) + offset);
  108|  9.19M|    while (p < line_end) {
  ------------------
  |  Branch (108:12): [True: 8.17M, False: 1.02M]
  ------------------
  109|  24.5M|      for (int i = 0; i < DUMP_OCTETS_PER_GROUP; ++i, ++p) {
  ------------------
  |  |   24|  24.5M|#define DUMP_OCTETS_PER_GROUP 2
  ------------------
  |  Branch (109:23): [True: 16.3M, False: 8.17M]
  ------------------
  110|  16.3M|        if (p < end) {
  ------------------
  |  Branch (110:13): [True: 15.1M, False: 1.15M]
  ------------------
  111|  15.1M|          Writef("%02x", *p);
  112|  15.1M|        } else {
  113|  1.15M|          WriteChar(' ');
  114|  1.15M|          WriteChar(' ');
  115|  1.15M|        }
  116|  16.3M|      }
  117|  8.17M|      WriteChar(' ');
  118|  8.17M|    }
  119|       |
  120|  1.02M|    if (print_chars == PrintChars::Yes) {
  ------------------
  |  Branch (120:9): [True: 1.02M, False: 0]
  ------------------
  121|  1.02M|      WriteChar(' ');
  122|  1.02M|      p = line;
  123|  16.2M|      for (int i = 0; i < DUMP_OCTETS_PER_LINE && p < end; ++i, ++p)
  ------------------
  |  |   23|  32.4M|#define DUMP_OCTETS_PER_LINE 16
  ------------------
  |  Branch (123:23): [True: 15.3M, False: 876k]
  |  Branch (123:51): [True: 15.1M, False: 145k]
  ------------------
  124|  15.1M|        WriteChar(isprint(*p) ? *p : '.');
  ------------------
  |  Branch (124:19): [True: 3.31M, False: 11.8M]
  ------------------
  125|  1.02M|    }
  126|       |
  127|       |    /* if there are multiple lines, only print the desc on the last one */
  128|  1.02M|    if (p >= end && desc) {
  ------------------
  |  Branch (128:9): [True: 157k, False: 864k]
  |  Branch (128:21): [True: 0, False: 157k]
  ------------------
  129|      0|      Writef("  ; %s", desc);
  130|      0|    }
  131|  1.02M|    WriteChar('\n');
  132|  1.02M|  }
  133|  1.64M|}
_ZN4wabt10FileStreamC2EP8_IO_FILEPNS_6StreamE:
  246|  73.0k|    : Stream(log_stream), file_(file), offset_(0), should_close_(false) {}
_ZN4wabt10FileStreamD2Ev:
  262|  73.0k|FileStream::~FileStream() {
  263|       |  // We don't want to close existing files (stdout/sterr, for example).
  264|  73.0k|  if (should_close_) {
  ------------------
  |  Branch (264:7): [True: 0, False: 73.0k]
  ------------------
  265|      0|    fclose(file_);
  266|      0|  }
  267|  73.0k|}
_ZN4wabt10FileStream13WriteDataImplEmPKvm:
  275|  44.0M|Result FileStream::WriteDataImpl(size_t at, const void* data, size_t size) {
  276|  44.0M|  if (!file_) {
  ------------------
  |  Branch (276:7): [True: 0, False: 44.0M]
  ------------------
  277|      0|    return Result::Error;
  278|      0|  }
  279|  44.0M|  if (size == 0) {
  ------------------
  |  Branch (279:7): [True: 0, False: 44.0M]
  ------------------
  280|      0|    return Result::Ok;
  281|      0|  }
  282|  44.0M|  if (at != offset_) {
  ------------------
  |  Branch (282:7): [True: 0, False: 44.0M]
  ------------------
  283|      0|    if (fseek(file_, at, SEEK_SET) != 0) {
  ------------------
  |  Branch (283:9): [True: 0, False: 0]
  ------------------
  284|      0|      ERROR("fseek offset=%" PRIzd " failed, errno=%d\n", size, errno);
  ------------------
  |  |   28|      0|  fprintf(stderr, "%s:%d: " fmt, __FILE__, __LINE__, __VA_ARGS__)
  ------------------
  285|      0|      return Result::Error;
  286|      0|    }
  287|      0|    offset_ = at;
  288|      0|  }
  289|  44.0M|  if (fwrite(data, size, 1, file_) != 1) {
  ------------------
  |  Branch (289:7): [True: 0, False: 44.0M]
  ------------------
  290|      0|    ERROR("fwrite size=%" PRIzd " failed, errno=%d\n", size, errno);
  ------------------
  |  |   28|      0|  fprintf(stderr, "%s:%d: " fmt, __FILE__, __LINE__, __VA_ARGS__)
  ------------------
  291|      0|    return Result::Error;
  292|      0|  }
  293|  44.0M|  offset_ += size;
  294|  44.0M|  return Result::Ok;
  295|  44.0M|}
_ZN4wabt10FileStream12CreateStdoutEv:
  321|  27.3k|std::unique_ptr<FileStream> FileStream::CreateStdout() {
  322|  27.3k|  return std::unique_ptr<FileStream>(new FileStream(stdout));
  323|  27.3k|}
_ZN4wabt10FileStream12CreateStderrEv:
  326|  45.6k|std::unique_ptr<FileStream> FileStream::CreateStderr() {
  327|  45.6k|  return std::unique_ptr<FileStream>(new FileStream(stderr));
  328|  45.6k|}

_ZN4wabt11IsValidUtf8EPKcm:
   54|  1.34M|bool IsValidUtf8(const char* s, size_t s_length) {
   55|  1.34M|  const uint8_t* p = reinterpret_cast<const uint8_t*>(s);
   56|  1.34M|  const uint8_t* end = p + s_length;
   57|  10.0M|  while (p < end) {
  ------------------
  |  Branch (57:10): [True: 8.72M, False: 1.32M]
  ------------------
   58|  8.72M|    uint8_t cu0 = *p;
   59|  8.72M|    int length = s_utf8_length[cu0];
   60|  8.72M|    if (p + length > end) {
  ------------------
  |  Branch (60:9): [True: 2.04k, False: 8.71M]
  ------------------
   61|  2.04k|      return false;
   62|  2.04k|    }
   63|       |
   64|  8.71M|    switch (length) {
  ------------------
  |  Branch (64:13): [True: 0, False: 8.71M]
  ------------------
   65|  14.5k|      case 0:
  ------------------
  |  Branch (65:7): [True: 14.5k, False: 8.70M]
  ------------------
   66|  14.5k|        return false;
   67|       |
   68|  8.64M|      case 1:
  ------------------
  |  Branch (68:7): [True: 8.64M, False: 77.4k]
  ------------------
   69|  8.64M|        p++;
   70|  8.64M|        break;
   71|       |
   72|  17.3k|      case 2:
  ------------------
  |  Branch (72:7): [True: 17.3k, False: 8.70M]
  ------------------
   73|  17.3k|        p++;
   74|  17.3k|        if (!IsCont(*p++)) {
  ------------------
  |  Branch (74:13): [True: 1.32k, False: 16.0k]
  ------------------
   75|  1.32k|          return false;
   76|  1.32k|        }
   77|  16.0k|        break;
   78|       |
   79|  16.0k|      case 3: {
  ------------------
  |  Branch (79:7): [True: 8.86k, False: 8.70M]
  ------------------
   80|  8.86k|        p++;
   81|  8.86k|        uint8_t cu1 = *p++;
   82|  8.86k|        uint8_t cu2 = *p++;
   83|  8.86k|        if (!(IsCont(cu1) && IsCont(cu2)) ||
  ------------------
  |  Branch (83:15): [True: 8.56k, False: 295]
  |  Branch (83:30): [True: 8.46k, False: 107]
  ------------------
   84|  8.86k|            (cu0 == 0xe0 && cu1 < 0xa0) ||  // Overlong encoding.
  ------------------
  |  Branch (84:14): [True: 3.60k, False: 4.85k]
  |  Branch (84:29): [True: 70, False: 3.53k]
  ------------------
   85|  8.86k|            (cu0 == 0xed && cu1 >= 0xa0))   // UTF-16 surrogate halves.
  ------------------
  |  Branch (85:14): [True: 312, False: 8.07k]
  |  Branch (85:29): [True: 87, False: 225]
  ------------------
   86|    559|          return false;
   87|  8.30k|        break;
   88|  8.86k|      }
   89|       |
   90|  36.6k|      case 4: {
  ------------------
  |  Branch (90:7): [True: 36.6k, False: 8.68M]
  ------------------
   91|  36.6k|        p++;
   92|  36.6k|        uint8_t cu1 = *p++;
   93|  36.6k|        uint8_t cu2 = *p++;
   94|  36.6k|        uint8_t cu3 = *p++;
   95|  36.6k|        if (!(IsCont(cu1) && IsCont(cu2) && IsCont(cu3)) ||
  ------------------
  |  Branch (95:15): [True: 35.8k, False: 845]
  |  Branch (95:30): [True: 33.3k, False: 2.41k]
  |  Branch (95:45): [True: 30.1k, False: 3.29k]
  ------------------
   96|  36.6k|            (cu0 == 0xf0 && cu1 < 0x90) ||  // Overlong encoding.
  ------------------
  |  Branch (96:14): [True: 11.7k, False: 18.3k]
  |  Branch (96:29): [True: 220, False: 11.5k]
  ------------------
   97|  36.6k|            (cu0 == 0xf4 && cu1 >= 0x90))   // Code point >= 0x11000.
  ------------------
  |  Branch (97:14): [True: 252, False: 29.6k]
  |  Branch (97:29): [True: 192, False: 60]
  ------------------
   98|  6.96k|          return false;
   99|  29.6k|        break;
  100|  36.6k|      }
  101|  8.71M|    }
  102|  8.71M|  }
  103|  1.32M|  return true;
  104|  1.34M|}
utf8.cc:_ZN4wabt12_GLOBAL__N_16IsContEh:
   48|   140k|bool IsCont(uint8_t c) {
   49|   140k|  return (c & 0xc0) == 0x80;
   50|   140k|}

LLVMFuzzerTestOneInput:
   18|  9.13k|extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
   19|  9.13k|  wabt::ObjdumpOptions objdump_options{};
   20|  9.13k|  wabt::ObjdumpState state;
   21|       |
   22|  9.13k|  objdump_options.debug = false;
   23|  9.13k|  objdump_options.filename = "dummy";
   24|  9.13k|  objdump_options.log_stream = nullptr;
   25|       |
   26|  9.13k|  objdump_options.mode = wabt::ObjdumpMode::Prepass;
   27|  9.13k|  wabt::ReadBinaryObjdump(data, size, &objdump_options, &state);
   28|       |
   29|  9.13k|  objdump_options.mode = wabt::ObjdumpMode::Headers;
   30|  9.13k|  wabt::ReadBinaryObjdump(data, size, &objdump_options, &state);
   31|       |
   32|  9.13k|  objdump_options.mode = wabt::ObjdumpMode::Details;
   33|  9.13k|  wabt::ReadBinaryObjdump(data, size, &objdump_options, &state);
   34|       |
   35|  9.13k|  objdump_options.mode = wabt::ObjdumpMode::Disassemble;
   36|  9.13k|  wabt::ReadBinaryObjdump(data, size, &objdump_options, &state);
   37|       |
   38|  9.13k|  objdump_options.mode = wabt::ObjdumpMode::RawData;
   39|  9.13k|  wabt::ReadBinaryObjdump(data, size, &objdump_options, &state);
   40|       |
   41|  9.13k|  return 0;
   42|  9.13k|}

