LLVMFuzzerTestOneInput:
   25|  14.3k|extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   26|  14.3k|  wabt::Errors errors;
   27|  14.3k|  wabt::Module module;
   28|  14.3k|  wabt::Features features;
   29|  14.3k|  FuzzedDataProvider data_provider(data, size);
   30|  14.3k|#define WABT_FEATURE(variable, flag, default_, help) \
   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
   32|  14.3k|#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|  14.3k|WABT_FEATURE(exceptions,          "exceptions",              false,   "Experimental exception handling")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 8.24k, False: 6.08k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   26|  14.3k|WABT_FEATURE(mutable_globals,     "mutable-globals",         true,    "Import/export mutable globals")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 6.98k, False: 7.33k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   27|  14.3k|WABT_FEATURE(sat_float_to_int,    "saturating-float-to-int", true,    "Saturating float-to-int operators")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 6.92k, False: 7.40k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   28|  14.3k|WABT_FEATURE(sign_extension,      "sign-extension",          true,    "Sign-extension operators")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 7.19k, False: 7.13k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   29|  14.3k|WABT_FEATURE(simd,                "simd",                    true,    "SIMD support")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 6.98k, False: 7.34k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   30|  14.3k|WABT_FEATURE(threads,             "threads",                 false,   "Threading support")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 7.55k, False: 6.77k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   31|  14.3k|WABT_FEATURE(function_references, "function-references",     false,   "Typed function references")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 6.99k, False: 7.33k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   32|  14.3k|WABT_FEATURE(multi_value,         "multi-value",             true,    "Multi-value")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 6.97k, False: 7.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   33|  14.3k|WABT_FEATURE(tail_call,           "tail-call",               false,   "Tail-call support")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 7.03k, False: 7.29k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   34|  14.3k|WABT_FEATURE(bulk_memory,         "bulk-memory",             true,    "Bulk-memory operations")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 6.81k, False: 7.51k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   35|  14.3k|WABT_FEATURE(reference_types,     "reference-types",         true,    "Reference types (externref)")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 6.97k, False: 7.35k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   36|  14.3k|WABT_FEATURE(annotations,         "annotations",             false,   "Custom annotation syntax")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 6.98k, False: 7.34k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   37|  14.3k|WABT_FEATURE(code_metadata,       "code-metadata",           false,   "Code metadata")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 7.18k, False: 7.14k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   38|  14.3k|WABT_FEATURE(gc,                  "gc",                      false,   "Garbage collection")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 7.08k, False: 7.24k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   39|  14.3k|WABT_FEATURE(memory64,            "memory64",                false,   "64-bit memory")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 6.86k, False: 7.46k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   40|  14.3k|WABT_FEATURE(multi_memory,        "multi-memory",            false,   "Multi-memory")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 7.38k, False: 6.94k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   41|  14.3k|WABT_FEATURE(extended_const,      "extended-const",          false,   "Extended constant expressions")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 6.65k, False: 7.67k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   42|  14.3k|WABT_FEATURE(relaxed_simd,        "relaxed-simd",            false,   "Relaxed SIMD")
  |  |  ------------------
  |  |  |  |   31|  14.3k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (31:7): [True: 6.41k, False: 7.90k]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   33|  14.3k|#undef WABT_FEATURE
   34|       |  // Add only feature related options, but no logging, stop_on_first_error, etc.
   35|  14.3k|  wabt::ReadBinaryOptions options(features, nullptr, false, false, false);
   36|  14.3k|  std::vector<uint8_t> text = data_provider.ConsumeRemainingBytes<uint8_t>();
   37|  14.3k|  ReadBinaryIr("", text.data(), text.size(), options, &errors, &module);
   38|  14.3k|  return 0;
   39|  14.3k|}

_ZN4wabt15BinaryReaderNop11BeginModuleEj:
   29|  14.1k|  Result BeginModule(uint32_t version) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop9EndModuleEv:
   30|  2.07k|  Result EndModule() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12BeginSectionEjNS_13BinarySectionEm:
   34|  2.65M|                      Offset size) override {
   35|  2.65M|    return Result::Ok;
   36|  2.65M|  }
_ZN4wabt15BinaryReaderNop18BeginCustomSectionEjmNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
   41|   507k|                            std::string_view section_name) override {
   42|   507k|    return Result::Ok;
   43|   507k|  }
_ZN4wabt15BinaryReaderNop16EndCustomSectionEv:
   44|   282k|  Result EndCustomSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginTypeSectionEm:
   47|  1.13k|  Result BeginTypeSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndTypeSectionEv:
   62|     78|  Result EndTypeSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginImportSectionEm:
   65|    568|  Result BeginImportSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop8OnImportEjNS_12ExternalKindENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_:
   70|  61.2k|                  std::string_view field_name) override {
   71|  61.2k|    return Result::Ok;
   72|  61.2k|  }
_ZN4wabt15BinaryReaderNop16EndImportSectionEv:
  110|     46|  Result EndImportSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop20BeginFunctionSectionEm:
  113|  1.34k|  Result BeginFunctionSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18EndFunctionSectionEv:
  118|  1.03k|  Result EndFunctionSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17BeginTableSectionEm:
  121|    358|  Result BeginTableSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15EndTableSectionEv:
  128|     90|  Result EndTableSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginMemorySectionEm:
  131|    573|  Result BeginMemorySection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16EndMemorySectionEv:
  136|    144|  Result EndMemorySection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginGlobalSectionEm:
  139|    992|  Result BeginGlobalSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop9EndGlobalEj:
  146|    795|  Result EndGlobal(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16EndGlobalSectionEv:
  147|     21|  Result EndGlobalSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginExportSectionEm:
  150|    637|  Result BeginExportSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16EndExportSectionEv:
  158|     64|  Result EndExportSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17BeginStartSectionEm:
  161|     61|  Result BeginStartSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15EndStartSectionEv:
  163|     43|  Result EndStartSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginCodeSectionEm:
  166|    680|  Result BeginCodeSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16OnLocalDeclCountEj:
  171|    819|  Result OnLocalDeclCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnOpcodeBareEv:
  179|  1.61M|  Result OnOpcodeBare() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnOpcodeUint32Ej:
  184|  54.0k|  Result OnOpcodeUint32(uint32_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnOpcodeIndexEj:
  180|  74.1k|  Result OnOpcodeIndex(Index value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop20OnOpcodeUint32Uint32Ejj:
  185|   139k|  Result OnOpcodeUint32Uint32(uint32_t value, uint32_t value2) override {
  186|   139k|    return Result::Ok;
  187|   139k|  }
_ZN4wabt15BinaryReaderNop26OnOpcodeUint32Uint32Uint32Ejjj:
  190|  27.5k|                                    uint32_t value3) override {
  191|  27.5k|    return Result::Ok;
  192|  27.5k|  }
_ZN4wabt15BinaryReaderNop32OnOpcodeUint32Uint32Uint32Uint32Ejjjj:
  196|  2.08k|                                          uint32_t value4) override {
  197|  2.08k|    return Result::Ok;
  198|  2.08k|  }
_ZN4wabt15BinaryReaderNop14OnOpcodeUint64Em:
  199|  25.1k|  Result OnOpcodeUint64(uint64_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnOpcodeF32Ej:
  200|  1.86k|  Result OnOpcodeF32(uint32_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnOpcodeF64Em:
  201|  1.45k|  Result OnOpcodeF64(uint64_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnOpcodeV128E4v128:
  202|  1.41k|  Result OnOpcodeV128(v128 value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16OnOpcodeBlockSigENS_4TypeE:
  203|   684k|  Result OnOpcodeBlockSig(Type sig_type) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnOpcodeTypeENS_4TypeE:
  204|  4.18k|  Result OnOpcodeType(Type type) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndCodeSectionEv:
  323|     14|  Result EndCodeSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginElemSectionEm:
  358|  3.93k|  Result BeginElemSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndElemSegmentEj:
  379|  2.45k|  Result EndElemSegment(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndElemSectionEv:
  380|     17|  Result EndElemSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginDataSectionEm:
  383|  3.05k|  Result BeginDataSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndDataSegmentEj:
  397|  1.25k|  Result EndDataSegment(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndDataSectionEv:
  398|     29|  Result EndDataSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop21BeginDataCountSectionEm:
  401|    149|  Result BeginDataCountSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnDataCountEj:
  402|    137|  Result OnDataCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19EndDataCountSectionEv:
  403|    137|  Result EndDataCountSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17BeginRelocSectionEm:
  457|  5.06k|  Result BeginRelocSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnRelocCountEjj:
  458|  4.28k|  Result OnRelocCount(Index count, Index section_code) override {
  459|  4.28k|    return Result::Ok;
  460|  4.28k|  }
_ZN4wabt15BinaryReaderNop7OnRelocENS_9RelocTypeEmjj:
  464|  16.6k|                 uint32_t addend) override {
  465|  16.6k|    return Result::Ok;
  466|  16.6k|  }
_ZN4wabt15BinaryReaderNop15EndRelocSectionEv:
  467|  1.24k|  Result EndRelocSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginDylinkSectionEm:
  491|  8.23k|  Result BeginDylinkSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnDylinkInfoEjjjj:
  495|    888|                      uint32_t table_align) override {
  496|    888|    return Result::Ok;
  497|    888|  }
_ZN4wabt15BinaryReaderNop19OnDylinkImportCountEj:
  502|  1.36k|  Result OnDylinkImportCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19OnDylinkExportCountEj:
  503|    708|  Result OnDylinkExportCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnDylinkImportENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEES5_j:
  506|    544|                        uint32_t flags) override {
  507|    544|    return Result::Ok;
  508|    544|  }
_ZN4wabt15BinaryReaderNop14OnDylinkExportENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEj:
  509|    401|  Result OnDylinkExport(std::string_view name, uint32_t flags) override {
  510|    401|    return Result::Ok;
  511|    401|  }
_ZN4wabt15BinaryReaderNop19OnDylinkNeededCountEj:
  498|  1.46k|  Result OnDylinkNeededCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnDylinkNeededENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  499|  1.54k|  Result OnDylinkNeeded(std::string_view so_name) override {
  500|  1.54k|    return Result::Ok;
  501|  1.54k|  }
_ZN4wabt15BinaryReaderNop16EndDylinkSectionEv:
  512|    507|  Result EndDylinkSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop26BeginTargetFeaturesSectionEm:
  515|  37.6k|  Result BeginTargetFeaturesSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnFeatureCountEj:
  516|  37.4k|  Result OnFeatureCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop9OnFeatureEhNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  517|   289k|  Result OnFeature(uint8_t prefix, std::string_view name) override {
  518|   289k|    return Result::Ok;
  519|   289k|  }
_ZN4wabt15BinaryReaderNop24EndTargetFeaturesSectionEv:
  520|  6.08k|  Result EndTargetFeaturesSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop25BeginGenericCustomSectionEm:
  523|   507k|  Result BeginGenericCustomSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop23EndGenericCustomSectionEv:
  529|   507k|  Result EndGenericCustomSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19BeginLinkingSectionEm:
  532|  37.4k|  Result BeginLinkingSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnSymbolCountEj:
  533|  29.6k|  Result OnSymbolCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18OnSegmentInfoCountEj:
  571|  14.3k|  Result OnSegmentInfoCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnSegmentInfoEjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEmj:
  575|  1.37k|                       uint32_t flags) override {
  576|  1.37k|    return Result::Ok;
  577|  1.37k|  }
_ZN4wabt15BinaryReaderNop19OnInitFunctionCountEj:
  578|    974|  Result OnInitFunctionCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnInitFunctionEjj:
  579|    607|  Result OnInitFunction(uint32_t priority, Index symbol_index) override {
  580|    607|    return Result::Ok;
  581|    607|  }
_ZN4wabt15BinaryReaderNop13OnComdatCountEj:
  582|  2.51k|  Result OnComdatCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnComdatBeginENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEjj:
  585|  2.41k|                       Index count) override {
  586|  2.41k|    return Result::Ok;
  587|  2.41k|  }
_ZN4wabt15BinaryReaderNop13OnComdatEntryENS_10ComdatTypeEj:
  588|  1.34k|  Result OnComdatEntry(ComdatType kind, Index index) override {
  589|  1.34k|    return Result::Ok;
  590|  1.34k|  }
_ZN4wabt15BinaryReaderNop17EndLinkingSectionEv:
  591|    781|  Result EndLinkingSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop22EndCodeMetadataSectionEv:
  488|  43.8k|  Result EndCodeMetadataSection() override { return Result::Ok; }

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

_ZN4wabt7BindingC2Ej:
   33|  57.9k|  explicit Binding(Index index) : index(index) {}
_ZN4wabt7BindingC2ERKNS_8LocationEj:
   34|  21.0k|  Binding(const Location& loc, Index index) : loc(loc), index(index) {}

_ZN4wabt4castINS_7TryExprENS_4ExprEEEPT_PT0_:
   77|  30.7k|Derived* cast(Base* base) {
   78|  30.7k|  assert(isa<Derived>(base));
   79|  30.7k|  return static_cast<Derived*>(base);
   80|  30.7k|};
_ZN4wabt3isaINS_7TryExprENS_4ExprEEEbPKT0_:
   65|  30.7k|bool isa(const Base* base) {
   66|  30.7k|  WABT_STATIC_ASSERT((std::is_base_of<Base, Derived>::value));
  ------------------
  |  |   89|  30.7k|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
   67|  30.7k|  return Derived::classof(base);
   68|  30.7k|}
_ZN4wabt4castINS_6IfExprENS_4ExprEEEPT_PT0_:
   77|  14.1k|Derived* cast(Base* base) {
   78|  14.1k|  assert(isa<Derived>(base));
   79|  14.1k|  return static_cast<Derived*>(base);
   80|  14.1k|};
_ZN4wabt3isaINS_6IfExprENS_4ExprEEEbPKT0_:
   65|  14.1k|bool isa(const Base* base) {
   66|  14.1k|  WABT_STATIC_ASSERT((std::is_base_of<Base, Derived>::value));
  ------------------
  |  |   89|  14.1k|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
   67|  14.1k|  return Derived::classof(base);
   68|  14.1k|}
_ZN4wabt4castINS_13BlockExprBaseILNS_8ExprTypeE8EEENS_4ExprEEEPT_PT0_:
   77|  4.67k|Derived* cast(Base* base) {
   78|  4.67k|  assert(isa<Derived>(base));
   79|  4.67k|  return static_cast<Derived*>(base);
   80|  4.67k|};
_ZN4wabt3isaINS_13BlockExprBaseILNS_8ExprTypeE8EEENS_4ExprEEEbPKT0_:
   65|  4.67k|bool isa(const Base* base) {
   66|  4.67k|  WABT_STATIC_ASSERT((std::is_base_of<Base, Derived>::value));
  ------------------
  |  |   89|  4.67k|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
   67|  4.67k|  return Derived::classof(base);
   68|  4.67k|}
_ZN4wabt4castINS_13BlockExprBaseILNS_8ExprTypeE27EEENS_4ExprEEEPT_PT0_:
   77|  6.31k|Derived* cast(Base* base) {
   78|  6.31k|  assert(isa<Derived>(base));
   79|  6.31k|  return static_cast<Derived*>(base);
   80|  6.31k|};
_ZN4wabt3isaINS_13BlockExprBaseILNS_8ExprTypeE27EEENS_4ExprEEEbPKT0_:
   65|  6.31k|bool isa(const Base* base) {
   66|  6.31k|  WABT_STATIC_ASSERT((std::is_base_of<Base, Derived>::value));
  ------------------
  |  |   89|  6.31k|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
   67|  6.31k|  return Derived::classof(base);
   68|  6.31k|}
_ZN4wabt8dyn_castINS_8FuncTypeENS_9TypeEntryEEEPT_PT0_:
   88|  53.6k|Derived* dyn_cast(Base* base) {
   89|  53.6k|  return isa<Derived>(base) ? static_cast<Derived*>(base) : nullptr;
  ------------------
  |  Branch (89:10): [True: 53.3k, False: 330]
  ------------------
   90|  53.6k|};
_ZN4wabt3isaINS_8FuncTypeENS_9TypeEntryEEEbPKT0_:
   65|  53.6k|bool isa(const Base* base) {
   66|  53.6k|  WABT_STATIC_ASSERT((std::is_base_of<Base, Derived>::value));
  ------------------
  |  |   89|  53.6k|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
   67|  53.6k|  return Derived::classof(base);
   68|  53.6k|}
_ZN4wabt4castINS_10FuncImportENS_6ImportEEEPT_PT0_:
   77|  58.8k|Derived* cast(Base* base) {
   78|  58.8k|  assert(isa<Derived>(base));
   79|  58.8k|  return static_cast<Derived*>(base);
   80|  58.8k|};
_ZN4wabt3isaINS_10FuncImportENS_6ImportEEEbPKT0_:
   65|  58.8k|bool isa(const Base* base) {
   66|  58.8k|  WABT_STATIC_ASSERT((std::is_base_of<Base, Derived>::value));
  ------------------
  |  |   89|  58.8k|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
   67|  58.8k|  return Derived::classof(base);
   68|  58.8k|}
_ZN4wabt4castINS_11TableImportENS_6ImportEEEPT_PT0_:
   77|    597|Derived* cast(Base* base) {
   78|    597|  assert(isa<Derived>(base));
   79|    597|  return static_cast<Derived*>(base);
   80|    597|};
_ZN4wabt3isaINS_11TableImportENS_6ImportEEEbPKT0_:
   65|    597|bool isa(const Base* base) {
   66|    597|  WABT_STATIC_ASSERT((std::is_base_of<Base, Derived>::value));
  ------------------
  |  |   89|    597|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
   67|    597|  return Derived::classof(base);
   68|    597|}
_ZN4wabt4castINS_12MemoryImportENS_6ImportEEEPT_PT0_:
   77|    712|Derived* cast(Base* base) {
   78|    712|  assert(isa<Derived>(base));
   79|    712|  return static_cast<Derived*>(base);
   80|    712|};
_ZN4wabt3isaINS_12MemoryImportENS_6ImportEEEbPKT0_:
   65|    712|bool isa(const Base* base) {
   66|    712|  WABT_STATIC_ASSERT((std::is_base_of<Base, Derived>::value));
  ------------------
  |  |   89|    712|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
   67|    712|  return Derived::classof(base);
   68|    712|}
_ZN4wabt4castINS_12GlobalImportENS_6ImportEEEPT_PT0_:
   77|    688|Derived* cast(Base* base) {
   78|    688|  assert(isa<Derived>(base));
   79|    688|  return static_cast<Derived*>(base);
   80|    688|};
_ZN4wabt3isaINS_12GlobalImportENS_6ImportEEEbPKT0_:
   65|    688|bool isa(const Base* base) {
   66|    688|  WABT_STATIC_ASSERT((std::is_base_of<Base, Derived>::value));
  ------------------
  |  |   89|    688|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
   67|    688|  return Derived::classof(base);
   68|    688|}
_ZN4wabt4castINS_9TagImportENS_6ImportEEEPT_PT0_:
   77|    326|Derived* cast(Base* base) {
   78|    326|  assert(isa<Derived>(base));
   79|    326|  return static_cast<Derived*>(base);
   80|    326|};
_ZN4wabt3isaINS_9TagImportENS_6ImportEEEbPKT0_:
   65|    326|bool isa(const Base* base) {
   66|    326|  WABT_STATIC_ASSERT((std::is_base_of<Base, Derived>::value));
  ------------------
  |  |   89|    326|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
   67|    326|  return Derived::classof(base);
   68|    326|}

_ZN4wabt8LocationC2Ev:
  206|  13.2M|  Location() : line(0), first_column(0), last_column(0) {}
_ZN4wabt17MemcpyEndianAwareEPvPKvmmmmm:
   91|  36.5k|                              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|  36.5k|  memcpy(static_cast<char*>(dst) + (doff),
   97|  36.5k|         static_cast<const char*>(src) + (soff), (len));
   98|  36.5k|#endif
   99|  36.5k|}
_ZN4wabt8LocationC2Em:
  215|  2.70M|  explicit Location(size_t offset) : offset(offset) {}
_ZN4v1284FromIjEEviT_:
  147|  19.9k|  void From(int lane, T data) {
  148|  19.9k|    static_assert(sizeof(T) <= sizeof(v), "Invalid cast!");
  149|  19.9k|    assert((lane + 1) * sizeof(T) <= sizeof(v));
  150|  19.9k|    wabt::MemcpyEndianAware(v, &data, sizeof(v), sizeof(data), lane * sizeof(T),
  151|  19.9k|                            0, sizeof(data));
  152|  19.9k|  }
_ZN4v1284FromImEEviT_:
  147|  15.9k|  void From(int lane, T data) {
  148|  15.9k|    static_assert(sizeof(T) <= sizeof(v), "Invalid cast!");
  149|  15.9k|    assert((lane + 1) * sizeof(T) <= sizeof(v));
  150|  15.9k|    wabt::MemcpyEndianAware(v, &data, sizeof(v), sizeof(data), lane * sizeof(T),
  151|  15.9k|                            0, sizeof(data));
  152|  15.9k|  }
_ZN4v1284FromIS_EEviT_:
  147|    689|  void From(int lane, T data) {
  148|    689|    static_assert(sizeof(T) <= sizeof(v), "Invalid cast!");
  149|    689|    assert((lane + 1) * sizeof(T) <= sizeof(v));
  150|    689|    wabt::MemcpyEndianAware(v, &data, sizeof(v), sizeof(data), lane * sizeof(T),
  151|    689|                            0, sizeof(data));
  152|    689|  }
_ZN4wabt6LimitsC2Ev:
  364|  9.25k|  Limits() = default;
binary-reader.cc:_ZN4wabtL16GetRelocTypeNameENS_9RelocTypeE:
  405|    395|static inline const char* GetRelocTypeName(RelocType reloc) {
  406|    395|  return static_cast<size_t>(reloc) < kRelocTypeCount
  ------------------
  |  Branch (406:10): [True: 0, False: 395]
  ------------------
  407|    395|             ? g_reloc_type_name[static_cast<size_t>(reloc)]
  408|    395|             : "<error_reloc_type>";
  409|    395|}
_ZN4wabt10ZeroMemoryI4v128EEvRT_:
  168|    703|void ZeroMemory(T& v) {
  169|    703|  WABT_STATIC_ASSERT(std::is_trivial<T>::value);
  ------------------
  |  |   89|    703|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
  170|    703|  memset(&v, 0, sizeof(v));
  171|    703|}

_ZN4wabt5ErrorC2ENS_10ErrorLevelENS_8LocationENSt3__117basic_string_viewIcNS3_11char_traitsIcEEEE:
   47|  2.70M|      : error_level(error_level), loc(loc), message(message) {}

_ZN4wabt8Features17enable_exceptionsEv:
   38|  8.24k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features22set_exceptions_enabledEb:
   40|  8.24k|  void set_##variable##_enabled(bool value) {                     \
   41|  8.24k|    variable##_enabled_ = value;                                  \
   42|  8.24k|    UpdateDependencies();                                         \
   43|  8.24k|  }
_ZN4wabt8Features22enable_mutable_globalsEv:
   38|  6.98k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features27set_mutable_globals_enabledEb:
   40|  6.98k|  void set_##variable##_enabled(bool value) {                     \
   41|  6.98k|    variable##_enabled_ = value;                                  \
   42|  6.98k|    UpdateDependencies();                                         \
   43|  6.98k|  }
_ZN4wabt8Features23enable_sat_float_to_intEv:
   38|  6.92k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features28set_sat_float_to_int_enabledEb:
   40|  6.92k|  void set_##variable##_enabled(bool value) {                     \
   41|  6.92k|    variable##_enabled_ = value;                                  \
   42|  6.92k|    UpdateDependencies();                                         \
   43|  6.92k|  }
_ZN4wabt8Features21enable_sign_extensionEv:
   38|  7.19k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features26set_sign_extension_enabledEb:
   40|  7.19k|  void set_##variable##_enabled(bool value) {                     \
   41|  7.19k|    variable##_enabled_ = value;                                  \
   42|  7.19k|    UpdateDependencies();                                         \
   43|  7.19k|  }
_ZN4wabt8Features11enable_simdEv:
   38|  6.98k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features16set_simd_enabledEb:
   40|  6.98k|  void set_##variable##_enabled(bool value) {                     \
   41|  6.98k|    variable##_enabled_ = value;                                  \
   42|  6.98k|    UpdateDependencies();                                         \
   43|  6.98k|  }
_ZN4wabt8Features14enable_threadsEv:
   38|  7.55k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features19set_threads_enabledEb:
   40|  7.55k|  void set_##variable##_enabled(bool value) {                     \
   41|  7.55k|    variable##_enabled_ = value;                                  \
   42|  7.55k|    UpdateDependencies();                                         \
   43|  7.55k|  }
_ZN4wabt8Features26enable_function_referencesEv:
   38|  6.99k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features31set_function_references_enabledEb:
   40|  6.99k|  void set_##variable##_enabled(bool value) {                     \
   41|  6.99k|    variable##_enabled_ = value;                                  \
   42|  6.99k|    UpdateDependencies();                                         \
   43|  6.99k|  }
_ZN4wabt8Features18enable_multi_valueEv:
   38|  6.97k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features23set_multi_value_enabledEb:
   40|  6.97k|  void set_##variable##_enabled(bool value) {                     \
   41|  6.97k|    variable##_enabled_ = value;                                  \
   42|  6.97k|    UpdateDependencies();                                         \
   43|  6.97k|  }
_ZN4wabt8Features16enable_tail_callEv:
   38|  7.03k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features21set_tail_call_enabledEb:
   40|  7.03k|  void set_##variable##_enabled(bool value) {                     \
   41|  7.03k|    variable##_enabled_ = value;                                  \
   42|  7.03k|    UpdateDependencies();                                         \
   43|  7.03k|  }
_ZN4wabt8Features18enable_bulk_memoryEv:
   38|  6.81k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features23set_bulk_memory_enabledEb:
   40|  6.81k|  void set_##variable##_enabled(bool value) {                     \
   41|  6.81k|    variable##_enabled_ = value;                                  \
   42|  6.81k|    UpdateDependencies();                                         \
   43|  6.81k|  }
_ZN4wabt8Features22enable_reference_typesEv:
   38|  6.97k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features27set_reference_types_enabledEb:
   40|  6.97k|  void set_##variable##_enabled(bool value) {                     \
   41|  6.97k|    variable##_enabled_ = value;                                  \
   42|  6.97k|    UpdateDependencies();                                         \
   43|  6.97k|  }
_ZN4wabt8Features18enable_annotationsEv:
   38|  6.98k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features23set_annotations_enabledEb:
   40|  6.98k|  void set_##variable##_enabled(bool value) {                     \
   41|  6.98k|    variable##_enabled_ = value;                                  \
   42|  6.98k|    UpdateDependencies();                                         \
   43|  6.98k|  }
_ZN4wabt8Features20enable_code_metadataEv:
   38|  7.18k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features25set_code_metadata_enabledEb:
   40|  7.18k|  void set_##variable##_enabled(bool value) {                     \
   41|  7.18k|    variable##_enabled_ = value;                                  \
   42|  7.18k|    UpdateDependencies();                                         \
   43|  7.18k|  }
_ZN4wabt8Features9enable_gcEv:
   38|  7.08k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features14set_gc_enabledEb:
   40|  7.08k|  void set_##variable##_enabled(bool value) {                     \
   41|  7.08k|    variable##_enabled_ = value;                                  \
   42|  7.08k|    UpdateDependencies();                                         \
   43|  7.08k|  }
_ZN4wabt8Features15enable_memory64Ev:
   38|  6.86k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features20set_memory64_enabledEb:
   40|  6.86k|  void set_##variable##_enabled(bool value) {                     \
   41|  6.86k|    variable##_enabled_ = value;                                  \
   42|  6.86k|    UpdateDependencies();                                         \
   43|  6.86k|  }
_ZN4wabt8Features19enable_multi_memoryEv:
   38|  7.38k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features24set_multi_memory_enabledEb:
   40|  7.38k|  void set_##variable##_enabled(bool value) {                     \
   41|  7.38k|    variable##_enabled_ = value;                                  \
   42|  7.38k|    UpdateDependencies();                                         \
   43|  7.38k|  }
_ZN4wabt8Features21enable_extended_constEv:
   38|  6.65k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features26set_extended_const_enabledEb:
   40|  6.65k|  void set_##variable##_enabled(bool value) {                     \
   41|  6.65k|    variable##_enabled_ = value;                                  \
   42|  6.65k|    UpdateDependencies();                                         \
   43|  6.65k|  }
_ZN4wabt8Features19enable_relaxed_simdEv:
   38|  6.41k|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features24set_relaxed_simd_enabledEb:
   40|  6.41k|  void set_##variable##_enabled(bool value) {                     \
   41|  6.41k|    variable##_enabled_ = value;                                  \
   42|  6.41k|    UpdateDependencies();                                         \
   43|  6.41k|  }
_ZNK4wabt8Features18exceptions_enabledEv:
   37|   459k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features24sat_float_to_int_enabledEv:
   37|  8.41k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features22sign_extension_enabledEv:
   37|  17.1k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features12simd_enabledEv:
   37|   170k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features15threads_enabledEv:
   37|  60.2k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features27function_references_enabledEv:
   37|  7.74k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features19multi_value_enabledEv:
   37|   673k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features17tail_call_enabledEv:
   37|  5.10k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features19bulk_memory_enabledEv:
   37|  5.31k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features23reference_types_enabledEv:
   37|  28.4k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features21code_metadata_enabledEv:
   37|   419k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features10gc_enabledEv:
   37|  2.35k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features16memory64_enabledEv:
   37|   165k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features20multi_memory_enabledEv:
   37|   123k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features20relaxed_simd_enabledEv:
   37|  13.7k|  bool variable##_enabled() const { return variable##_enabled_; } \

_ZN4wabt14intrusive_listINS_11ModuleFieldEEC2Ev:
  267|  14.3k|inline intrusive_list<T>::intrusive_list() {}
_ZN4wabt14intrusive_listINS_11ModuleFieldEED2Ev:
  287|  14.3k|inline intrusive_list<T>::~intrusive_list() {
  288|  14.3k|  clear();
  289|  14.3k|}
_ZN4wabt14intrusive_listINS_11ModuleFieldEE5clearEv:
  593|  14.3k|inline void intrusive_list<T>::clear() noexcept {
  594|   152k|  for (T* iter = first_; iter;) {
  ------------------
  |  Branch (594:26): [True: 137k, False: 14.3k]
  ------------------
  595|   137k|    T* next = iter->next_;
  596|   137k|    delete iter;
  597|   137k|    iter = next;
  598|   137k|  }
  599|  14.3k|  first_ = last_ = nullptr;
  600|  14.3k|  size_ = 0;
  601|  14.3k|}
_ZN4wabt14intrusive_listINS_4ExprEE5clearEv:
  593|  1.02M|inline void intrusive_list<T>::clear() noexcept {
  594|  3.65M|  for (T* iter = first_; iter;) {
  ------------------
  |  Branch (594:26): [True: 2.62M, False: 1.02M]
  ------------------
  595|  2.62M|    T* next = iter->next_;
  596|  2.62M|    delete iter;
  597|  2.62M|    iter = next;
  598|  2.62M|  }
  599|  1.02M|  first_ = last_ = nullptr;
  600|  1.02M|  size_ = 0;
  601|  1.02M|}
_ZN4wabt14intrusive_listINS_4ExprEEC2Ev:
  267|  1.01M|inline intrusive_list<T>::intrusive_list() {}
_ZN4wabt14intrusive_listINS_4ExprEED2Ev:
  287|  1.02M|inline intrusive_list<T>::~intrusive_list() {
  288|  1.02M|  clear();
  289|  1.02M|}
_ZN4wabt14intrusive_listINS_4ExprEE9push_backENSt3__110unique_ptrIS1_NS3_14default_deleteIS1_EEEE:
  444|  2.62M|inline void intrusive_list<T>::push_back(std::unique_ptr<T> node) {
  445|  2.62M|  assert(node->prev_ == nullptr && node->next_ == nullptr);
  446|       |
  447|  2.62M|  T* node_p = node.release();
  448|  2.62M|  if (last_) {
  ------------------
  |  Branch (448:7): [True: 1.93M, False: 695k]
  ------------------
  449|  1.93M|    node_p->prev_ = last_;
  450|  1.93M|    last_->next_ = node_p;
  451|  1.93M|  } else {
  452|   695k|    first_ = node_p;
  453|   695k|  }
  454|  2.62M|  last_ = node_p;
  455|  2.62M|  size_++;
  456|  2.62M|}
_ZN4wabt14intrusive_listINS_4ExprEEC2EOS2_:
  281|  9.77k|    : first_(other.first_), last_(other.last_), size_(other.size_) {
  282|  9.77k|  other.first_ = other.last_ = nullptr;
  283|  9.77k|  other.size_ = 0;
  284|  9.77k|}
_ZNK4wabt14intrusive_listINS_4ExprEE5emptyEv:
  381|  98.1k|inline bool intrusive_list<T>::empty() const noexcept {
  382|  98.1k|  return size_ == 0;
  383|  98.1k|}
_ZN4wabt14intrusive_listINS_4ExprEE4backEv:
  399|  49.0k|inline typename intrusive_list<T>::reference intrusive_list<T>::back() {
  400|  49.0k|  assert(!empty());
  401|  49.0k|  return *last_;
  402|  49.0k|}
_ZN4wabt14intrusive_listINS_11ModuleFieldEE9push_backENSt3__110unique_ptrIS1_NS3_14default_deleteIS1_EEEE:
  444|   137k|inline void intrusive_list<T>::push_back(std::unique_ptr<T> node) {
  445|   137k|  assert(node->prev_ == nullptr && node->next_ == nullptr);
  446|       |
  447|   137k|  T* node_p = node.release();
  448|   137k|  if (last_) {
  ------------------
  |  Branch (448:7): [True: 128k, False: 9.56k]
  ------------------
  449|   128k|    node_p->prev_ = last_;
  450|   128k|    last_->next_ = node_p;
  451|   128k|  } else {
  452|  9.56k|    first_ = node_p;
  453|  9.56k|  }
  454|   137k|  last_ = node_p;
  455|   137k|  size_++;
  456|   137k|}

_ZNK4wabt3Var8is_indexEv:
   54|  2.46M|  bool is_index() const { return type_ == VarType::Index; }
_ZNK4wabt3Var7is_nameEv:
   55|  5.90M|  bool is_name() const { return type_ == VarType::Name; }
_ZNK4wabt3Var5indexEv:
   57|   785k|  Index index() const {
   58|   785k|    assert(is_index());
   59|   785k|    return index_;
   60|   785k|  }
_ZN4wabt5Const3I32EjRKNS_8LocationE:
   88|  18.0k|  static Const I32(uint32_t val = 0, const Location& loc = Location()) {
   89|  18.0k|    return Const(Type::I32, val, loc);
   90|  18.0k|  }
_ZN4wabt5Const3I64EmRKNS_8LocationE:
   91|  14.4k|  static Const I64(uint64_t val = 0, const Location& loc = Location()) {
   92|  14.4k|    return Const(Type::I64, val, loc);
   93|  14.4k|  }
_ZN4wabt5Const3F32EjRKNS_8LocationE:
   94|  1.86k|  static Const F32(uint32_t val = 0, const Location& loc = Location()) {
   95|  1.86k|    return Const(Type::F32, val, loc);
   96|  1.86k|  }
_ZN4wabt5Const3F64EmRKNS_8LocationE:
   97|  1.45k|  static Const F64(uint64_t val = 0, const Location& loc = Location()) {
   98|  1.45k|    return Const(Type::F64, val, loc);
   99|  1.45k|  }
_ZN4wabt5Const4V128E4v128RKNS_8LocationE:
  100|    689|  static Const V128(v128 val, const Location& loc = Location()) {
  101|    689|    return Const(Type::V128, val, loc);
  102|    689|  }
_ZN4wabt5Const16set_expected_nanEiNS_11ExpectedNanE:
  167|  36.5k|  void set_expected_nan(int lane, ExpectedNan nan) {
  168|  36.5k|    if (lane < 4) {
  ------------------
  |  Branch (168:9): [True: 36.5k, False: 0]
  ------------------
  169|  36.5k|      nan_[lane] = nan;
  170|  36.5k|    }
  171|  36.5k|  }
_ZNK4wabt9TypeEntry4kindEv:
  284|  53.6k|  TypeEntryKind kind() const { return kind_; }
_ZN4wabt9TypeEntryC2ENS_13TypeEntryKindENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEERKNS_8LocationE:
  293|  1.11k|      : loc(loc), name(name), kind_(kind) {}
_ZN4wabt8FuncType7classofEPKNS_9TypeEntryE:
  300|  53.6k|  static bool classof(const TypeEntry* entry) {
  301|  53.6k|    return entry->kind() == TypeEntryKind::Func;
  302|  53.6k|  }
_ZN4wabt8FuncTypeC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  305|    925|      : TypeEntry(TypeEntryKind::Func, name) {}
_ZN4wabt10StructTypeC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  335|    145|      : TypeEntry(TypeEntryKind::Struct) {}
_ZN4wabt9ArrayTypeC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  347|     41|      : TypeEntry(TypeEntryKind::Array) {}
_ZN4wabt5CatchC2ERKNS_8LocationE:
  450|  1.16k|  explicit Catch(const Location& loc = Location()) : loc(loc) {}
_ZN4wabt5CatchC2ERKNS_3VarERKNS_8LocationE:
  452|  4.57k|      : loc(loc), var(var) {}
_ZNK4wabt5Catch10IsCatchAllEv:
  456|  5.84k|  bool IsCatchAll() const {
  457|  5.84k|    return var.is_index() && var.index() == kInvalidIndex;
  ------------------
  |  Branch (457:12): [True: 5.84k, False: 0]
  |  Branch (457:30): [True: 1.15k, False: 4.69k]
  ------------------
  458|  5.84k|  }
_ZNK4wabt4Expr4typeEv:
  470|  55.9k|  ExprType type() const { return type_; }
_ZN4wabt4ExprC2ENS_8ExprTypeERKNS_8LocationE:
  476|  2.63M|      : loc(loc), type_(type) {}
_ZN4wabt14SimdLaneOpExprC2ENS_6OpcodeEmRKNS_8LocationE:
  555|  10.6k|      : ExprMixin<ExprType::SimdLaneOp>(loc), opcode(opcode), val(val) {}
_ZN4wabt16SimdLoadLaneExprC2ENS_6OpcodeENS_3VarEmmmRKNS_8LocationE:
  573|  2.45k|        val(val) {}
_ZN4wabt17SimdStoreLaneExprC2ENS_6OpcodeENS_3VarEmmmRKNS_8LocationE:
  593|  2.18k|        val(val) {}
_ZN4wabt17SimdShuffleOpExprC2ENS_6OpcodeE4v128RKNS_8LocationE:
  604|    721|      : ExprMixin<ExprType::SimdShuffleOp>(loc), opcode(opcode), val(val) {}
_ZN4wabt10SelectExprC2ENSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEERKNS_8LocationE:
  654|  11.8k|      : ExprMixin<ExprType::Select>(loc), result_type(type) {}
_ZN4wabt13TableInitExprC2ERKNS_3VarES3_RKNS_8LocationE:
  665|    310|        table_index(table_index) {}
_ZN4wabt13TableCopyExprC2ERKNS_3VarES3_RKNS_8LocationE:
  676|    879|      : ExprMixin<ExprType::TableCopy>(loc), dst_table(dst), src_table(src) {}
_ZN4wabt16CallIndirectExprC2ERKNS_8LocationE:
  685|  3.10k|      : ExprMixin<ExprType::CallIndirect>(loc) {}
_ZN4wabt16CodeMetadataExprC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEENS1_6vectorIhNS1_9allocatorIhEEEERKNS_8LocationE:
  698|  4.64k|        data(std::move(data)) {}
_ZN4wabt22ReturnCallIndirectExprC2ERKNS_8LocationE:
  707|  2.68k|      : ExprMixin<ExprType::ReturnCallIndirect>(loc) {}
_ZN4wabt11CallRefExprC2ERKNS_8LocationE:
  716|  5.36k|      : ExprMixin<ExprType::CallRef>(loc) {}
_ZN4wabt6IfExprC2ERKNS_8LocationE:
  738|   213k|      : ExprMixin<ExprType::If>(loc) {}
_ZN4wabt7TryExprC2ERKNS_8LocationE:
  748|   427k|      : ExprMixin<ExprType::Try>(loc), kind(TryKind::Plain) {}
_ZN4wabt11BrTableExprC2ERKNS_8LocationE:
  759|  6.32k|      : ExprMixin<ExprType::BrTable>(loc) {}
_ZN4wabt9ConstExprC2ERKNS_5ConstERKNS_8LocationE:
  768|  36.5k|      : ExprMixin<ExprType::Const>(loc), const_(c) {}
_ZN4wabt15AtomicFenceExprC2EjRKNS_8LocationE:
  809|    455|        consistency_model(consistency_model) {}
_ZN4wabt3TagC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  815|  3.90k|  explicit Tag(std::string_view name) : name(name) {}
_ZN4wabt10LocalTypes10AppendDeclENS_4TypeEj:
  841|  1.46k|  void AppendDecl(Type type, Index count) {
  842|  1.46k|    if (count != 0) {
  ------------------
  |  Branch (842:9): [True: 1.35k, False: 104]
  ------------------
  843|  1.35k|      decls_.emplace_back(type, count);
  844|  1.35k|    }
  845|  1.46k|  }
_ZN4wabt4FuncC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  883|  94.6k|  explicit Func(std::string_view name) : name(name) {}
_ZNK4wabt4Func12GetNumLocalsEv:
  890|  1.46k|  Index GetNumLocals() const { return local_types.size(); }
_ZN4wabt6GlobalC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  913|  2.22k|  explicit Global(std::string_view name) : name(name) {}
_ZN4wabt5TableC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  923|    822|      : name(name), elem_type(Type::FuncRef) {}
_ZN4wabt11ElemSegmentC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  933|  6.22k|  explicit ElemSegment(std::string_view name) : name(name) {}
_ZN4wabt6MemoryC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  945|  3.54k|  explicit Memory(std::string_view name) : name(name) {}
_ZN4wabt11DataSegmentC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  952|  4.09k|  explicit DataSegment(std::string_view name) : name(name) {}
_ZNK4wabt6Import4kindEv:
  968|   122k|  ExternalKind kind() const { return kind_; }
_ZN4wabt6ImportC2ENS_12ExternalKindE:
  974|  61.1k|  Import(ExternalKind kind) : kind_(kind) {}
_ZN4wabt10FuncImportC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  992|  58.8k|      : ImportMixin<ExternalKind::Func>(), func(name) {}
_ZN4wabt11TableImportC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
 1000|    597|      : ImportMixin<ExternalKind::Table>(), table(name) {}
_ZN4wabt12MemoryImportC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
 1008|    712|      : ImportMixin<ExternalKind::Memory>(), memory(name) {}
_ZN4wabt12GlobalImportC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
 1016|    688|      : ImportMixin<ExternalKind::Global>(), global(name) {}
_ZN4wabt9TagImportC2ENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
 1024|    326|      : ImportMixin<ExternalKind::Tag>(), tag(name) {}
_ZN4wabt11ModuleFieldC2ENS_15ModuleFieldTypeERKNS_8LocationE:
 1061|   137k|      : loc(loc), type_(type) {}
_ZN4wabt15FuncModuleFieldC2ERKNS_8LocationENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEE:
 1082|  35.7k|      : ModuleFieldMixin<ModuleFieldType::Func>(loc), func(name) {}
_ZN4wabt17GlobalModuleFieldC2ERKNS_8LocationENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEE:
 1091|  1.53k|      : ModuleFieldMixin<ModuleFieldType::Global>(loc), global(name) {}
_ZN4wabt17ImportModuleFieldC2ENSt3__110unique_ptrINS_6ImportENS1_14default_deleteIS3_EEEERKNS_8LocationE:
 1103|  61.1k|        import(std::move(import)) {}
_ZN4wabt17ExportModuleFieldC2ERKNS_8LocationE:
 1111|  21.0k|      : ModuleFieldMixin<ModuleFieldType::Export>(loc) {}
_ZN4wabt15TypeModuleFieldC2ERKNS_8LocationE:
 1119|  1.11k|      : ModuleFieldMixin<ModuleFieldType::Type>(loc) {}
_ZN4wabt16TableModuleFieldC2ERKNS_8LocationENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEE:
 1128|    225|      : ModuleFieldMixin<ModuleFieldType::Table>(loc), table(name) {}
_ZN4wabt22ElemSegmentModuleFieldC2ERKNS_8LocationENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEE:
 1139|  6.22k|        elem_segment(name) {}
_ZN4wabt17MemoryModuleFieldC2ERKNS_8LocationENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEE:
 1148|  2.83k|      : ModuleFieldMixin<ModuleFieldType::Memory>(loc), memory(name) {}
_ZN4wabt22DataSegmentModuleFieldC2ERKNS_8LocationENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEE:
 1159|  4.09k|        data_segment(name) {}
_ZN4wabt14TagModuleFieldC2ERKNS_8LocationENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEE:
 1168|  3.57k|      : ModuleFieldMixin<ModuleFieldType::Tag>(loc), tag(name) {}
_ZN4wabt16StartModuleFieldC2ENS_3VarERKNS_8LocationE:
 1176|     43|      : ModuleFieldMixin<ModuleFieldType::Start>(loc), start(start) {}
_ZN4wabt6CustomC2ERKNS_8LocationENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEENS4_6vectorIhNS4_9allocatorIhEEEE:
 1185|   507k|      : name(name), data(data), loc(loc) {}
_ZN4wabt5Const4FromI4v128EEvNS_4TypeET_i:
  190|    689|  void From(Type type, T data, int lane = 0) {
  191|    689|    static_assert(sizeof(T) <= sizeof(data_), "Invalid cast!");
  192|    689|    assert((lane + 1) * sizeof(T) <= sizeof(data_));
  193|    689|    type_ = type;
  194|    689|    data_.From<T>(lane, data);
  195|    689|    set_expected_nan(lane, ExpectedNan::None);
  196|    689|  }
_ZN4wabt5Const4FromIjEEvNS_4TypeET_i:
  190|  19.9k|  void From(Type type, T data, int lane = 0) {
  191|  19.9k|    static_assert(sizeof(T) <= sizeof(data_), "Invalid cast!");
  192|  19.9k|    assert((lane + 1) * sizeof(T) <= sizeof(data_));
  193|  19.9k|    type_ = type;
  194|  19.9k|    data_.From<T>(lane, data);
  195|  19.9k|    set_expected_nan(lane, ExpectedNan::None);
  196|  19.9k|  }
_ZN4wabt5Const4FromImEEvNS_4TypeET_i:
  190|  15.9k|  void From(Type type, T data, int lane = 0) {
  191|  15.9k|    static_assert(sizeof(T) <= sizeof(data_), "Invalid cast!");
  192|  15.9k|    assert((lane + 1) * sizeof(T) <= sizeof(data_));
  193|  15.9k|    type_ = type;
  194|  15.9k|    data_.From<T>(lane, data);
  195|  15.9k|    set_expected_nan(lane, ExpectedNan::None);
  196|  15.9k|  }
_ZN4wabt16ModuleFieldMixinILNS_15ModuleFieldTypeE4EEC2ERKNS_8LocationE:
 1075|  1.11k|  explicit ModuleFieldMixin(const Location& loc) : ModuleField(TypeEnum, loc) {}
_ZN4wabt11ModuleFieldD2Ev:
 1053|   137k|  virtual ~ModuleField() = default;
_ZN4wabt9TypeEntryD2Ev:
  282|  1.11k|  virtual ~TypeEntry() = default;
_ZN4wabt11ImportMixinILNS_12ExternalKindE0EEC2Ev:
  986|  58.8k|  ImportMixin() : Import(TypeEnum) {}
_ZN4wabt6ImportD2Ev:
  966|  61.1k|  virtual ~Import() = default;
_ZN4wabt16ModuleFieldMixinILNS_15ModuleFieldTypeE2EEC2ERKNS_8LocationE:
 1075|  61.1k|  explicit ModuleFieldMixin(const Location& loc) : ModuleField(TypeEnum, loc) {}
_ZN4wabt11ImportMixinILNS_12ExternalKindE1EEC2Ev:
  986|    597|  ImportMixin() : Import(TypeEnum) {}
_ZN4wabt11ImportMixinILNS_12ExternalKindE2EEC2Ev:
  986|    712|  ImportMixin() : Import(TypeEnum) {}
_ZN4wabt11ImportMixinILNS_12ExternalKindE3EEC2Ev:
  986|    688|  ImportMixin() : Import(TypeEnum) {}
_ZN4wabt11ImportMixinILNS_12ExternalKindE4EEC2Ev:
  986|    326|  ImportMixin() : Import(TypeEnum) {}
_ZN4wabt16ModuleFieldMixinILNS_15ModuleFieldTypeE0EEC2ERKNS_8LocationE:
 1075|  35.7k|  explicit ModuleFieldMixin(const Location& loc) : ModuleField(TypeEnum, loc) {}
_ZN4wabt16ModuleFieldMixinILNS_15ModuleFieldTypeE5EEC2ERKNS_8LocationE:
 1075|    225|  explicit ModuleFieldMixin(const Location& loc) : ModuleField(TypeEnum, loc) {}
_ZN4wabt16ModuleFieldMixinILNS_15ModuleFieldTypeE7EEC2ERKNS_8LocationE:
 1075|  2.83k|  explicit ModuleFieldMixin(const Location& loc) : ModuleField(TypeEnum, loc) {}
_ZN4wabt16ModuleFieldMixinILNS_15ModuleFieldTypeE1EEC2ERKNS_8LocationE:
 1075|  1.53k|  explicit ModuleFieldMixin(const Location& loc) : ModuleField(TypeEnum, loc) {}
_ZN4wabt16ModuleFieldMixinILNS_15ModuleFieldTypeE3EEC2ERKNS_8LocationE:
 1075|  21.0k|  explicit ModuleFieldMixin(const Location& loc) : ModuleField(TypeEnum, loc) {}
_ZN4wabt16ModuleFieldMixinILNS_15ModuleFieldTypeE9EEC2ERKNS_8LocationE:
 1075|     43|  explicit ModuleFieldMixin(const Location& loc) : ModuleField(TypeEnum, loc) {}
_ZN4wabt13LoadStoreExprILNS_8ExprTypeE0EEC2ENS_6OpcodeENS_3VarEmmRKNS_8LocationE:
  785|  6.16k|        offset(offset) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE0EEC2ENS_3VarERKNS_8LocationE:
  495|  6.16k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE0EEC2ERKNS_8LocationE:
  488|  6.16k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt4ExprD2Ev:
  468|  2.63M|  virtual ~Expr() = default;
_ZN4wabt13LoadStoreExprILNS_8ExprTypeE3EEC2ENS_6OpcodeENS_3VarEmmRKNS_8LocationE:
  785|  3.97k|        offset(offset) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE3EEC2ENS_3VarERKNS_8LocationE:
  495|  3.97k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE3EEC2ERKNS_8LocationE:
  488|  3.97k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt13LoadStoreExprILNS_8ExprTypeE1EEC2ENS_6OpcodeENS_3VarEmmRKNS_8LocationE:
  785|  31.8k|        offset(offset) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE1EEC2ENS_3VarERKNS_8LocationE:
  495|  31.8k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE1EEC2ERKNS_8LocationE:
  488|  31.8k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt13LoadStoreExprILNS_8ExprTypeE2EEC2ENS_6OpcodeENS_3VarEmmRKNS_8LocationE:
  785|  6.58k|        offset(offset) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE2EEC2ENS_3VarERKNS_8LocationE:
  495|  6.58k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE2EEC2ERKNS_8LocationE:
  488|  6.58k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt13LoadStoreExprILNS_8ExprTypeE6EEC2ENS_6OpcodeENS_3VarEmmRKNS_8LocationE:
  785|  4.92k|        offset(offset) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE6EEC2ENS_3VarERKNS_8LocationE:
  495|  4.92k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE6EEC2ERKNS_8LocationE:
  488|  4.92k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE5EEC2ERKNS_8LocationE:
  488|    455|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt13LoadStoreExprILNS_8ExprTypeE4EEC2ENS_6OpcodeENS_3VarEmmRKNS_8LocationE:
  785|  4.88k|        offset(offset) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE4EEC2ENS_3VarERKNS_8LocationE:
  495|  4.88k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE4EEC2ERKNS_8LocationE:
  488|  4.88k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt10OpcodeExprILNS_8ExprTypeE7EEC2ENS_6OpcodeERKNS_8LocationE:
  541|   347k|      : ExprMixin<TypeEnum>(loc), opcode(opcode) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE7EEC2ERKNS_8LocationE:
  488|   347k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt13BlockExprBaseILNS_8ExprTypeE8EEC2ERKNS_8LocationE:
  727|  26.7k|      : ExprMixin<TypeEnum>(loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE8EEC2ERKNS_8LocationE:
  488|  26.7k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt5BlockC2Ev:
  440|   684k|  Block() = default;
_ZN4wabt7VarExprILNS_8ExprTypeE9EEC2ERKNS_3VarERKNS_8LocationE:
  614|  4.83k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE9EEC2ERKNS_8LocationE:
  488|  4.83k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE10EEC2ERKNS_3VarERKNS_8LocationE:
  614|  5.85k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE10EEC2ERKNS_8LocationE:
  488|  5.85k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE11EEC2ERKNS_8LocationE:
  488|  6.32k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE12EEC2ERKNS_3VarERKNS_8LocationE:
  614|  7.53k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE12EEC2ERKNS_8LocationE:
  488|  7.53k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE13EEC2ERKNS_8LocationE:
  488|  3.10k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE14EEC2ERKNS_8LocationE:
  488|  5.36k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE60EE7classofEPKNS_4ExprE:
  486|  30.7k|  static bool classof(const Expr* expr) { return expr->type() == TypeEnum; }
_ZN4wabt10OpcodeExprILNS_8ExprTypeE16EEC2ENS_6OpcodeERKNS_8LocationE:
  541|   278k|      : ExprMixin<TypeEnum>(loc), opcode(opcode) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE16EEC2ERKNS_8LocationE:
  488|   278k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt10OpcodeExprILNS_8ExprTypeE18EEC2ENS_6OpcodeERKNS_8LocationE:
  541|   100k|      : ExprMixin<TypeEnum>(loc), opcode(opcode) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE18EEC2ERKNS_8LocationE:
  488|   100k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE19EEC2ERKNS_8LocationE:
  488|  3.62k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE22EE7classofEPKNS_4ExprE:
  486|  14.1k|  static bool classof(const Expr* expr) { return expr->type() == TypeEnum; }
_ZN4wabt9ExprMixinILNS_8ExprTypeE8EE7classofEPKNS_4ExprE:
  486|  4.67k|  static bool classof(const Expr* expr) { return expr->type() == TypeEnum; }
_ZN4wabt9ExprMixinILNS_8ExprTypeE27EE7classofEPKNS_4ExprE:
  486|  6.31k|  static bool classof(const Expr* expr) { return expr->type() == TypeEnum; }
_ZN4wabt9ExprMixinILNS_8ExprTypeE17EEC2ERKNS_8LocationE:
  488|  36.5k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt5ConstC2IjEENS_4TypeET_RKNS_8LocationE:
  185|  19.9k|  Const(Type type, T data, const Location& loc = Location()) : loc(loc) {
  186|  19.9k|    From<T>(type, data);
  187|  19.9k|  }
_ZN4wabt5ConstC2ImEENS_4TypeET_RKNS_8LocationE:
  185|  15.9k|  Const(Type type, T data, const Location& loc = Location()) : loc(loc) {
  186|  15.9k|    From<T>(type, data);
  187|  15.9k|  }
_ZN4wabt5ConstC2I4v128EENS_4TypeET_RKNS_8LocationE:
  185|    689|  Const(Type type, T data, const Location& loc = Location()) : loc(loc) {
  186|    689|    From<T>(type, data);
  187|    689|  }
_ZN4wabt7VarExprILNS_8ExprTypeE20EEC2ERKNS_3VarERKNS_8LocationE:
  614|  6.18k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE20EEC2ERKNS_8LocationE:
  488|  6.18k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE21EEC2ERKNS_3VarERKNS_8LocationE:
  614|  5.00k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE21EEC2ERKNS_8LocationE:
  488|  5.00k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE22EEC2ERKNS_8LocationE:
  488|   213k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt13LoadStoreExprILNS_8ExprTypeE23EEC2ENS_6OpcodeENS_3VarEmmRKNS_8LocationE:
  785|  68.6k|        offset(offset) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE23EEC2ENS_3VarERKNS_8LocationE:
  495|  68.6k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE23EEC2ERKNS_8LocationE:
  488|  68.6k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE24EEC2ERKNS_3VarERKNS_8LocationE:
  614|  5.36k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE24EEC2ERKNS_8LocationE:
  488|  5.36k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE25EEC2ERKNS_3VarERKNS_8LocationE:
  614|  4.19k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE25EEC2ERKNS_8LocationE:
  488|  4.19k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE26EEC2ERKNS_3VarERKNS_8LocationE:
  614|  2.90k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE26EEC2ERKNS_8LocationE:
  488|  2.90k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt13BlockExprBaseILNS_8ExprTypeE27EEC2ERKNS_8LocationE:
  727|  16.6k|      : ExprMixin<TypeEnum>(loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE27EEC2ERKNS_8LocationE:
  488|  16.6k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt16MemoryBinaryExprILNS_8ExprTypeE28EEC2ENS_3VarES3_RKNS_8LocationE:
  508|  1.18k|        srcmemidx(srcmemidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE28EEC2ERKNS_8LocationE:
  488|  1.18k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE29EEC2ERKNS_3VarERKNS_8LocationE:
  614|     22|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE29EEC2ERKNS_8LocationE:
  488|     22|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE30EEC2ENS_3VarERKNS_8LocationE:
  495|    573|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE30EEC2ERKNS_8LocationE:
  488|    573|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE31EEC2ENS_3VarERKNS_8LocationE:
  495|  9.16k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE31EEC2ERKNS_8LocationE:
  488|  9.16k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt13MemoryVarExprILNS_8ExprTypeE32EEC2ERKNS_3VarES3_RKNS_8LocationE:
  623|     46|      : MemoryExpr<TypeEnum>(memidx, loc), var(var) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE32EEC2ENS_3VarERKNS_8LocationE:
  495|     46|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE32EEC2ERKNS_8LocationE:
  488|     46|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE33EEC2ENS_3VarERKNS_8LocationE:
  495|  6.00k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE33EEC2ERKNS_8LocationE:
  488|  6.00k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE50EEC2ERKNS_8LocationE:
  488|    879|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE51EEC2ERKNS_3VarERKNS_8LocationE:
  614|    395|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE51EEC2ERKNS_8LocationE:
  488|    395|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE52EEC2ERKNS_8LocationE:
  488|    310|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE53EEC2ERKNS_3VarERKNS_8LocationE:
  614|  3.93k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE53EEC2ERKNS_8LocationE:
  488|  3.93k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE56EEC2ERKNS_3VarERKNS_8LocationE:
  614|  6.46k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE56EEC2ERKNS_8LocationE:
  488|  6.46k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE54EEC2ERKNS_3VarERKNS_8LocationE:
  614|    618|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE54EEC2ERKNS_8LocationE:
  488|    618|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE55EEC2ERKNS_3VarERKNS_8LocationE:
  614|    706|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE55EEC2ERKNS_8LocationE:
  488|    706|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE57EEC2ERKNS_3VarERKNS_8LocationE:
  614|    602|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE57EEC2ERKNS_8LocationE:
  488|    602|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE36EEC2ERKNS_3VarERKNS_8LocationE:
  614|  7.08k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE36EEC2ERKNS_8LocationE:
  488|  7.08k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt11RefTypeExprILNS_8ExprTypeE37EEC2ENS_4TypeERKNS_8LocationE:
  529|  3.37k|      : ExprMixin<TypeEnum>(loc), type(type) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE37EEC2ERKNS_8LocationE:
  488|  3.37k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE35EEC2ERKNS_8LocationE:
  488|  1.38k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE34EEC2ERKNS_8LocationE:
  488|   112k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE38EEC2ERKNS_3VarERKNS_8LocationE:
  614|  15.2k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE38EEC2ERKNS_8LocationE:
  488|  15.2k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE39EEC2ERKNS_8LocationE:
  488|  6.26k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE40EEC2ERKNS_3VarERKNS_8LocationE:
  614|  2.38k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE40EEC2ERKNS_8LocationE:
  488|  2.38k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE41EEC2ERKNS_8LocationE:
  488|  2.68k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE42EEC2ERKNS_8LocationE:
  488|  11.8k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt13LoadStoreExprILNS_8ExprTypeE49EEC2ENS_6OpcodeENS_3VarEmmRKNS_8LocationE:
  785|  23.3k|        offset(offset) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE49EEC2ENS_3VarERKNS_8LocationE:
  495|  23.3k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE49EEC2ERKNS_8LocationE:
  488|  23.3k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt7VarExprILNS_8ExprTypeE59EEC2ERKNS_3VarERKNS_8LocationE:
  614|  8.86k|      : ExprMixin<TypeEnum>(loc), var(var) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE59EEC2ERKNS_8LocationE:
  488|  8.86k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE60EEC2ERKNS_8LocationE:
  488|   427k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt10OpcodeExprILNS_8ExprTypeE61EEC2ENS_6OpcodeERKNS_8LocationE:
  541|   161k|      : ExprMixin<TypeEnum>(loc), opcode(opcode) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE61EEC2ERKNS_8LocationE:
  488|   161k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt10OpcodeExprILNS_8ExprTypeE58EEC2ENS_6OpcodeERKNS_8LocationE:
  541|  7.70k|      : ExprMixin<TypeEnum>(loc), opcode(opcode) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE58EEC2ERKNS_8LocationE:
  488|  7.70k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE62EEC2ERKNS_8LocationE:
  488|   577k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE43EEC2ERKNS_8LocationE:
  488|  10.6k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE46EEC2ERKNS_8LocationE:
  488|    721|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE44EEC2ENS_3VarERKNS_8LocationE:
  495|  2.45k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE44EEC2ERKNS_8LocationE:
  488|  2.45k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE45EEC2ENS_3VarERKNS_8LocationE:
  495|  2.18k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE45EEC2ERKNS_8LocationE:
  488|  2.18k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt13LoadStoreExprILNS_8ExprTypeE47EEC2ENS_6OpcodeENS_3VarEmmRKNS_8LocationE:
  785|  4.22k|        offset(offset) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE47EEC2ENS_3VarERKNS_8LocationE:
  495|  4.22k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE47EEC2ERKNS_8LocationE:
  488|  4.22k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt13LoadStoreExprILNS_8ExprTypeE48EEC2ENS_6OpcodeENS_3VarEmmRKNS_8LocationE:
  785|  1.84k|        offset(offset) {}
_ZN4wabt10MemoryExprILNS_8ExprTypeE48EEC2ENS_3VarERKNS_8LocationE:
  495|  1.84k|      : ExprMixin<TypeEnum>(loc), memidx(memidx) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE48EEC2ERKNS_8LocationE:
  488|  1.84k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt16ModuleFieldMixinILNS_15ModuleFieldTypeE6EEC2ERKNS_8LocationE:
 1075|  6.22k|  explicit ModuleFieldMixin(const Location& loc) : ModuleField(TypeEnum, loc) {}
_ZN4wabt16ModuleFieldMixinILNS_15ModuleFieldTypeE8EEC2ERKNS_8LocationE:
 1075|  4.09k|  explicit ModuleFieldMixin(const Location& loc) : ModuleField(TypeEnum, loc) {}
_ZN4wabt16ModuleFieldMixinILNS_15ModuleFieldTypeE10EEC2ERKNS_8LocationE:
 1075|  3.57k|  explicit ModuleFieldMixin(const Location& loc) : ModuleField(TypeEnum, loc) {}
_ZN4wabt9ExprMixinILNS_8ExprTypeE15EEC2ERKNS_8LocationE:
  488|  4.64k|  explicit ExprMixin(const Location& loc = Location()) : Expr(TypeEnum, loc) {}
_ZN4wabt11ImportMixinILNS_12ExternalKindE0EE7classofEPKNS_6ImportE:
  982|  58.8k|  static bool classof(const Import* import) {
  983|  58.8k|    return import->kind() == TypeEnum;
  984|  58.8k|  }
_ZN4wabt11ImportMixinILNS_12ExternalKindE1EE7classofEPKNS_6ImportE:
  982|    597|  static bool classof(const Import* import) {
  983|    597|    return import->kind() == TypeEnum;
  984|    597|  }
_ZN4wabt11ImportMixinILNS_12ExternalKindE2EE7classofEPKNS_6ImportE:
  982|    712|  static bool classof(const Import* import) {
  983|    712|    return import->kind() == TypeEnum;
  984|    712|  }
_ZN4wabt11ImportMixinILNS_12ExternalKindE3EE7classofEPKNS_6ImportE:
  982|    688|  static bool classof(const Import* import) {
  983|    688|    return import->kind() == TypeEnum;
  984|    688|  }
_ZN4wabt11ImportMixinILNS_12ExternalKindE4EE7classofEPKNS_6ImportE:
  982|    326|  static bool classof(const Import* import) {
  983|    326|    return import->kind() == TypeEnum;
  984|    326|  }

_ZN4wabt6OpcodeC2ENS0_4EnumE:
   52|  2.69M|  Opcode(Enum e) : enum_(e) {}
_ZNK4wabt6OpcodecvNS0_4EnumEEv:
   53|  2.69M|  operator Enum() const { return enum_; }
_ZNK4wabt6Opcode9HasPrefixEv:
   57|  1.25k|  bool HasPrefix() const { return GetInfo().prefix != 0; }
_ZNK4wabt6Opcode9GetPrefixEv:
   58|  2.69M|  uint8_t GetPrefix() const { return GetInfo().prefix; }
_ZNK4wabt6Opcode7GetCodeEv:
   59|  1.25k|  uint32_t GetCode() const { return GetInfo().code; }
_ZNK4wabt6Opcode13GetResultTypeEv:
   65|  2.69M|  Type GetResultType() const { return GetInfo().result_type; }
_ZN4wabt6Opcode12IsPrefixByteEh:
   86|  2.68M|  static bool IsPrefixByte(uint8_t byte) {
   87|  2.68M|    return byte == kMathPrefix || byte == kThreadsPrefix || byte == kSimdPrefix;
  ------------------
  |  Branch (87:12): [True: 13.9k, False: 2.67M]
  |  Branch (87:35): [True: 59.1k, False: 2.61M]
  |  Branch (87:61): [True: 253k, False: 2.36M]
  ------------------
   88|  2.68M|  }
_ZN4wabt6Opcode10PrefixCodeEhj:
  109|  2.69M|  static uint32_t PrefixCode(uint8_t prefix, uint32_t code) {
  110|  2.69M|    if (code >= (1 << MAX_OPCODE_BITS)) {
  ------------------
  |  |   32|  2.69M|#define MAX_OPCODE_BITS 9
  ------------------
  |  Branch (110:9): [True: 199, False: 2.69M]
  ------------------
  111|       |      // Clamp to (2^bits - 1), since we know that it is an invalid code.
  112|    199|      code = (1 << MAX_OPCODE_BITS) - 1;
  ------------------
  |  |   32|    199|#define MAX_OPCODE_BITS 9
  ------------------
  113|    199|    }
  114|  2.69M|    return (prefix << MAX_OPCODE_BITS) | code;
  ------------------
  |  |   32|  2.69M|#define MAX_OPCODE_BITS 9
  ------------------
  115|  2.69M|  }
_ZN4wabt6Opcode19EncodeInvalidOpcodeEj:
  129|  1.01k|  static Enum EncodeInvalidOpcode(uint32_t prefix_code) {
  130|  1.01k|    Enum result = static_cast<Enum>(~prefix_code + 1);
  131|  1.01k|    assert(result >= Invalid);
  132|  1.01k|    return result;
  133|  1.01k|  }
_ZN4wabt6Opcode19DecodeInvalidOpcodeENS0_4EnumEPhPj:
  137|  4.32k|                                  uint32_t* out_code) {
  138|  4.32k|    uint32_t prefix_code = ~static_cast<uint32_t>(e) + 1;
  139|  4.32k|    *out_prefix = prefix_code >> MAX_OPCODE_BITS;
  ------------------
  |  |   32|  4.32k|#define MAX_OPCODE_BITS 9
  ------------------
  140|  4.32k|    *out_code = prefix_code & 0xff;
  141|  4.32k|  }
_ZN4wabt6Opcode8FromCodeEj:
  150|  2.36M|inline Opcode Opcode::FromCode(uint32_t code) {
  151|  2.36M|  return FromCode(0, code);
  152|  2.36M|}
_ZN4wabt6Opcode8FromCodeEhj:
  155|  2.68M|inline Opcode Opcode::FromCode(uint8_t prefix, uint32_t code) {
  156|  2.68M|  uint32_t prefix_code = PrefixCode(prefix, code);
  157|       |
  158|  2.68M|  if (WABT_LIKELY(prefix_code < WABT_ARRAY_SIZE(WabtOpcodeCodeTable))) {
  ------------------
  |  |   73|  2.68M|#define WABT_LIKELY(x) __builtin_expect(!!(x), 1)
  |  |  ------------------
  |  |  |  Branch (73:24): [True: 2.68M, False: 0]
  |  |  ------------------
  ------------------
  159|  2.68M|    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|  2.68M|    if (WABT_LIKELY(value != 0 || code == 0)) {
  ------------------
  |  |   73|  3.26M|#define WABT_LIKELY(x) __builtin_expect(!!(x), 1)
  |  |  ------------------
  |  |  |  Branch (73:24): [True: 2.68M, False: 1.01k]
  |  |  |  Branch (73:44): [True: 2.10M, False: 578k]
  |  |  |  Branch (73:44): [True: 577k, False: 1.01k]
  |  |  ------------------
  ------------------
  163|  2.68M|      return Opcode(static_cast<Enum>(value));
  164|  2.68M|    }
  165|  2.68M|  }
  166|       |
  167|  1.01k|  return Opcode(EncodeInvalidOpcode(prefix_code));
  168|  2.68M|}

_ZN4wabt6ResultC2ENS0_4EnumE:
   29|  55.3M|  Result(Enum e) : enum_(e) {}
_ZNK4wabt6ResultcvNS0_4EnumEEv:
   30|  55.0M|  operator Enum() const { return enum_; }
_ZN4wabtorENS_6ResultES0_:
   37|  59.9k|inline Result operator|(Result lhs, Result rhs) {
   38|  59.9k|  return (lhs == Result::Error || rhs == Result::Error) ? Result::Error
  ------------------
  |  Branch (38:11): [True: 47.7k, False: 12.2k]
  |  Branch (38:35): [True: 10.7k, False: 1.46k]
  ------------------
   39|  59.9k|                                                        : Result::Ok;
   40|  59.9k|}
_ZN4wabt6ResultoRES0_:
   42|  59.9k|inline Result& Result::operator|=(Result rhs) {
   43|  59.9k|  enum_ = *this | rhs;
   44|  59.9k|  return *this;
   45|  59.9k|}
_ZN4wabt9SucceededENS_6ResultE:
   47|  17.4M|inline bool Succeeded(Result result) {
   48|  17.4M|  return result == Result::Ok;
   49|  17.4M|}
_ZN4wabt6FailedENS_6ResultE:
   50|  37.4M|inline bool Failed(Result result) {
   51|  37.4M|  return result == Result::Error;
   52|  37.4M|}

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

_ZN4wabt4TypeC2Ei:
   62|   702k|      : enum_(static_cast<Enum>(code)), type_index_(kInvalidIndex) {}
_ZN4wabt4TypeC2ENS0_4EnumE:
   63|  54.3k|  Type(Enum e) : enum_(e), type_index_(kInvalidIndex) {}
_ZN4wabt4TypeC2ENS0_4EnumEj:
   64|  2.38k|  Type(Enum e, Index type_index) : enum_(e), type_index_(type_index) {
   65|  2.38k|    assert(e == Enum::Reference);
   66|  2.38k|  }
_ZNK4wabt4TypecvNS0_4EnumEEv:
   67|  4.07M|  constexpr operator Enum() const { return enum_; }
_ZNK4wabt4Type5IsRefEv:
   69|  4.60k|  bool IsRef() const {
   70|  4.60k|    return enum_ == Type::ExternRef || enum_ == Type::FuncRef ||
  ------------------
  |  Branch (70:12): [True: 1.23k, False: 3.37k]
  |  Branch (70:40): [True: 855, False: 2.51k]
  ------------------
   71|  4.60k|           enum_ == Type::Reference;
  ------------------
  |  Branch (71:12): [True: 2.24k, False: 272]
  ------------------
   72|  4.60k|  }
_ZNK4wabt4Type7GetNameEv:
   81|      6|  std::string GetName() const {
   82|      6|    switch (enum_) {
   83|      0|      case Type::I32:       return "i32";
  ------------------
  |  Branch (83:7): [True: 0, False: 6]
  ------------------
   84|      0|      case Type::I64:       return "i64";
  ------------------
  |  Branch (84:7): [True: 0, False: 6]
  ------------------
   85|      0|      case Type::F32:       return "f32";
  ------------------
  |  Branch (85:7): [True: 0, False: 6]
  ------------------
   86|      0|      case Type::F64:       return "f64";
  ------------------
  |  Branch (86:7): [True: 0, False: 6]
  ------------------
   87|      0|      case Type::V128:      return "v128";
  ------------------
  |  Branch (87:7): [True: 0, False: 6]
  ------------------
   88|      0|      case Type::I8:        return "i8";
  ------------------
  |  Branch (88:7): [True: 0, False: 6]
  ------------------
   89|      0|      case Type::I16:       return "i16";
  ------------------
  |  Branch (89:7): [True: 0, False: 6]
  ------------------
   90|      6|      case Type::FuncRef:   return "funcref";
  ------------------
  |  Branch (90:7): [True: 6, False: 0]
  ------------------
   91|      0|      case Type::Func:      return "func";
  ------------------
  |  Branch (91:7): [True: 0, False: 6]
  ------------------
   92|      0|      case Type::Void:      return "void";
  ------------------
  |  Branch (92:7): [True: 0, False: 6]
  ------------------
   93|      0|      case Type::Any:       return "any";
  ------------------
  |  Branch (93:7): [True: 0, False: 6]
  ------------------
   94|      0|      case Type::ExternRef: return "externref";
  ------------------
  |  Branch (94:7): [True: 0, False: 6]
  ------------------
   95|      0|      case Type::Reference:
  ------------------
  |  Branch (95:7): [True: 0, False: 6]
  ------------------
   96|      0|        return StringPrintf("(ref %d)", type_index_);
   97|      0|      default:
  ------------------
  |  Branch (97:7): [True: 0, False: 6]
  ------------------
   98|      0|        return StringPrintf("<type_index[%d]>", enum_);
   99|      6|    }
  100|      6|  }
_ZNK4wabt4Type7IsIndexEv:
  124|  2.04M|  bool IsIndex() const { return static_cast<int32_t>(enum_) >= 0; }
_ZNK4wabt4Type8GetIndexEv:
  126|   673k|  Index GetIndex() const {
  127|   673k|    assert(IsIndex());
  128|   673k|    return static_cast<Index>(enum_);
  129|   673k|  }
_ZNK4wabt4Type15GetInlineVectorEv:
  136|  11.8k|  TypeVector GetInlineVector() const {
  137|  11.8k|    assert(!IsIndex());
  138|  11.8k|    switch (enum_) {
  139|  1.50k|      case Type::Void:
  ------------------
  |  Branch (139:7): [True: 1.50k, False: 10.3k]
  ------------------
  140|  1.50k|        return TypeVector();
  141|       |
  142|  2.11k|      case Type::I32:
  ------------------
  |  Branch (142:7): [True: 2.11k, False: 9.74k]
  ------------------
  143|  3.41k|      case Type::I64:
  ------------------
  |  Branch (143:7): [True: 1.30k, False: 10.5k]
  ------------------
  144|  4.66k|      case Type::F32:
  ------------------
  |  Branch (144:7): [True: 1.24k, False: 10.6k]
  ------------------
  145|  5.00k|      case Type::F64:
  ------------------
  |  Branch (145:7): [True: 343, False: 11.5k]
  ------------------
  146|  6.18k|      case Type::V128:
  ------------------
  |  Branch (146:7): [True: 1.17k, False: 10.6k]
  ------------------
  147|  7.31k|      case Type::FuncRef:
  ------------------
  |  Branch (147:7): [True: 1.13k, False: 10.7k]
  ------------------
  148|  8.92k|      case Type::ExternRef:
  ------------------
  |  Branch (148:7): [True: 1.60k, False: 10.2k]
  ------------------
  149|  10.3k|      case Type::Reference:
  ------------------
  |  Branch (149:7): [True: 1.42k, False: 10.4k]
  ------------------
  150|  10.3k|        return TypeVector(this, this + 1);
  151|       |
  152|      0|      default:
  ------------------
  |  Branch (152:7): [True: 0, False: 11.8k]
  ------------------
  153|      0|        WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
  154|  11.8k|    }
  155|  11.8k|  }

_ZN4wabt12ReadBinaryIrEPKcPKvmRKNS_17ReadBinaryOptionsEPNSt3__16vectorINS_5ErrorENS7_9allocatorIS9_EEEEPNS_6ModuleE:
 1797|  14.3k|                    Module* out_module) {
 1798|  14.3k|  BinaryReaderIR reader(out_module, filename, errors);
 1799|  14.3k|  return ReadBinary(data, size, &reader, options);
 1800|  14.3k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIRC2EPNS_6ModuleEPKcPNSt3__16vectorINS_5ErrorENS6_9allocatorIS8_EEEE:
  400|  14.3k|    : errors_(errors), module_(out_module), filename_(filename) {}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_121CodeMetadataExprQueueC2Ev:
   57|  14.3k|  CodeMetadataExprQueue() {}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR7OnErrorERKNS_5ErrorE:
  501|  2.69M|bool BinaryReaderIR::OnError(const Error& error) {
  502|  2.69M|  errors_->push_back(error);
  503|  2.69M|  return true;
  504|  2.69M|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11OnTypeCountEj:
  506|    937|Result BinaryReaderIR::OnTypeCount(Index count) {
  507|    937|  WABT_TRY
  508|    937|  module_->types.reserve(count);
  509|    937|  WABT_CATCH_BAD_ALLOC
  510|    937|  return Result::Ok;
  511|    937|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR10OnFuncTypeEjjPNS_4TypeEjS3_:
  517|    925|                                  Type* result_types) {
  518|    925|  if (param_count > kMaxFunctionParams) {
  ------------------
  |  Branch (518:7): [True: 0, False: 925]
  ------------------
  519|      0|    PrintError("FuncType param count exceeds maximum value");
  520|      0|    return Result::Error;
  521|      0|  }
  522|       |
  523|    925|  if (result_count > kMaxFunctionResults) {
  ------------------
  |  Branch (523:7): [True: 0, False: 925]
  ------------------
  524|      0|    PrintError("FuncType result count exceeds maximum value");
  525|      0|    return Result::Error;
  526|      0|  }
  527|       |
  528|    925|  auto field = std::make_unique<TypeModuleField>(GetLocation());
  529|    925|  auto func_type = std::make_unique<FuncType>();
  530|    925|  func_type->sig.param_types.assign(param_types, param_types + param_count);
  531|    925|  func_type->sig.result_types.assign(result_types, result_types + result_count);
  532|       |
  533|    925|  module_->features_used.simd |=
  534|    925|      std::any_of(func_type->sig.param_types.begin(),
  ------------------
  |  Branch (534:7): [True: 193, False: 732]
  ------------------
  535|    925|                  func_type->sig.param_types.end(),
  536|    925|                  [](auto x) { return x == Type::V128; }) ||
  537|    925|      std::any_of(func_type->sig.result_types.begin(),
  ------------------
  |  Branch (537:7): [True: 84, False: 648]
  ------------------
  538|    732|                  func_type->sig.result_types.end(),
  539|    732|                  [](auto x) { return x == Type::V128; });
  540|       |
  541|    925|  field->type = std::move(func_type);
  542|    925|  module_->AppendField(std::move(field));
  543|    925|  return Result::Ok;
  544|    925|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR10PrintErrorEPKcz:
  410|  8.28k|                                                         ...) {
  411|  8.28k|  WABT_SNPRINTF_ALLOCA(buffer, length, format);
  ------------------
  |  |   36|  8.28k|  va_list args;                                                            \
  |  |   37|  8.28k|  va_list args_copy;                                                       \
  |  |   38|  8.28k|  va_start(args, format);                                                  \
  |  |   39|  8.28k|  va_copy(args_copy, args);                                                \
  |  |   40|  8.28k|  char fixed_buf[WABT_DEFAULT_SNPRINTF_ALLOCA_BUFSIZE];                    \
  |  |   41|  8.28k|  char* buffer = fixed_buf;                                                \
  |  |   42|  8.28k|  size_t len = wabt_vsnprintf(fixed_buf, sizeof(fixed_buf), format, args); \
  |  |  ------------------
  |  |  |  |  301|  8.28k|#define wabt_vsnprintf vsnprintf
  |  |  ------------------
  |  |   43|  8.28k|  va_end(args);                                                            \
  |  |   44|  8.28k|  if (len + 1 > sizeof(fixed_buf)) {                                       \
  |  |  ------------------
  |  |  |  Branch (44:7): [True: 0, False: 8.28k]
  |  |  ------------------
  |  |   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.28k|  va_end(args_copy)
  ------------------
  412|  8.28k|  errors_->emplace_back(ErrorLevel::Error, Location(kInvalidOffset), buffer);
  413|  8.28k|}
binary-reader-ir.cc:_ZNK4wabt12_GLOBAL__N_114BinaryReaderIR11GetLocationEv:
  402|  7.38M|Location BinaryReaderIR::GetLocation() const {
  403|  7.38M|  Location loc;
  404|  7.38M|  loc.filename = filename_;
  405|  7.38M|  loc.offset = state->offset;
  406|  7.38M|  return loc;
  407|  7.38M|}
binary-reader-ir.cc:_ZZN4wabt12_GLOBAL__N_114BinaryReaderIR10OnFuncTypeEjjPNS_4TypeEjS3_ENK3$_0clIS2_EEDaT_:
  536|    906|                  [](auto x) { return x == Type::V128; }) ||
binary-reader-ir.cc:_ZZN4wabt12_GLOBAL__N_114BinaryReaderIR10OnFuncTypeEjjPNS_4TypeEjS3_ENK3$_1clIS2_EEDaT_:
  539|  1.09k|                  [](auto x) { return x == Type::V128; });
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR12OnStructTypeEjjPNS_7TypeMutE:
  548|    145|                                    TypeMut* fields) {
  549|    145|  auto field = std::make_unique<TypeModuleField>(GetLocation());
  550|    145|  auto struct_type = std::make_unique<StructType>();
  551|    145|  struct_type->fields.resize(field_count);
  552|    347|  for (Index i = 0; i < field_count; ++i) {
  ------------------
  |  Branch (552:21): [True: 202, False: 145]
  ------------------
  553|    202|    struct_type->fields[i].type = fields[i].type;
  554|    202|    struct_type->fields[i].mutable_ = fields[i].mutable_;
  555|    202|    module_->features_used.simd |= (fields[i].type == Type::V128);
  556|    202|  }
  557|    145|  field->type = std::move(struct_type);
  558|    145|  module_->AppendField(std::move(field));
  559|    145|  return Result::Ok;
  560|    145|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11OnArrayTypeEjNS_7TypeMutE:
  562|     41|Result BinaryReaderIR::OnArrayType(Index index, TypeMut type_mut) {
  563|     41|  auto field = std::make_unique<TypeModuleField>(GetLocation());
  564|     41|  auto array_type = std::make_unique<ArrayType>();
  565|     41|  array_type->field.type = type_mut.type;
  566|     41|  array_type->field.mutable_ = type_mut.mutable_;
  567|     41|  module_->features_used.simd |= (type_mut.type == Type::V128);
  568|     41|  field->type = std::move(array_type);
  569|     41|  module_->AppendField(std::move(field));
  570|     41|  return Result::Ok;
  571|     41|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnImportCountEj:
  573|    434|Result BinaryReaderIR::OnImportCount(Index count) {
  574|    434|  WABT_TRY
  575|    434|  module_->imports.reserve(count);
  576|    434|  WABT_CATCH_BAD_ALLOC
  577|    434|  return Result::Ok;
  578|    434|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR12OnImportFuncEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jj:
  584|  58.8k|                                    Index sig_index) {
  585|  58.8k|  auto import = std::make_unique<FuncImport>();
  586|  58.8k|  import->module_name = module_name;
  587|  58.8k|  import->field_name = field_name;
  588|  58.8k|  SetFuncDeclaration(&import->func.decl, Var(sig_index, GetLocation()));
  589|  58.8k|  module_->AppendField(
  590|  58.8k|      std::make_unique<ImportModuleField>(std::move(import), GetLocation()));
  591|  58.8k|  return Result::Ok;
  592|  58.8k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR18SetFuncDeclarationEPNS_15FuncDeclarationENS_3VarE:
  471|   777k|void BinaryReaderIR::SetFuncDeclaration(FuncDeclaration* decl, Var var) {
  472|   777k|  decl->has_func_type = true;
  473|   777k|  decl->type_var = var;
  474|   777k|  if (auto* func_type = module_->GetFuncType(var)) {
  ------------------
  |  Branch (474:13): [True: 53.2k, False: 724k]
  ------------------
  475|  53.2k|    decl->sig = func_type->sig;
  476|  53.2k|  }
  477|   777k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnImportTableEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jNS_4TypeEPKNS_6LimitsE:
  599|    597|                                     const Limits* elem_limits) {
  600|    597|  auto import = std::make_unique<TableImport>();
  601|    597|  import->module_name = module_name;
  602|    597|  import->field_name = field_name;
  603|    597|  import->table.elem_limits = *elem_limits;
  604|    597|  import->table.elem_type = elem_type;
  605|    597|  module_->AppendField(
  606|    597|      std::make_unique<ImportModuleField>(std::move(import), GetLocation()));
  607|    597|  return Result::Ok;
  608|    597|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnImportMemoryEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jPKNS_6LimitsE:
  614|    712|                                      const Limits* page_limits) {
  615|    712|  auto import = std::make_unique<MemoryImport>();
  616|    712|  import->module_name = module_name;
  617|    712|  import->field_name = field_name;
  618|    712|  import->memory.page_limits = *page_limits;
  619|    712|  if (import->memory.page_limits.is_shared) {
  ------------------
  |  Branch (619:7): [True: 410, False: 302]
  ------------------
  620|    410|    module_->features_used.threads = true;
  621|    410|  }
  622|    712|  module_->AppendField(
  623|    712|      std::make_unique<ImportModuleField>(std::move(import), GetLocation()));
  624|    712|  return Result::Ok;
  625|    712|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnImportGlobalEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jNS_4TypeEb:
  632|    688|                                      bool mutable_) {
  633|    688|  auto import = std::make_unique<GlobalImport>();
  634|    688|  import->module_name = module_name;
  635|    688|  import->field_name = field_name;
  636|    688|  import->global.type = type;
  637|    688|  import->global.mutable_ = mutable_;
  638|    688|  module_->AppendField(
  639|    688|      std::make_unique<ImportModuleField>(std::move(import), GetLocation()));
  640|    688|  module_->features_used.simd |= (type == Type::V128);
  641|    688|  return Result::Ok;
  642|    688|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11OnImportTagEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_jj:
  648|    326|                                   Index sig_index) {
  649|    326|  auto import = std::make_unique<TagImport>();
  650|    326|  import->module_name = module_name;
  651|    326|  import->field_name = field_name;
  652|    326|  SetFuncDeclaration(&import->tag.decl, Var(sig_index, GetLocation()));
  653|    326|  module_->AppendField(
  654|    326|      std::make_unique<ImportModuleField>(std::move(import), GetLocation()));
  655|    326|  module_->features_used.exceptions = true;
  656|    326|  return Result::Ok;
  657|    326|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnFunctionCountEj:
  659|  1.17k|Result BinaryReaderIR::OnFunctionCount(Index count) {
  660|  1.17k|  WABT_TRY
  661|  1.17k|  module_->funcs.reserve(module_->num_func_imports + count);
  662|  1.17k|  WABT_CATCH_BAD_ALLOC
  663|  1.17k|  return Result::Ok;
  664|  1.17k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR10OnFunctionEjj:
  666|  35.7k|Result BinaryReaderIR::OnFunction(Index index, Index sig_index) {
  667|  35.7k|  auto field = std::make_unique<FuncModuleField>(GetLocation());
  668|  35.7k|  Func& func = field->func;
  669|  35.7k|  SetFuncDeclaration(&func.decl, Var(sig_index, GetLocation()));
  670|  35.7k|  module_->AppendField(std::move(field));
  671|  35.7k|  return Result::Ok;
  672|  35.7k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR12OnTableCountEj:
  674|    252|Result BinaryReaderIR::OnTableCount(Index count) {
  675|    252|  WABT_TRY
  676|    252|  module_->tables.reserve(module_->num_table_imports + count);
  677|    252|  WABT_CATCH_BAD_ALLOC
  678|    252|  return Result::Ok;
  679|    252|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR7OnTableEjNS_4TypeEPKNS_6LimitsE:
  683|    225|                               const Limits* elem_limits) {
  684|    225|  auto field = std::make_unique<TableModuleField>(GetLocation());
  685|    225|  Table& table = field->table;
  686|    225|  table.elem_limits = *elem_limits;
  687|    225|  table.elem_type = elem_type;
  688|    225|  module_->AppendField(std::move(field));
  689|    225|  return Result::Ok;
  690|    225|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnMemoryCountEj:
  692|    461|Result BinaryReaderIR::OnMemoryCount(Index count) {
  693|    461|  WABT_TRY
  694|    461|  module_->memories.reserve(module_->num_memory_imports + count);
  695|    461|  WABT_CATCH_BAD_ALLOC
  696|    461|  return Result::Ok;
  697|    461|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR8OnMemoryEjPKNS_6LimitsE:
  699|  2.83k|Result BinaryReaderIR::OnMemory(Index index, const Limits* page_limits) {
  700|  2.83k|  auto field = std::make_unique<MemoryModuleField>(GetLocation());
  701|  2.83k|  Memory& memory = field->memory;
  702|  2.83k|  memory.page_limits = *page_limits;
  703|  2.83k|  if (memory.page_limits.is_shared) {
  ------------------
  |  Branch (703:7): [True: 744, False: 2.09k]
  ------------------
  704|    744|    module_->features_used.threads = true;
  705|    744|  }
  706|  2.83k|  module_->AppendField(std::move(field));
  707|  2.83k|  return Result::Ok;
  708|  2.83k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnGlobalCountEj:
  710|    901|Result BinaryReaderIR::OnGlobalCount(Index count) {
  711|    901|  WABT_TRY
  712|    901|  module_->globals.reserve(module_->num_global_imports + count);
  713|    901|  WABT_CATCH_BAD_ALLOC
  714|    901|  return Result::Ok;
  715|    901|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11BeginGlobalEjNS_4TypeEb:
  717|  1.53k|Result BinaryReaderIR::BeginGlobal(Index index, Type type, bool mutable_) {
  718|  1.53k|  auto field = std::make_unique<GlobalModuleField>(GetLocation());
  719|  1.53k|  Global& global = field->global;
  720|  1.53k|  global.type = type;
  721|  1.53k|  global.mutable_ = mutable_;
  722|  1.53k|  module_->AppendField(std::move(field));
  723|  1.53k|  module_->features_used.simd |= (type == Type::V128);
  724|  1.53k|  return Result::Ok;
  725|  1.53k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR19BeginGlobalInitExprEj:
  727|  1.53k|Result BinaryReaderIR::BeginGlobalInitExpr(Index index) {
  728|  1.53k|  assert(index == module_->globals.size() - 1);
  729|  1.53k|  Global* global = module_->globals[index];
  730|  1.53k|  return BeginInitExpr(&global->init_expr);
  731|  1.53k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13BeginInitExprEPNS_14intrusive_listINS_4ExprEEE:
 1338|  16.7k|Result BinaryReaderIR::BeginInitExpr(ExprList* expr) {
 1339|  16.7k|  return PushLabel(LabelType::InitExpr, expr);
 1340|  16.7k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR9PushLabelENS_9LabelTypeEPNS_14intrusive_listINS_4ExprEEEPS4_:
  417|   702k|                                 Expr* context) {
  418|   702k|  if (label_stack_.size() >= kMaxNestingDepth) {
  ------------------
  |  Branch (418:7): [True: 8, False: 702k]
  ------------------
  419|      8|    PrintError("label stack exceeds max nesting depth");
  420|      8|    return Result::Error;
  421|      8|  }
  422|   702k|  label_stack_.emplace_back(label_type, first, context);
  423|   702k|  return Result::Ok;
  424|   702k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_19LabelNodeC2ENS_9LabelTypeEPNS_14intrusive_listINS_4ExprEEEPS4_:
   45|   702k|    : label_type(label_type), exprs(exprs), context(context) {}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR17EndGlobalInitExprEj:
  733|    795|Result BinaryReaderIR::EndGlobalInitExpr(Index index) {
  734|    795|  return EndInitExpr();
  735|    795|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11EndInitExprEv:
 1348|  9.64k|Result BinaryReaderIR::EndInitExpr() {
 1349|  9.64k|  if (!label_stack_.empty()) {
  ------------------
  |  Branch (1349:7): [True: 10, False: 9.63k]
  ------------------
 1350|     10|    PrintError("init expression missing end marker");
 1351|     10|    return Result::Error;
 1352|     10|  }
 1353|  9.63k|  return Result::Ok;
 1354|  9.64k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnExportCountEj:
  737|    571|Result BinaryReaderIR::OnExportCount(Index count) {
  738|    571|  WABT_TRY
  739|    571|  module_->exports.reserve(count);
  740|    571|  WABT_CATCH_BAD_ALLOC
  741|    571|  return Result::Ok;
  742|    571|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR8OnExportEjNS_12ExternalKindEjNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEE:
  747|  21.0k|                                std::string_view name) {
  748|  21.0k|  auto field = std::make_unique<ExportModuleField>(GetLocation());
  749|  21.0k|  Export& export_ = field->export_;
  750|  21.0k|  export_.name = name;
  751|  21.0k|  export_.var = Var(item_index, GetLocation());
  752|  21.0k|  export_.kind = kind;
  753|  21.0k|  module_->AppendField(std::move(field));
  754|  21.0k|  return Result::Ok;
  755|  21.0k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnStartFunctionEj:
  757|     43|Result BinaryReaderIR::OnStartFunction(Index func_index) {
  758|     43|  Var start(func_index, GetLocation());
  759|     43|  module_->AppendField(
  760|     43|      std::make_unique<StartModuleField>(start, GetLocation()));
  761|     43|  return Result::Ok;
  762|     43|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR19OnFunctionBodyCountEj:
  764|    580|Result BinaryReaderIR::OnFunctionBodyCount(Index count) {
  765|       |  // Can hit this case on a malformed module if we don't stop on first error.
  766|    580|  if (module_->num_func_imports + count != module_->funcs.size()) {
  ------------------
  |  Branch (766:7): [True: 5, False: 575]
  ------------------
  767|      5|    PrintError(
  768|      5|        "number of imported func + func count in code section does not match "
  769|      5|        "actual number of funcs in module");
  770|      5|    return Result::Error;
  771|      5|  }
  772|    575|  return Result::Ok;
  773|    580|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR17BeginFunctionBodyEjm:
  775|    851|Result BinaryReaderIR::BeginFunctionBody(Index index, Offset size) {
  776|    851|  current_func_ = module_->funcs[index];
  777|    851|  current_func_->loc = GetLocation();
  778|    851|  return PushLabel(LabelType::Func, &current_func_->exprs);
  779|    851|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11OnLocalDeclEjjNS_4TypeE:
  781|  1.46k|Result BinaryReaderIR::OnLocalDecl(Index decl_index, Index count, Type type) {
  782|  1.46k|  current_func_->local_types.AppendDecl(type, count);
  783|       |
  784|  1.46k|  if (current_func_->GetNumLocals() > kMaxFunctionLocals) {
  ------------------
  |  Branch (784:7): [True: 41, False: 1.42k]
  ------------------
  785|     41|    PrintError("function local count exceeds maximum value");
  786|     41|    return Result::Error;
  787|     41|  }
  788|       |
  789|  1.42k|  module_->features_used.simd |= (type == Type::V128);
  790|  1.42k|  return Result::Ok;
  791|  1.46k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR8OnOpcodeENS_6OpcodeE:
  793|  2.69M|Result BinaryReaderIR::OnOpcode(Opcode opcode) {
  794|  2.69M|  std::unique_ptr<CodeMetadataExpr> metadata =
  795|  2.69M|      code_metadata_queue_.pop_match(current_func_, GetLocation().offset - 1);
  796|  2.69M|  if (metadata) {
  ------------------
  |  Branch (796:7): [True: 17, False: 2.69M]
  ------------------
  797|     17|    return AppendExpr(std::move(metadata));
  798|     17|  }
  799|  2.69M|  module_->features_used.simd |= (opcode.GetResultType() == Type::V128);
  800|  2.69M|  module_->features_used.threads |= (opcode.GetPrefix() == 0xfe);
  801|  2.69M|  return Result::Ok;
  802|  2.69M|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_121CodeMetadataExprQueue9pop_matchEPNS_4FuncEm:
   64|  2.69M|  std::unique_ptr<CodeMetadataExpr> pop_match(Func* f, Offset offset) {
   65|  2.69M|    std::unique_ptr<CodeMetadataExpr> ret;
   66|  2.69M|    if (entries.empty()) {
  ------------------
  |  Branch (66:9): [True: 2.67M, False: 17.2k]
  ------------------
   67|  2.67M|      return ret;
   68|  2.67M|    }
   69|       |
   70|  17.2k|    auto& current_entry = entries.front();
   71|       |
   72|  17.2k|    if (current_entry.func != f)
  ------------------
  |  Branch (72:9): [True: 1.66k, False: 15.5k]
  ------------------
   73|  1.66k|      return ret;
   74|  15.5k|    if (current_entry.func_queue.empty()) {
  ------------------
  |  Branch (74:9): [True: 13.6k, False: 1.96k]
  ------------------
   75|  13.6k|      entries.pop_front();
   76|  13.6k|      return ret;
   77|  13.6k|    }
   78|       |
   79|  1.96k|    auto& current_metadata = current_entry.func_queue.front();
   80|  1.96k|    if (current_metadata->loc.offset + current_entry.func->loc.offset !=
  ------------------
  |  Branch (80:9): [True: 1.94k, False: 17]
  ------------------
   81|  1.96k|        offset) {
   82|  1.94k|      return ret;
   83|  1.94k|    }
   84|       |
   85|     17|    current_metadata->loc = Location(offset);
   86|     17|    ret = std::move(current_metadata);
   87|     17|    current_entry.func_queue.pop_front();
   88|       |
   89|     17|    return ret;
   90|  1.96k|  }
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR10AppendExprENSt3__110unique_ptrINS_4ExprENS2_14default_deleteIS4_EEEE:
  463|  2.62M|Result BinaryReaderIR::AppendExpr(std::unique_ptr<Expr> expr) {
  464|  2.62M|  expr->loc = GetLocation();
  465|  2.62M|  LabelNode* label;
  466|  2.62M|  CHECK_RESULT(TopLabel(&label));
  ------------------
  |  |   55|  2.62M|  do {                              \
  |  |   56|  2.62M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.62M]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.62M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  467|  2.62M|  label->exprs->push_back(std::move(expr));
  468|  2.62M|  return Result::Ok;
  469|  2.62M|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR8TopLabelEPPNS0_9LabelNodeE:
  447|  2.68M|Result BinaryReaderIR::TopLabel(LabelNode** label) {
  448|  2.68M|  return GetLabelAt(label, 0);
  449|  2.68M|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR10GetLabelAtEPPNS0_9LabelNodeEj:
  436|  2.73M|Result BinaryReaderIR::GetLabelAt(LabelNode** label, Index depth) {
  437|  2.73M|  if (depth >= label_stack_.size()) {
  ------------------
  |  Branch (437:7): [True: 0, False: 2.73M]
  ------------------
  438|      0|    PrintError("accessing stack depth: %" PRIindex " >= max: %" PRIzd, depth,
  ------------------
  |  |  278|      0|#define PRIzd "zd"
  ------------------
  439|      0|               label_stack_.size());
  440|      0|    return Result::Error;
  441|      0|  }
  442|       |
  443|  2.73M|  *label = &label_stack_[label_stack_.size() - depth - 1];
  444|  2.73M|  return Result::Ok;
  445|  2.73M|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR16OnAtomicLoadExprENS_6OpcodeEjmm:
  807|  6.16k|                                        Address offset) {
  808|  6.16k|  return AppendExpr(std::make_unique<AtomicLoadExpr>(
  809|  6.16k|      opcode, Var(memidx, GetLocation()), 1 << alignment_log2, offset));
  810|  6.16k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR17OnAtomicStoreExprENS_6OpcodeEjmm:
  815|  3.97k|                                         Address offset) {
  816|  3.97k|  return AppendExpr(std::make_unique<AtomicStoreExpr>(
  817|  3.97k|      opcode, Var(memidx, GetLocation()), 1 << alignment_log2, offset));
  818|  3.97k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnAtomicRmwExprENS_6OpcodeEjmm:
  823|  31.8k|                                       Address offset) {
  824|  31.8k|  return AppendExpr(std::make_unique<AtomicRmwExpr>(
  825|  31.8k|      opcode, Var(memidx, GetLocation()), 1 << alignment_log2, offset));
  826|  31.8k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR22OnAtomicRmwCmpxchgExprENS_6OpcodeEjmm:
  831|  6.58k|                                              Address offset) {
  832|  6.58k|  return AppendExpr(std::make_unique<AtomicRmwCmpxchgExpr>(
  833|  6.58k|      opcode, Var(memidx, GetLocation()), 1 << alignment_log2, offset));
  834|  6.58k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR16OnAtomicWaitExprENS_6OpcodeEjmm:
  839|  4.92k|                                        Address offset) {
  840|  4.92k|  return AppendExpr(std::make_unique<AtomicWaitExpr>(
  841|  4.92k|      opcode, Var(memidx, GetLocation()), 1 << alignment_log2, offset));
  842|  4.92k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR17OnAtomicFenceExprEj:
  844|    455|Result BinaryReaderIR::OnAtomicFenceExpr(uint32_t consistency_model) {
  845|    455|  return AppendExpr(std::make_unique<AtomicFenceExpr>(consistency_model));
  846|    455|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR18OnAtomicNotifyExprENS_6OpcodeEjmm:
  851|  4.88k|                                          Address offset) {
  852|  4.88k|  return AppendExpr(std::make_unique<AtomicNotifyExpr>(
  853|  4.88k|      opcode, Var(memidx, GetLocation()), 1 << alignment_log2, offset));
  854|  4.88k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR12OnBinaryExprENS_6OpcodeE:
  856|   347k|Result BinaryReaderIR::OnBinaryExpr(Opcode opcode) {
  857|   347k|  return AppendExpr(std::make_unique<BinaryExpr>(opcode));
  858|   347k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11OnBlockExprENS_4TypeE:
  860|  26.7k|Result BinaryReaderIR::OnBlockExpr(Type sig_type) {
  861|  26.7k|  auto expr = std::make_unique<BlockExpr>();
  862|  26.7k|  SetBlockDeclaration(&expr->block.decl, sig_type);
  863|  26.7k|  ExprList* expr_list = &expr->block.exprs;
  864|  26.7k|  CHECK_RESULT(AppendExpr(std::move(expr)));
  ------------------
  |  |   55|  26.7k|  do {                              \
  |  |   56|  26.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 26.7k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  26.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  865|  26.7k|  return PushLabel(LabelType::Block, expr_list);
  866|  26.7k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR19SetBlockDeclarationEPNS_15FuncDeclarationENS_4TypeE:
  480|   684k|                                         Type sig_type) {
  481|   684k|  if (sig_type.IsIndex()) {
  ------------------
  |  Branch (481:7): [True: 673k, False: 11.8k]
  ------------------
  482|   673k|    Index type_index = sig_type.GetIndex();
  483|   673k|    SetFuncDeclaration(decl, Var(type_index, GetLocation()));
  484|   673k|  } else {
  485|  11.8k|    decl->has_func_type = false;
  486|  11.8k|    decl->sig.param_types.clear();
  487|  11.8k|    decl->sig.result_types = sig_type.GetInlineVector();
  488|  11.8k|  }
  489|   684k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR8OnBrExprEj:
  868|  4.83k|Result BinaryReaderIR::OnBrExpr(Index depth) {
  869|  4.83k|  return AppendExpr(std::make_unique<BrExpr>(Var(depth, GetLocation())));
  870|  4.83k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR10OnBrIfExprEj:
  872|  5.85k|Result BinaryReaderIR::OnBrIfExpr(Index depth) {
  873|  5.85k|  return AppendExpr(std::make_unique<BrIfExpr>(Var(depth, GetLocation())));
  874|  5.85k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnBrTableExprEjPjj:
  878|  6.32k|                                     Index default_target_depth) {
  879|  6.32k|  auto expr = std::make_unique<BrTableExpr>();
  880|  6.32k|  expr->default_target = Var(default_target_depth, GetLocation());
  881|  6.32k|  expr->targets.resize(num_targets);
  882|   236k|  for (Index i = 0; i < num_targets; ++i) {
  ------------------
  |  Branch (882:21): [True: 230k, False: 6.32k]
  ------------------
  883|   230k|    expr->targets[i] = Var(target_depths[i], GetLocation());
  884|   230k|  }
  885|  6.32k|  return AppendExpr(std::move(expr));
  886|  6.32k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR10OnCallExprEj:
  888|  7.53k|Result BinaryReaderIR::OnCallExpr(Index func_index) {
  889|  7.53k|  return AppendExpr(std::make_unique<CallExpr>(Var(func_index, GetLocation())));
  890|  7.53k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR18OnCallIndirectExprEjj:
  892|  3.10k|Result BinaryReaderIR::OnCallIndirectExpr(Index sig_index, Index table_index) {
  893|  3.10k|  auto expr = std::make_unique<CallIndirectExpr>();
  894|  3.10k|  SetFuncDeclaration(&expr->decl, Var(sig_index, GetLocation()));
  895|  3.10k|  expr->table = Var(table_index, GetLocation());
  896|  3.10k|  return AppendExpr(std::move(expr));
  897|  3.10k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnCallRefExprEv:
  899|  5.36k|Result BinaryReaderIR::OnCallRefExpr() {
  900|  5.36k|  return AppendExpr(std::make_unique<CallRefExpr>());
  901|  5.36k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11OnCatchExprEj:
 1219|  4.57k|Result BinaryReaderIR::OnCatchExpr(Index except_index) {
 1220|  4.57k|  return AppendCatch(Catch(Var(except_index, GetLocation())));
 1221|  4.57k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11AppendCatchEONS_5CatchE:
 1190|  5.74k|Result BinaryReaderIR::AppendCatch(Catch&& catch_) {
 1191|  5.74k|  LabelNode* label = nullptr;
 1192|  5.74k|  CHECK_RESULT(TopLabel(&label));
  ------------------
  |  |   55|  5.74k|  do {                              \
  |  |   56|  5.74k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 5.74k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  5.74k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1193|       |
 1194|  5.74k|  if (label->label_type != LabelType::Try) {
  ------------------
  |  Branch (1194:7): [True: 66, False: 5.67k]
  ------------------
 1195|     66|    PrintError("catch not inside try block");
 1196|     66|    return Result::Error;
 1197|     66|  }
 1198|       |
 1199|  5.67k|  auto* try_ = cast<TryExpr>(label->context);
 1200|       |
 1201|  5.67k|  if (catch_.IsCatchAll() && !try_->catches.empty() &&
  ------------------
  |  Branch (1201:7): [True: 1.14k, False: 4.53k]
  |  Branch (1201:30): [True: 169, False: 976]
  ------------------
 1202|  5.67k|      try_->catches.back().IsCatchAll()) {
  ------------------
  |  Branch (1202:7): [True: 8, False: 161]
  ------------------
 1203|      8|    PrintError("only one catch_all allowed in try block");
 1204|      8|    return Result::Error;
 1205|      8|  }
 1206|       |
 1207|  5.66k|  if (try_->kind == TryKind::Plain) {
  ------------------
  |  Branch (1207:7): [True: 2.88k, False: 2.78k]
  ------------------
 1208|  2.88k|    try_->kind = TryKind::Catch;
 1209|  2.88k|  } else if (try_->kind != TryKind::Catch) {
  ------------------
  |  Branch (1209:14): [True: 0, False: 2.78k]
  ------------------
 1210|      0|    PrintError("catch not allowed in try-delegate");
 1211|      0|    return Result::Error;
 1212|      0|  }
 1213|       |
 1214|  5.66k|  try_->catches.push_back(std::move(catch_));
 1215|  5.66k|  label->exprs = &try_->catches.back().exprs;
 1216|  5.66k|  return Result::Ok;
 1217|  5.66k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnCatchAllExprEv:
 1223|  1.16k|Result BinaryReaderIR::OnCatchAllExpr() {
 1224|  1.16k|  return AppendCatch(Catch(GetLocation()));
 1225|  1.16k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnCompareExprENS_6OpcodeE:
  930|   278k|Result BinaryReaderIR::OnCompareExpr(Opcode opcode) {
  931|   278k|  return AppendExpr(std::make_unique<CompareExpr>(opcode));
  932|   278k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnConvertExprENS_6OpcodeE:
  934|   100k|Result BinaryReaderIR::OnConvertExpr(Opcode opcode) {
  935|   100k|  return AppendExpr(std::make_unique<ConvertExpr>(opcode));
  936|   100k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnDelegateExprEj:
 1227|  1.21k|Result BinaryReaderIR::OnDelegateExpr(Index depth) {
 1228|  1.21k|  LabelNode* label = nullptr;
 1229|  1.21k|  CHECK_RESULT(TopLabel(&label));
  ------------------
  |  |   55|  1.21k|  do {                              \
  |  |   56|  1.21k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.21k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.21k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1230|       |
 1231|  1.21k|  if (label->label_type != LabelType::Try) {
  ------------------
  |  Branch (1231:7): [True: 0, False: 1.21k]
  ------------------
 1232|      0|    PrintError("delegate not inside try block");
 1233|      0|    return Result::Error;
 1234|      0|  }
 1235|       |
 1236|  1.21k|  auto* try_ = cast<TryExpr>(label->context);
 1237|       |
 1238|  1.21k|  if (try_->kind == TryKind::Plain) {
  ------------------
  |  Branch (1238:7): [True: 1.20k, False: 6]
  ------------------
 1239|  1.20k|    try_->kind = TryKind::Delegate;
 1240|  1.20k|  } else if (try_->kind != TryKind::Delegate) {
  ------------------
  |  Branch (1240:14): [True: 6, False: 0]
  ------------------
 1241|      6|    PrintError("delegate not allowed in try-catch");
 1242|      6|    return Result::Error;
 1243|      6|  }
 1244|       |
 1245|  1.20k|  try_->delegate_target = Var(depth, GetLocation());
 1246|       |
 1247|  1.20k|  PopLabel();
 1248|  1.20k|  return Result::Ok;
 1249|  1.21k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR8PopLabelEv:
  426|  58.4k|Result BinaryReaderIR::PopLabel() {
  427|  58.4k|  if (label_stack_.size() == 0) {
  ------------------
  |  Branch (427:7): [True: 0, False: 58.4k]
  ------------------
  428|      0|    PrintError("popping empty label stack");
  429|      0|    return Result::Error;
  430|      0|  }
  431|       |
  432|  58.4k|  label_stack_.pop_back();
  433|  58.4k|  return Result::Ok;
  434|  58.4k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR10OnDropExprEv:
  938|  3.62k|Result BinaryReaderIR::OnDropExpr() {
  939|  3.62k|  return AppendExpr(std::make_unique<DropExpr>());
  940|  3.62k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR10OnElseExprEv:
  942|  1.73k|Result BinaryReaderIR::OnElseExpr() {
  943|  1.73k|  LabelNode* label;
  944|  1.73k|  Expr* expr;
  945|  1.73k|  CHECK_RESULT(TopLabelExpr(&label, &expr));
  ------------------
  |  |   55|  1.73k|  do {                              \
  |  |   56|  1.73k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.73k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.73k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  946|       |
  947|  1.73k|  if (label->label_type == LabelType::If) {
  ------------------
  |  Branch (947:7): [True: 1.72k, False: 11]
  ------------------
  948|  1.72k|    auto* if_expr = cast<IfExpr>(expr);
  949|  1.72k|    if_expr->true_.end_loc = GetLocation();
  950|  1.72k|    label->exprs = &if_expr->false_;
  951|  1.72k|    label->label_type = LabelType::Else;
  952|  1.72k|  } else {
  953|     11|    PrintError("else expression without matching if");
  954|     11|    return Result::Error;
  955|     11|  }
  956|       |
  957|  1.72k|  return Result::Ok;
  958|  1.73k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR12TopLabelExprEPPNS0_9LabelNodeEPPNS_4ExprE:
  451|  49.0k|Result BinaryReaderIR::TopLabelExpr(LabelNode** label, Expr** expr) {
  452|  49.0k|  CHECK_RESULT(TopLabel(label));
  ------------------
  |  |   55|  49.0k|  do {                              \
  |  |   56|  49.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 49.0k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  49.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  453|  49.0k|  LabelNode* parent_label;
  454|  49.0k|  CHECK_RESULT(GetLabelAt(&parent_label, 1));
  ------------------
  |  |   55|  49.0k|  do {                              \
  |  |   56|  49.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 49.0k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  49.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  455|  49.0k|  if (parent_label->exprs->empty()) {
  ------------------
  |  Branch (455:7): [True: 13, False: 49.0k]
  ------------------
  456|     13|    PrintError("TopLabelExpr: parent label has empty expr list");
  457|     13|    return Result::Error;
  458|     13|  }
  459|  49.0k|  *expr = &parent_label->exprs->back();
  460|  49.0k|  return Result::Ok;
  461|  49.0k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR9OnEndExprEv:
  960|  57.2k|Result BinaryReaderIR::OnEndExpr() {
  961|  57.2k|  if (label_stack_.size() > 1) {
  ------------------
  |  Branch (961:7): [True: 47.3k, False: 9.92k]
  ------------------
  962|  47.3k|    LabelNode* label;
  963|  47.3k|    Expr* expr;
  964|  47.3k|    CHECK_RESULT(TopLabelExpr(&label, &expr));
  ------------------
  |  |   55|  47.3k|  do {                              \
  |  |   56|  47.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 13, False: 47.3k]
  |  |  ------------------
  |  |   57|     13|      return ::wabt::Result::Error; \
  |  |   58|     13|    }                               \
  |  |   59|  47.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  965|  47.3k|    switch (label->label_type) {
  ------------------
  |  Branch (965:13): [True: 0, False: 47.3k]
  ------------------
  966|  4.67k|      case LabelType::Block:
  ------------------
  |  Branch (966:7): [True: 4.67k, False: 42.6k]
  ------------------
  967|  4.67k|        cast<BlockExpr>(expr)->block.end_loc = GetLocation();
  968|  4.67k|        break;
  969|  6.31k|      case LabelType::Loop:
  ------------------
  |  Branch (969:7): [True: 6.31k, False: 41.0k]
  ------------------
  970|  6.31k|        cast<LoopExpr>(expr)->block.end_loc = GetLocation();
  971|  6.31k|        break;
  972|  12.1k|      case LabelType::If:
  ------------------
  |  Branch (972:7): [True: 12.1k, False: 35.2k]
  ------------------
  973|  12.1k|        cast<IfExpr>(expr)->true_.end_loc = GetLocation();
  974|  12.1k|        break;
  975|    334|      case LabelType::Else:
  ------------------
  |  Branch (975:7): [True: 334, False: 46.9k]
  ------------------
  976|    334|        cast<IfExpr>(expr)->false_end_loc = GetLocation();
  977|    334|        break;
  978|  23.8k|      case LabelType::Try:
  ------------------
  |  Branch (978:7): [True: 23.8k, False: 23.4k]
  ------------------
  979|  23.8k|        cast<TryExpr>(expr)->block.end_loc = GetLocation();
  980|  23.8k|        break;
  981|       |
  982|     10|      case LabelType::InitExpr:
  ------------------
  |  Branch (982:7): [True: 10, False: 47.3k]
  ------------------
  983|     12|      case LabelType::Func:
  ------------------
  |  Branch (983:7): [True: 2, False: 47.3k]
  ------------------
  984|     12|      case LabelType::Catch:
  ------------------
  |  Branch (984:7): [True: 0, False: 47.3k]
  ------------------
  985|     12|        break;
  986|  47.3k|    }
  987|  47.3k|  }
  988|       |
  989|  57.2k|  return PopLabel();
  990|  57.2k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnF32ConstExprEj:
  992|  1.86k|Result BinaryReaderIR::OnF32ConstExpr(uint32_t value_bits) {
  993|  1.86k|  return AppendExpr(
  994|  1.86k|      std::make_unique<ConstExpr>(Const::F32(value_bits, GetLocation())));
  995|  1.86k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnF64ConstExprEm:
  997|  1.45k|Result BinaryReaderIR::OnF64ConstExpr(uint64_t value_bits) {
  998|  1.45k|  return AppendExpr(
  999|  1.45k|      std::make_unique<ConstExpr>(Const::F64(value_bits, GetLocation())));
 1000|  1.45k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnV128ConstExprE4v128:
 1002|    689|Result BinaryReaderIR::OnV128ConstExpr(v128 value_bits) {
 1003|    689|  return AppendExpr(
 1004|    689|      std::make_unique<ConstExpr>(Const::V128(value_bits, GetLocation())));
 1005|    689|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnGlobalGetExprEj:
 1007|  6.18k|Result BinaryReaderIR::OnGlobalGetExpr(Index global_index) {
 1008|  6.18k|  return AppendExpr(
 1009|  6.18k|      std::make_unique<GlobalGetExpr>(Var(global_index, GetLocation())));
 1010|  6.18k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnGlobalSetExprEj:
 1152|  5.00k|Result BinaryReaderIR::OnGlobalSetExpr(Index global_index) {
 1153|  5.00k|  return AppendExpr(
 1154|  5.00k|      std::make_unique<GlobalSetExpr>(Var(global_index, GetLocation())));
 1155|  5.00k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnI32ConstExprEj:
 1017|  18.0k|Result BinaryReaderIR::OnI32ConstExpr(uint32_t value) {
 1018|  18.0k|  return AppendExpr(
 1019|  18.0k|      std::make_unique<ConstExpr>(Const::I32(value, GetLocation())));
 1020|  18.0k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnI64ConstExprEm:
 1022|  14.4k|Result BinaryReaderIR::OnI64ConstExpr(uint64_t value) {
 1023|  14.4k|  return AppendExpr(
 1024|  14.4k|      std::make_unique<ConstExpr>(Const::I64(value, GetLocation())));
 1025|  14.4k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR8OnIfExprENS_4TypeE:
 1027|   213k|Result BinaryReaderIR::OnIfExpr(Type sig_type) {
 1028|   213k|  auto expr = std::make_unique<IfExpr>();
 1029|   213k|  SetBlockDeclaration(&expr->true_.decl, sig_type);
 1030|   213k|  ExprList* expr_list = &expr->true_.exprs;
 1031|   213k|  CHECK_RESULT(AppendExpr(std::move(expr)));
  ------------------
  |  |   55|   213k|  do {                              \
  |  |   56|   213k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 213k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|   213k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1032|   213k|  return PushLabel(LabelType::If, expr_list);
 1033|   213k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR10OnLoadExprENS_6OpcodeEjmm:
 1038|  68.6k|                                  Address offset) {
 1039|  68.6k|  return AppendExpr(std::make_unique<LoadExpr>(
 1040|  68.6k|      opcode, Var(memidx, GetLocation()), 1 << alignment_log2, offset));
 1041|  68.6k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnLocalGetExprEj:
 1012|  5.36k|Result BinaryReaderIR::OnLocalGetExpr(Index local_index) {
 1013|  5.36k|  return AppendExpr(
 1014|  5.36k|      std::make_unique<LocalGetExpr>(Var(local_index, GetLocation())));
 1015|  5.36k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnLocalSetExprEj:
 1157|  4.19k|Result BinaryReaderIR::OnLocalSetExpr(Index local_index) {
 1158|  4.19k|  return AppendExpr(
 1159|  4.19k|      std::make_unique<LocalSetExpr>(Var(local_index, GetLocation())));
 1160|  4.19k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnLocalTeeExprEj:
 1174|  2.90k|Result BinaryReaderIR::OnLocalTeeExpr(Index local_index) {
 1175|  2.90k|  return AppendExpr(
 1176|  2.90k|      std::make_unique<LocalTeeExpr>(Var(local_index, GetLocation())));
 1177|  2.90k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR10OnLoopExprENS_4TypeE:
 1043|  16.6k|Result BinaryReaderIR::OnLoopExpr(Type sig_type) {
 1044|  16.6k|  auto expr = std::make_unique<LoopExpr>();
 1045|  16.6k|  SetBlockDeclaration(&expr->block.decl, sig_type);
 1046|  16.6k|  ExprList* expr_list = &expr->block.exprs;
 1047|  16.6k|  CHECK_RESULT(AppendExpr(std::move(expr)));
  ------------------
  |  |   55|  16.6k|  do {                              \
  |  |   56|  16.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 16.6k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  16.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1048|  16.6k|  return PushLabel(LabelType::Loop, expr_list);
 1049|  16.6k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR16OnMemoryCopyExprEjj:
 1051|  1.18k|Result BinaryReaderIR::OnMemoryCopyExpr(Index destmemidx, Index srcmemidx) {
 1052|  1.18k|  return AppendExpr(std::make_unique<MemoryCopyExpr>(
 1053|  1.18k|      Var(destmemidx, GetLocation()), Var(srcmemidx, GetLocation())));
 1054|  1.18k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnDataDropExprEj:
 1056|     22|Result BinaryReaderIR::OnDataDropExpr(Index segment) {
 1057|     22|  return AppendExpr(
 1058|     22|      std::make_unique<DataDropExpr>(Var(segment, GetLocation())));
 1059|     22|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR16OnMemoryFillExprEj:
 1061|    573|Result BinaryReaderIR::OnMemoryFillExpr(Index memidx) {
 1062|    573|  return AppendExpr(
 1063|    573|      std::make_unique<MemoryFillExpr>(Var(memidx, GetLocation())));
 1064|    573|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR16OnMemoryGrowExprEj:
 1066|  9.16k|Result BinaryReaderIR::OnMemoryGrowExpr(Index memidx) {
 1067|  9.16k|  return AppendExpr(
 1068|  9.16k|      std::make_unique<MemoryGrowExpr>(Var(memidx, GetLocation())));
 1069|  9.16k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR16OnMemoryInitExprEjj:
 1071|     46|Result BinaryReaderIR::OnMemoryInitExpr(Index segment, Index memidx) {
 1072|     46|  return AppendExpr(std::make_unique<MemoryInitExpr>(
 1073|     46|      Var(segment, GetLocation()), Var(memidx, GetLocation())));
 1074|     46|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR16OnMemorySizeExprEj:
 1076|  6.00k|Result BinaryReaderIR::OnMemorySizeExpr(Index memidx) {
 1077|  6.00k|  return AppendExpr(
 1078|  6.00k|      std::make_unique<MemorySizeExpr>(Var(memidx, GetLocation())));
 1079|  6.00k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnTableCopyExprEjj:
 1081|    879|Result BinaryReaderIR::OnTableCopyExpr(Index dst_index, Index src_index) {
 1082|    879|  return AppendExpr(std::make_unique<TableCopyExpr>(
 1083|    879|      Var(dst_index, GetLocation()), Var(src_index, GetLocation())));
 1084|    879|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnElemDropExprEj:
 1086|    395|Result BinaryReaderIR::OnElemDropExpr(Index segment) {
 1087|    395|  return AppendExpr(
 1088|    395|      std::make_unique<ElemDropExpr>(Var(segment, GetLocation())));
 1089|    395|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnTableInitExprEjj:
 1091|    310|Result BinaryReaderIR::OnTableInitExpr(Index segment, Index table_index) {
 1092|    310|  return AppendExpr(std::make_unique<TableInitExpr>(
 1093|    310|      Var(segment, GetLocation()), Var(table_index, GetLocation())));
 1094|    310|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnTableGetExprEj:
 1096|  3.93k|Result BinaryReaderIR::OnTableGetExpr(Index table_index) {
 1097|  3.93k|  return AppendExpr(
 1098|  3.93k|      std::make_unique<TableGetExpr>(Var(table_index, GetLocation())));
 1099|  3.93k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnTableSetExprEj:
 1101|  6.46k|Result BinaryReaderIR::OnTableSetExpr(Index table_index) {
 1102|  6.46k|  return AppendExpr(
 1103|  6.46k|      std::make_unique<TableSetExpr>(Var(table_index, GetLocation())));
 1104|  6.46k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnTableGrowExprEj:
 1106|    618|Result BinaryReaderIR::OnTableGrowExpr(Index table_index) {
 1107|    618|  return AppendExpr(
 1108|    618|      std::make_unique<TableGrowExpr>(Var(table_index, GetLocation())));
 1109|    618|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnTableSizeExprEj:
 1111|    706|Result BinaryReaderIR::OnTableSizeExpr(Index table_index) {
 1112|    706|  return AppendExpr(
 1113|    706|      std::make_unique<TableSizeExpr>(Var(table_index, GetLocation())));
 1114|    706|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnTableFillExprEj:
 1116|    602|Result BinaryReaderIR::OnTableFillExpr(Index table_index) {
 1117|    602|  return AppendExpr(
 1118|    602|      std::make_unique<TableFillExpr>(Var(table_index, GetLocation())));
 1119|    602|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnRefFuncExprEj:
 1121|  7.08k|Result BinaryReaderIR::OnRefFuncExpr(Index func_index) {
 1122|  7.08k|  return AppendExpr(
 1123|  7.08k|      std::make_unique<RefFuncExpr>(Var(func_index, GetLocation())));
 1124|  7.08k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnRefNullExprENS_4TypeE:
 1126|  3.37k|Result BinaryReaderIR::OnRefNullExpr(Type type) {
 1127|  3.37k|  return AppendExpr(std::make_unique<RefNullExpr>(type));
 1128|  3.37k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnRefIsNullExprEv:
 1130|  1.38k|Result BinaryReaderIR::OnRefIsNullExpr() {
 1131|  1.38k|  return AppendExpr(std::make_unique<RefIsNullExpr>());
 1132|  1.38k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR9OnNopExprEv:
 1134|   112k|Result BinaryReaderIR::OnNopExpr() {
 1135|   112k|  return AppendExpr(std::make_unique<NopExpr>());
 1136|   112k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnRethrowExprEj:
 1138|  15.2k|Result BinaryReaderIR::OnRethrowExpr(Index depth) {
 1139|  15.2k|  return AppendExpr(std::make_unique<RethrowExpr>(Var(depth, GetLocation())));
 1140|  15.2k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR12OnReturnExprEv:
 1142|  6.26k|Result BinaryReaderIR::OnReturnExpr() {
 1143|  6.26k|  return AppendExpr(std::make_unique<ReturnExpr>());
 1144|  6.26k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR16OnReturnCallExprEj:
  903|  2.38k|Result BinaryReaderIR::OnReturnCallExpr(Index func_index) {
  904|  2.38k|  if (current_func_) {
  ------------------
  |  Branch (904:7): [True: 255, False: 2.12k]
  ------------------
  905|       |    // syntactically, a return_call expr can occur in an init expression
  906|       |    // (outside a function)
  907|    255|    current_func_->features_used.tailcall = true;
  908|    255|  }
  909|  2.38k|  return AppendExpr(
  910|  2.38k|      std::make_unique<ReturnCallExpr>(Var(func_index, GetLocation())));
  911|  2.38k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR24OnReturnCallIndirectExprEjj:
  914|  2.68k|                                                Index table_index) {
  915|  2.68k|  if (current_func_) {
  ------------------
  |  Branch (915:7): [True: 276, False: 2.40k]
  ------------------
  916|       |    // syntactically, a return_call_indirect expr can occur in an init
  917|       |    // expression (outside a function)
  918|    276|    current_func_->features_used.tailcall = true;
  919|    276|  }
  920|  2.68k|  auto expr = std::make_unique<ReturnCallIndirectExpr>();
  921|  2.68k|  SetFuncDeclaration(&expr->decl, Var(sig_index, GetLocation()));
  922|  2.68k|  expr->table = Var(table_index, GetLocation());
  923|  2.68k|  FuncType* type = module_->GetFuncType(Var(sig_index, GetLocation()));
  924|  2.68k|  if (type) {
  ------------------
  |  Branch (924:7): [True: 69, False: 2.61k]
  ------------------
  925|     69|    type->features_used.tailcall = true;
  926|     69|  }
  927|  2.68k|  return AppendExpr(std::move(expr));
  928|  2.68k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR12OnSelectExprEjPNS_4TypeE:
 1146|  11.8k|Result BinaryReaderIR::OnSelectExpr(Index result_count, Type* result_types) {
 1147|  11.8k|  TypeVector results;
 1148|  11.8k|  results.assign(result_types, result_types + result_count);
 1149|  11.8k|  return AppendExpr(std::make_unique<SelectExpr>(results));
 1150|  11.8k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11OnStoreExprENS_6OpcodeEjmm:
 1165|  23.3k|                                   Address offset) {
 1166|  23.3k|  return AppendExpr(std::make_unique<StoreExpr>(
 1167|  23.3k|      opcode, Var(memidx, GetLocation()), 1 << alignment_log2, offset));
 1168|  23.3k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11OnThrowExprEj:
 1170|  8.86k|Result BinaryReaderIR::OnThrowExpr(Index tag_index) {
 1171|  8.86k|  return AppendExpr(std::make_unique<ThrowExpr>(Var(tag_index, GetLocation())));
 1172|  8.86k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR9OnTryExprENS_4TypeE:
 1179|   427k|Result BinaryReaderIR::OnTryExpr(Type sig_type) {
 1180|   427k|  auto expr_ptr = std::make_unique<TryExpr>();
 1181|       |  // Save expr so it can be used below, after expr_ptr has been moved.
 1182|   427k|  TryExpr* expr = expr_ptr.get();
 1183|   427k|  ExprList* expr_list = &expr->block.exprs;
 1184|   427k|  SetBlockDeclaration(&expr->block.decl, sig_type);
 1185|   427k|  CHECK_RESULT(AppendExpr(std::move(expr_ptr)));
  ------------------
  |  |   55|   427k|  do {                              \
  |  |   56|   427k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 427k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|   427k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1186|   427k|  module_->features_used.exceptions = true;
 1187|   427k|  return PushLabel(LabelType::Try, expr_list, expr);
 1188|   427k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11OnUnaryExprENS_6OpcodeE:
 1251|   161k|Result BinaryReaderIR::OnUnaryExpr(Opcode opcode) {
 1252|   161k|  return AppendExpr(std::make_unique<UnaryExpr>(opcode));
 1253|   161k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnTernaryExprENS_6OpcodeE:
 1255|  7.70k|Result BinaryReaderIR::OnTernaryExpr(Opcode opcode) {
 1256|  7.70k|  return AppendExpr(std::make_unique<TernaryExpr>(opcode));
 1257|  7.70k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR17OnUnreachableExprEv:
 1259|   577k|Result BinaryReaderIR::OnUnreachableExpr() {
 1260|   577k|  return AppendExpr(std::make_unique<UnreachableExpr>());
 1261|   577k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15EndFunctionBodyEj:
 1263|    291|Result BinaryReaderIR::EndFunctionBody(Index index) {
 1264|    291|  current_func_ = nullptr;
 1265|    291|  if (!label_stack_.empty()) {
  ------------------
  |  Branch (1265:7): [True: 0, False: 291]
  ------------------
 1266|      0|    PrintError("function %" PRIindex " missing end marker", index);
 1267|      0|    return Result::Error;
 1268|      0|  }
 1269|    291|  return Result::Ok;
 1270|    291|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR16OnSimdLaneOpExprENS_6OpcodeEm:
 1272|  10.6k|Result BinaryReaderIR::OnSimdLaneOpExpr(Opcode opcode, uint64_t value) {
 1273|  10.6k|  return AppendExpr(std::make_unique<SimdLaneOpExpr>(opcode, value));
 1274|  10.6k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR19OnSimdShuffleOpExprENS_6OpcodeE4v128:
 1294|    721|Result BinaryReaderIR::OnSimdShuffleOpExpr(Opcode opcode, v128 value) {
 1295|    721|  return AppendExpr(std::make_unique<SimdShuffleOpExpr>(opcode, value));
 1296|    721|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR18OnSimdLoadLaneExprENS_6OpcodeEjmmm:
 1280|  2.45k|                                          uint64_t value) {
 1281|  2.45k|  return AppendExpr(std::make_unique<SimdLoadLaneExpr>(
 1282|  2.45k|      opcode, Var(memidx, GetLocation()), 1 << alignment_log2, offset, value));
 1283|  2.45k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR19OnSimdStoreLaneExprENS_6OpcodeEjmmm:
 1289|  2.18k|                                           uint64_t value) {
 1290|  2.18k|  return AppendExpr(std::make_unique<SimdStoreLaneExpr>(
 1291|  2.18k|      opcode, Var(memidx, GetLocation()), 1 << alignment_log2, offset, value));
 1292|  2.18k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnLoadSplatExprENS_6OpcodeEjmm:
 1301|  4.22k|                                       Address offset) {
 1302|  4.22k|  return AppendExpr(std::make_unique<LoadSplatExpr>(
 1303|  4.22k|      opcode, Var(memidx, GetLocation()), 1 << alignment_log2, offset));
 1304|  4.22k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnLoadZeroExprENS_6OpcodeEjmm:
 1309|  1.84k|                                      Address offset) {
 1310|  1.84k|  return AppendExpr(std::make_unique<LoadZeroExpr>(
 1311|  1.84k|      opcode, Var(memidx, GetLocation()), 1 << alignment_log2, offset));
 1312|  1.84k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR18OnElemSegmentCountEj:
 1314|  3.88k|Result BinaryReaderIR::OnElemSegmentCount(Index count) {
 1315|  3.88k|  WABT_TRY
 1316|  3.88k|  module_->elem_segments.reserve(count);
 1317|  3.88k|  WABT_CATCH_BAD_ALLOC
 1318|  3.88k|  return Result::Ok;
 1319|  3.88k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR16BeginElemSegmentEjjh:
 1323|  6.22k|                                        uint8_t flags) {
 1324|  6.22k|  auto field = std::make_unique<ElemSegmentModuleField>(GetLocation());
 1325|  6.22k|  ElemSegment& elem_segment = field->elem_segment;
 1326|  6.22k|  elem_segment.table_var = Var(table_index, GetLocation());
 1327|  6.22k|  if ((flags & SegDeclared) == SegDeclared) {
  ------------------
  |  Branch (1327:7): [True: 133, False: 6.09k]
  ------------------
 1328|    133|    elem_segment.kind = SegmentKind::Declared;
 1329|  6.09k|  } else if ((flags & SegPassive) == SegPassive) {
  ------------------
  |  Branch (1329:14): [True: 966, False: 5.12k]
  ------------------
 1330|    966|    elem_segment.kind = SegmentKind::Passive;
 1331|  5.12k|  } else {
 1332|  5.12k|    elem_segment.kind = SegmentKind::Active;
 1333|  5.12k|  }
 1334|  6.22k|  module_->AppendField(std::move(field));
 1335|  6.22k|  return Result::Ok;
 1336|  6.22k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR24BeginElemSegmentInitExprEj:
 1342|  5.12k|Result BinaryReaderIR::BeginElemSegmentInitExpr(Index index) {
 1343|  5.12k|  assert(index == module_->elem_segments.size() - 1);
 1344|  5.12k|  ElemSegment* segment = module_->elem_segments[index];
 1345|  5.12k|  return BeginInitExpr(&segment->offset);
 1346|  5.12k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR22EndElemSegmentInitExprEj:
 1356|  1.68k|Result BinaryReaderIR::EndElemSegmentInitExpr(Index index) {
 1357|  1.68k|  return EndInitExpr();
 1358|  1.68k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR21OnElemSegmentElemTypeEjNS_4TypeE:
 1360|  2.68k|Result BinaryReaderIR::OnElemSegmentElemType(Index index, Type elem_type) {
 1361|  2.68k|  assert(index == module_->elem_segments.size() - 1);
 1362|  2.68k|  ElemSegment* segment = module_->elem_segments[index];
 1363|  2.68k|  segment->elem_type = elem_type;
 1364|  2.68k|  return Result::Ok;
 1365|  2.68k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR26OnElemSegmentElemExprCountEjj:
 1367|  2.62k|Result BinaryReaderIR::OnElemSegmentElemExprCount(Index index, Index count) {
 1368|  2.62k|  assert(index == module_->elem_segments.size() - 1);
 1369|  2.62k|  ElemSegment* segment = module_->elem_segments[index];
 1370|  2.62k|  WABT_TRY
 1371|  2.62k|  segment->elem_exprs.reserve(count);
 1372|  2.62k|  WABT_CATCH_BAD_ALLOC
 1373|  2.62k|  return Result::Ok;
 1374|  2.62k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13BeginElemExprEjj:
 1376|  6.70k|Result BinaryReaderIR::BeginElemExpr(Index elem_index, Index expr_index) {
 1377|  6.70k|  assert(elem_index == module_->elem_segments.size() - 1);
 1378|  6.70k|  ElemSegment* segment = module_->elem_segments[elem_index];
 1379|  6.70k|  assert(expr_index == segment->elem_exprs.size());
 1380|  6.70k|  segment->elem_exprs.emplace_back();
 1381|  6.70k|  return BeginInitExpr(&segment->elem_exprs.back());
 1382|  6.70k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11EndElemExprEjj:
 1384|  6.53k|Result BinaryReaderIR::EndElemExpr(Index elem_index, Index expr_index) {
 1385|  6.53k|  return EndInitExpr();
 1386|  6.53k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR18OnDataSegmentCountEj:
 1388|  2.99k|Result BinaryReaderIR::OnDataSegmentCount(Index count) {
 1389|  2.99k|  WABT_TRY
 1390|  2.99k|  module_->data_segments.reserve(count);
 1391|  2.99k|  WABT_CATCH_BAD_ALLOC
 1392|  2.99k|  return Result::Ok;
 1393|  2.99k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR16BeginDataSegmentEjjh:
 1397|  4.09k|                                        uint8_t flags) {
 1398|  4.09k|  auto field = std::make_unique<DataSegmentModuleField>(GetLocation());
 1399|  4.09k|  DataSegment& data_segment = field->data_segment;
 1400|  4.09k|  data_segment.memory_var = Var(memory_index, GetLocation());
 1401|  4.09k|  if ((flags & SegPassive) == SegPassive) {
  ------------------
  |  Branch (1401:7): [True: 721, False: 3.37k]
  ------------------
 1402|    721|    data_segment.kind = SegmentKind::Passive;
 1403|  3.37k|  } else {
 1404|  3.37k|    data_segment.kind = SegmentKind::Active;
 1405|  3.37k|  }
 1406|  4.09k|  module_->AppendField(std::move(field));
 1407|  4.09k|  return Result::Ok;
 1408|  4.09k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR24BeginDataSegmentInitExprEj:
 1410|  3.37k|Result BinaryReaderIR::BeginDataSegmentInitExpr(Index index) {
 1411|  3.37k|  assert(index == module_->data_segments.size() - 1);
 1412|  3.37k|  DataSegment* segment = module_->data_segments[index];
 1413|  3.37k|  return BeginInitExpr(&segment->offset);
 1414|  3.37k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR22EndDataSegmentInitExprEj:
 1416|    622|Result BinaryReaderIR::EndDataSegmentInitExpr(Index index) {
 1417|    622|  return EndInitExpr();
 1418|    622|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR17OnDataSegmentDataEjPKvm:
 1422|  1.25k|                                         Address size) {
 1423|  1.25k|  assert(index == module_->data_segments.size() - 1);
 1424|  1.25k|  DataSegment* segment = module_->data_segments[index];
 1425|  1.25k|  segment->data.resize(size);
 1426|  1.25k|  if (size > 0) {
  ------------------
  |  Branch (1426:7): [True: 546, False: 706]
  ------------------
 1427|    546|    memcpy(segment->data.data(), data, size);
 1428|    546|  }
 1429|  1.25k|  return Result::Ok;
 1430|  1.25k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114MakeDollarNameENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
 1442|  57.9k|static std::string MakeDollarName(std::string_view name) {
 1443|  57.9k|  return std::string("$") + std::string(name);
 1444|  57.9k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13GetUniqueNameEPNS_11BindingHashERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEE:
  492|  57.9k|                                          const std::string& orig_name) {
  493|  57.9k|  int counter = 1;
  494|  57.9k|  std::string unique_name = orig_name;
  495|  24.0M|  while (bindings->count(unique_name) != 0) {
  ------------------
  |  Branch (495:10): [True: 23.9M, False: 57.9k]
  ------------------
  496|  23.9M|    unique_name = orig_name + "." + std::to_string(counter++);
  497|  23.9M|  }
  498|  57.9k|  return unique_name;
  499|  57.9k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13SetGlobalNameEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
 1455|  11.6k|Result BinaryReaderIR::SetGlobalName(Index index, std::string_view name) {
 1456|  11.6k|  if (name.empty()) {
  ------------------
  |  Branch (1456:7): [True: 819, False: 10.8k]
  ------------------
 1457|    819|    return Result::Ok;
 1458|    819|  }
 1459|  10.8k|  if (index >= module_->globals.size()) {
  ------------------
  |  Branch (1459:7): [True: 469, False: 10.3k]
  ------------------
 1460|    469|    PrintError("invalid global index: %" PRIindex, index);
  ------------------
  |  |   80|    469|#define PRIindex "u"
  ------------------
 1461|    469|    return Result::Error;
 1462|    469|  }
 1463|  10.3k|  Global* glob = module_->globals[index];
 1464|  10.3k|  std::string dollar_name =
 1465|  10.3k|      GetUniqueName(&module_->global_bindings, MakeDollarName(name));
 1466|  10.3k|  glob->name = dollar_name;
 1467|  10.3k|  module_->global_bindings.emplace(dollar_name, Binding(index));
 1468|  10.3k|  return Result::Ok;
 1469|  10.8k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR12SetTableNameEjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEE:
 1503|  42.1k|Result BinaryReaderIR::SetTableName(Index index, std::string_view name) {
 1504|  42.1k|  if (name.empty()) {
  ------------------
  |  Branch (1504:7): [True: 292, False: 41.8k]
  ------------------
 1505|    292|    return Result::Ok;
 1506|    292|  }
 1507|  41.8k|  if (index >= module_->tables.size()) {
  ------------------
  |  Branch (1507:7): [True: 293, False: 41.5k]
  ------------------
 1508|    293|    PrintError("invalid table index: %" PRIindex, index);
  ------------------
  |  |   80|    293|#define PRIindex "u"
  ------------------
 1509|    293|    return Result::Error;
 1510|    293|  }
 1511|  41.5k|  Table* table = module_->tables[index];
 1512|  41.5k|  std::string dollar_name =
 1513|  41.5k|      GetUniqueName(&module_->table_bindings, MakeDollarName(name));
 1514|  41.5k|  table->name = dollar_name;
 1515|  41.5k|  module_->table_bindings.emplace(dollar_name, Binding(index));
 1516|  41.5k|  return Result::Ok;
 1517|  41.8k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR22OnGenericCustomSectionENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEPKvm:
 1780|   507k|                                              Offset size) {
 1781|   507k|  Custom custom = Custom(GetLocation(), name);
 1782|   507k|  custom.data.resize(size);
 1783|   507k|  if (size > 0) {
  ------------------
  |  Branch (1783:7): [True: 379k, False: 127k]
  ------------------
 1784|   379k|    memcpy(custom.data.data(), data, size);
 1785|   379k|  }
 1786|   507k|  module_->customs.push_back(std::move(custom));
 1787|   507k|  return Result::Ok;
 1788|   507k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR12OnDataSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEjjj:
 1691|  12.1k|                                    uint32_t size) {
 1692|  12.1k|  if (name.empty()) {
  ------------------
  |  Branch (1692:7): [True: 840, False: 11.3k]
  ------------------
 1693|    840|    return Result::Ok;
 1694|    840|  }
 1695|  11.3k|  if (flags & WABT_SYMBOL_FLAG_UNDEFINED) {
  ------------------
  |  |  326|  11.3k|#define WABT_SYMBOL_FLAG_UNDEFINED 0x10
  ------------------
  |  Branch (1695:7): [True: 522, False: 10.8k]
  ------------------
 1696|       |    // Refers to data in another file, `segment` not valid.
 1697|    522|    return Result::Ok;
 1698|    522|  }
 1699|  10.8k|  if (offset) {
  ------------------
  |  Branch (1699:7): [True: 429, False: 10.3k]
  ------------------
 1700|       |    // If it is pointing into the data segment, then it's not really naming
 1701|       |    // the whole segment.
 1702|    429|    return Result::Ok;
 1703|    429|  }
 1704|  10.3k|  if (segment >= module_->data_segments.size()) {
  ------------------
  |  Branch (1704:7): [True: 5.34k, False: 5.04k]
  ------------------
 1705|  5.34k|    PrintError("invalid data segment index: %" PRIindex, segment);
  ------------------
  |  |   80|  5.34k|#define PRIindex "u"
  ------------------
 1706|  5.34k|    return Result::Error;
 1707|  5.34k|  }
 1708|  5.04k|  DataSegment* seg = module_->data_segments[segment];
 1709|  5.04k|  std::string dollar_name =
 1710|  5.04k|      GetUniqueName(&module_->data_segment_bindings, MakeDollarName(name));
 1711|  5.04k|  seg->name = dollar_name;
 1712|  5.04k|  module_->data_segment_bindings.emplace(dollar_name, Binding(segment));
 1713|  5.04k|  return Result::Ok;
 1714|  10.3k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR16OnFunctionSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
 1719|  22.1k|                                        Index func_index) {
 1720|  22.1k|  if (name.empty()) {
  ------------------
  |  Branch (1720:7): [True: 19.2k, False: 2.87k]
  ------------------
 1721|  19.2k|    return Result::Ok;
 1722|  19.2k|  }
 1723|  2.87k|  if (func_index >= module_->funcs.size()) {
  ------------------
  |  Branch (1723:7): [True: 816, False: 2.05k]
  ------------------
 1724|    816|    PrintError("invalid function index: %" PRIindex, func_index);
  ------------------
  |  |   80|    816|#define PRIindex "u"
  ------------------
 1725|    816|    return Result::Error;
 1726|    816|  }
 1727|  2.05k|  Func* func = module_->funcs[func_index];
 1728|  2.05k|  if (!func->name.empty()) {
  ------------------
  |  Branch (1728:7): [True: 1.91k, False: 139]
  ------------------
 1729|       |    // The name section has already named this function.
 1730|  1.91k|    return Result::Ok;
 1731|  1.91k|  }
 1732|    139|  std::string dollar_name =
 1733|    139|      GetUniqueName(&module_->func_bindings, MakeDollarName(name));
 1734|    139|  func->name = dollar_name;
 1735|    139|  module_->func_bindings.emplace(dollar_name, Binding(func_index));
 1736|    139|  return Result::Ok;
 1737|  2.05k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnGlobalSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
 1742|  11.6k|                                      Index global_index) {
 1743|  11.6k|  return SetGlobalName(global_index, name);
 1744|  11.6k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15OnSectionSymbolEjjj:
 1748|    513|                                       Index section_index) {
 1749|    513|  return Result::Ok;
 1750|    513|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR11OnTagSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
 1755|  2.70k|                                   Index tag_index) {
 1756|  2.70k|  if (name.empty()) {
  ------------------
  |  Branch (1756:7): [True: 668, False: 2.04k]
  ------------------
 1757|    668|    return Result::Ok;
 1758|    668|  }
 1759|  2.04k|  if (tag_index >= module_->tags.size()) {
  ------------------
  |  Branch (1759:7): [True: 1.19k, False: 847]
  ------------------
 1760|  1.19k|    PrintError("invalid tag index: %" PRIindex, tag_index);
  ------------------
  |  |   80|  1.19k|#define PRIindex "u"
  ------------------
 1761|  1.19k|    return Result::Error;
 1762|  1.19k|  }
 1763|    847|  Tag* tag = module_->tags[tag_index];
 1764|    847|  std::string dollar_name =
 1765|    847|      GetUniqueName(&module_->tag_bindings, MakeDollarName(name));
 1766|    847|  tag->name = dollar_name;
 1767|    847|  module_->tag_bindings.emplace(dollar_name, Binding(tag_index));
 1768|    847|  return Result::Ok;
 1769|  2.04k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13OnTableSymbolEjjNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEj:
 1774|  42.1k|                                     Index table_index) {
 1775|  42.1k|  return SetTableName(table_index, name);
 1776|  42.1k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR15BeginTagSectionEm:
  321|    131|  Result BeginTagSection(Offset size) override { return Result::Ok; }
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR10OnTagCountEj:
  322|     87|  Result OnTagCount(Index count) override { return Result::Ok; }
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR9OnTagTypeEjj:
 1677|  3.57k|Result BinaryReaderIR::OnTagType(Index index, Index sig_index) {
 1678|  3.57k|  auto field = std::make_unique<TagModuleField>(GetLocation());
 1679|  3.57k|  Tag& tag = field->tag;
 1680|  3.57k|  SetFuncDeclaration(&tag.decl, Var(sig_index, GetLocation()));
 1681|  3.57k|  module_->AppendField(std::move(field));
 1682|  3.57k|  module_->features_used.exceptions = true;
 1683|  3.57k|  return Result::Ok;
 1684|  3.57k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR13EndTagSectionEv:
  324|     24|  Result EndTagSection() override { return Result::Ok; }
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR24BeginCodeMetadataSectionENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEm:
 1638|   189k|                                                Offset size) {
 1639|   189k|  current_metadata_name_ = name;
 1640|   189k|  return Result::Ok;
 1641|   189k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR23OnCodeMetadataFuncCountEj:
 1643|   188k|Result BinaryReaderIR::OnCodeMetadataFuncCount(Index count) {
 1644|   188k|  return Result::Ok;
 1645|   188k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR19OnCodeMetadataCountEjj:
 1647|   497k|Result BinaryReaderIR::OnCodeMetadataCount(Index function_index, Index count) {
 1648|   497k|  code_metadata_queue_.push_func(module_->funcs[function_index]);
 1649|   497k|  return Result::Ok;
 1650|   497k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_121CodeMetadataExprQueue9push_funcEPNS_4FuncE:
   58|   497k|  void push_func(Func* f) { entries.emplace_back(f); }
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_121CodeMetadataExprQueue5EntryC2EPNS_4FuncE:
   52|   497k|    Entry(Func* f) : func(f) {}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_114BinaryReaderIR14OnCodeMetadataEmPKvm:
 1654|  4.64k|                                      Address size) {
 1655|  4.64k|  std::vector<uint8_t> data_(static_cast<const uint8_t*>(data),
 1656|  4.64k|                             static_cast<const uint8_t*>(data) + size);
 1657|  4.64k|  auto meta = std::make_unique<CodeMetadataExpr>(current_metadata_name_,
 1658|  4.64k|                                                 std::move(data_));
 1659|  4.64k|  meta->loc.offset = offset;
 1660|  4.64k|  code_metadata_queue_.push_metadata(std::move(meta));
 1661|  4.64k|  return Result::Ok;
 1662|  4.64k|}
binary-reader-ir.cc:_ZN4wabt12_GLOBAL__N_121CodeMetadataExprQueue13push_metadataENSt3__110unique_ptrINS_16CodeMetadataExprENS2_14default_deleteIS4_EEEE:
   59|  4.64k|  void push_metadata(std::unique_ptr<CodeMetadataExpr> meta) {
   60|  4.64k|    assert(!entries.empty());
   61|  4.64k|    entries.back().func_queue.push_back(std::move(meta));
   62|  4.64k|  }

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

_ZN4wabt10ReadBinaryEPKvmPNS_20BinaryReaderDelegateERKNS_17ReadBinaryOptionsE:
 3029|  14.3k|                  const ReadBinaryOptions& options) {
 3030|  14.3k|  BinaryReader reader(data, size, delegate, options);
 3031|  14.3k|  return reader.ReadModule(
 3032|  14.3k|      BinaryReader::ReadModuleOptions{options.stop_on_first_error});
 3033|  14.3k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReaderC2EPKvmPNS_20BinaryReaderDelegateERKNS_17ReadBinaryOptionsE:
  218|  14.3k|      last_known_section_(BinarySection::Invalid) {
  219|  14.3k|  delegate->OnSetState(&state_);
  220|  14.3k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadModuleERKNS1_17ReadModuleOptionsE:
 3003|  14.3k|Result BinaryReader::ReadModule(const ReadModuleOptions& options) {
 3004|  14.3k|  uint32_t magic = 0;
 3005|  14.3k|  CHECK_RESULT(ReadU32(&magic, "magic"));
  ------------------
  |  |   55|  14.3k|  do {                              \
  |  |   56|  14.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 43, False: 14.2k]
  |  |  ------------------
  |  |   57|     43|      return ::wabt::Result::Error; \
  |  |   58|     43|    }                               \
  |  |   59|  14.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3006|  14.2k|  ERROR_UNLESS(magic == WABT_BINARY_MAGIC, "bad magic value");
  ------------------
  |  |   48|  14.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  14.2k|  do {                         \
  |  |  |  |   42|  14.2k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 74, False: 14.2k]
  |  |  |  |  ------------------
  |  |  |  |   43|     74|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     74|      return Result::Error;    \
  |  |  |  |   45|     74|    }                          \
  |  |  |  |   46|  14.2k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3007|  14.2k|  uint32_t version = 0;
 3008|  14.2k|  CHECK_RESULT(ReadU32(&version, "version"));
  ------------------
  |  |   55|  14.2k|  do {                              \
  |  |   56|  14.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 14.2k]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|  14.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3009|  14.2k|  ERROR_UNLESS(version == WABT_BINARY_VERSION,
  ------------------
  |  |   48|  14.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  14.2k|  do {                         \
  |  |  |  |   42|  14.2k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 49, False: 14.1k]
  |  |  |  |  ------------------
  |  |  |  |   43|     49|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     49|      return Result::Error;    \
  |  |  |  |   45|     49|    }                          \
  |  |  |  |   46|  14.2k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3010|  14.1k|               "bad wasm file version: %#x (expected %#x)", version,
 3011|  14.1k|               WABT_BINARY_VERSION);
 3012|       |
 3013|  14.1k|  CALLBACK(BeginModule, version);
  ------------------
  |  |   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")
  ------------------
 3014|  14.1k|  CHECK_RESULT(ReadSections(ReadSectionsOptions{options.stop_on_first_error}));
  ------------------
  |  |   55|  14.1k|  do {                              \
  |  |   56|  14.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11.9k, False: 2.18k]
  |  |  ------------------
  |  |   57|  11.9k|      return ::wabt::Result::Error; \
  |  |   58|  11.9k|    }                               \
  |  |   59|  14.1k|  } 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|  2.18k|  ERROR_UNLESS(num_function_signatures_ == num_function_bodies_,
  ------------------
  |  |   48|  2.18k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  2.18k|  do {                         \
  |  |  |  |   42|  2.18k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 113, False: 2.07k]
  |  |  |  |  ------------------
  |  |  |  |   43|    113|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    113|      return Result::Error;    \
  |  |  |  |   45|    113|    }                          \
  |  |  |  |   46|  2.18k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3018|  2.07k|               "function signature count != function body count");
 3019|  2.07k|  CALLBACK0(EndModule);
  ------------------
  |  |   58|  2.07k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3020|       |
 3021|  2.07k|  return Result::Ok;
 3022|  2.07k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadU32EPjPKc:
  298|  28.5k|Result BinaryReader::ReadU32(uint32_t* out_value, const char* desc) {
  299|  28.5k|  return ReadT(out_value, "uint32_t", desc);
  300|  28.5k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTIjEENS_6ResultEPT_PKcS7_:
  277|  30.4k|                           const char* desc) {
  278|  30.4k|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (278:7): [True: 71, False: 30.3k]
  ------------------
  279|     71|    PrintError("unable to read %s: %s", type_name, desc);
  280|     71|    return Result::Error;
  281|     71|  }
  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|  30.3k|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  289|  30.3k|#endif
  290|  30.3k|  state_.offset += sizeof(T);
  291|  30.3k|  return Result::Ok;
  292|  30.4k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10PrintErrorEPKcz:
  223|  2.69M|                                                       ...) {
  224|  2.69M|  ErrorLevel error_level =
  225|  2.69M|      reading_custom_section_ && !options_.fail_on_custom_section_error
  ------------------
  |  Branch (225:7): [True: 225k, False: 2.46M]
  |  Branch (225:34): [True: 225k, False: 0]
  ------------------
  226|  2.69M|          ? ErrorLevel::Warning
  227|  2.69M|          : ErrorLevel::Error;
  228|       |
  229|  2.69M|  WABT_SNPRINTF_ALLOCA(buffer, length, format);
  ------------------
  |  |   36|  2.69M|  va_list args;                                                            \
  |  |   37|  2.69M|  va_list args_copy;                                                       \
  |  |   38|  2.69M|  va_start(args, format);                                                  \
  |  |   39|  2.69M|  va_copy(args_copy, args);                                                \
  |  |   40|  2.69M|  char fixed_buf[WABT_DEFAULT_SNPRINTF_ALLOCA_BUFSIZE];                    \
  |  |   41|  2.69M|  char* buffer = fixed_buf;                                                \
  |  |   42|  2.69M|  size_t len = wabt_vsnprintf(fixed_buf, sizeof(fixed_buf), format, args); \
  |  |  ------------------
  |  |  |  |  301|  2.69M|#define wabt_vsnprintf vsnprintf
  |  |  ------------------
  |  |   43|  2.69M|  va_end(args);                                                            \
  |  |   44|  2.69M|  if (len + 1 > sizeof(fixed_buf)) {                                       \
  |  |  ------------------
  |  |  |  Branch (44:7): [True: 0, False: 2.69M]
  |  |  ------------------
  |  |   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|  2.69M|  va_end(args_copy)
  ------------------
  230|  2.69M|  Error error(error_level, Location(state_.offset), buffer);
  231|  2.69M|  bool handled = delegate_->OnError(error);
  232|       |
  233|  2.69M|  if (!handled) {
  ------------------
  |  Branch (233:7): [True: 0, False: 2.69M]
  ------------------
  234|       |    // Not great to just print, but we don't want to eat the error either.
  235|      0|    fprintf(stderr, "%07" PRIzx ": %s: %s\n", state_.offset,
  236|      0|            GetErrorLevelName(error_level), buffer);
  237|      0|  }
  238|  2.69M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader12ReadSectionsERKNS1_19ReadSectionsOptionsE:
 2854|  14.1k|Result BinaryReader::ReadSections(const ReadSectionsOptions& options) {
 2855|  14.1k|  Result result = Result::Ok;
 2856|  14.1k|  Index section_index = 0;
 2857|  14.1k|  bool seen_section_code[static_cast<int>(BinarySection::Last) + 1] = {false};
 2858|       |
 2859|  2.94M|  for (; state_.offset < state_.size; ++section_index) {
  ------------------
  |  Branch (2859:10): [True: 2.92M, False: 11.3k]
  ------------------
 2860|  2.92M|    uint8_t section_code;
 2861|  2.92M|    Offset section_size;
 2862|  2.92M|    CHECK_RESULT(ReadU8(&section_code, "section code"));
  ------------------
  |  |   55|  2.92M|  do {                              \
  |  |   56|  2.92M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.92M]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.92M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2863|  2.92M|    CHECK_RESULT(ReadOffset(&section_size, "section size"));
  ------------------
  |  |   55|  2.92M|  do {                              \
  |  |   56|  2.92M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.51k, False: 2.92M]
  |  |  ------------------
  |  |   57|  1.51k|      return ::wabt::Result::Error; \
  |  |   58|  1.51k|    }                               \
  |  |   59|  2.92M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2864|  2.92M|    ReadEndRestoreGuard guard(this);
 2865|  2.92M|    read_end_ = state_.offset + section_size;
 2866|  2.92M|    if (section_code >= kBinarySectionCount) {
  ------------------
  |  Branch (2866:9): [True: 273k, False: 2.65M]
  ------------------
 2867|   273k|      PrintError("invalid section code: %u", section_code);
 2868|   273k|      if (options.stop_on_first_error) {
  ------------------
  |  Branch (2868:11): [True: 0, False: 273k]
  ------------------
 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|   273k|      result = Result::Error;
 2877|   273k|      state_.offset = read_end_;
 2878|   273k|      continue;
 2879|   273k|    }
 2880|       |
 2881|  2.65M|    BinarySection section = static_cast<BinarySection>(section_code);
 2882|  2.65M|    if (section != BinarySection::Custom) {
  ------------------
  |  Branch (2882:9): [True: 14.2k, False: 2.64M]
  ------------------
 2883|  14.2k|      if (seen_section_code[section_code]) {
  ------------------
  |  Branch (2883:11): [True: 138, False: 14.1k]
  ------------------
 2884|    138|        PrintError("multiple %s sections", GetSectionName(section));
 2885|    138|        return Result::Error;
 2886|    138|      }
 2887|  14.1k|      seen_section_code[section_code] = true;
 2888|  14.1k|    }
 2889|       |
 2890|  2.65M|    ERROR_UNLESS(read_end_ <= state_.size,
  ------------------
  |  |   48|  2.65M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  2.65M|  do {                         \
  |  |  |  |   42|  2.65M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 836, False: 2.65M]
  |  |  |  |  ------------------
  |  |  |  |   43|    836|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    836|      return Result::Error;    \
  |  |  |  |   45|    836|    }                          \
  |  |  |  |   46|  2.65M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2891|  2.65M|                 "invalid section size: extends past end");
 2892|       |
 2893|  2.65M|    ERROR_UNLESS(
  ------------------
  |  |   48|  2.65M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  2.65M|  do {                         \
  |  |  |  |   42|  10.4M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 145k, False: 2.50M]
  |  |  |  |  |  Branch (42:9): [True: 2.50M, False: 2.38k]
  |  |  |  |  |  Branch (42:9): [True: 2.11k, False: 272]
  |  |  |  |  ------------------
  |  |  |  |   43|    272|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    272|      return Result::Error;    \
  |  |  |  |   45|    272|    }                          \
  |  |  |  |   46|  2.65M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2894|  2.65M|        last_known_section_ == BinarySection::Invalid ||
 2895|  2.65M|            section == BinarySection::Custom ||
 2896|  2.65M|            GetSectionOrder(section) > GetSectionOrder(last_known_section_),
 2897|  2.65M|        "section %s out of order", GetSectionName(section));
 2898|       |
 2899|  2.65M|    ERROR_UNLESS(!did_read_names_section_ || section == BinarySection::Custom,
  ------------------
  |  |   48|  2.65M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  2.65M|  do {                         \
  |  |  |  |   42|  5.30M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 2.65M, False: 0]
  |  |  |  |  |  Branch (42:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|  2.65M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2900|  2.65M|                 "%s section can not occur after Name section",
 2901|  2.65M|                 GetSectionName(section));
 2902|       |
 2903|  2.65M|    CALLBACK(BeginSection, section_index, section, section_size);
  ------------------
  |  |   61|  2.65M|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.65M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.65M|  do {                         \
  |  |  |  |  |  |   42|  2.65M|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.65M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.65M|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.65M|               #member " callback failed")
  ------------------
 2904|       |
 2905|  2.65M|    bool stop_on_first_error = options_.stop_on_first_error;
 2906|  2.65M|    Result section_result = Result::Error;
 2907|  2.65M|    switch (section) {
  ------------------
  |  Branch (2907:13): [True: 0, False: 2.65M]
  ------------------
 2908|  2.64M|      case BinarySection::Custom:
  ------------------
  |  Branch (2908:7): [True: 2.64M, False: 13.6k]
  ------------------
 2909|  2.64M|        section_result = ReadCustomSection(section_index, section_size);
 2910|  2.64M|        if (options_.fail_on_custom_section_error) {
  ------------------
  |  Branch (2910:13): [True: 0, False: 2.64M]
  ------------------
 2911|      0|          result |= section_result;
 2912|  2.64M|        } else {
 2913|  2.64M|          stop_on_first_error = false;
 2914|  2.64M|        }
 2915|  2.64M|        break;
 2916|  1.13k|      case BinarySection::Type:
  ------------------
  |  Branch (2916:7): [True: 1.13k, False: 2.65M]
  ------------------
 2917|  1.13k|        section_result = ReadTypeSection(section_size);
 2918|  1.13k|        result |= section_result;
 2919|  1.13k|        break;
 2920|    568|      case BinarySection::Import:
  ------------------
  |  Branch (2920:7): [True: 568, False: 2.65M]
  ------------------
 2921|    568|        section_result = ReadImportSection(section_size);
 2922|    568|        result |= section_result;
 2923|    568|        break;
 2924|  1.34k|      case BinarySection::Function:
  ------------------
  |  Branch (2924:7): [True: 1.34k, False: 2.65M]
  ------------------
 2925|  1.34k|        section_result = ReadFunctionSection(section_size);
 2926|  1.34k|        result |= section_result;
 2927|  1.34k|        break;
 2928|    358|      case BinarySection::Table:
  ------------------
  |  Branch (2928:7): [True: 358, False: 2.65M]
  ------------------
 2929|    358|        section_result = ReadTableSection(section_size);
 2930|    358|        result |= section_result;
 2931|    358|        break;
 2932|    573|      case BinarySection::Memory:
  ------------------
  |  Branch (2932:7): [True: 573, False: 2.65M]
  ------------------
 2933|    573|        section_result = ReadMemorySection(section_size);
 2934|    573|        result |= section_result;
 2935|    573|        break;
 2936|    992|      case BinarySection::Global:
  ------------------
  |  Branch (2936:7): [True: 992, False: 2.65M]
  ------------------
 2937|    992|        section_result = ReadGlobalSection(section_size);
 2938|    992|        result |= section_result;
 2939|    992|        break;
 2940|    637|      case BinarySection::Export:
  ------------------
  |  Branch (2940:7): [True: 637, False: 2.65M]
  ------------------
 2941|    637|        section_result = ReadExportSection(section_size);
 2942|    637|        result |= section_result;
 2943|    637|        break;
 2944|     61|      case BinarySection::Start:
  ------------------
  |  Branch (2944:7): [True: 61, False: 2.65M]
  ------------------
 2945|     61|        section_result = ReadStartSection(section_size);
 2946|     61|        result |= section_result;
 2947|     61|        break;
 2948|  3.93k|      case BinarySection::Elem:
  ------------------
  |  Branch (2948:7): [True: 3.93k, False: 2.65M]
  ------------------
 2949|  3.93k|        section_result = ReadElemSection(section_size);
 2950|  3.93k|        result |= section_result;
 2951|  3.93k|        break;
 2952|    680|      case BinarySection::Code:
  ------------------
  |  Branch (2952:7): [True: 680, False: 2.65M]
  ------------------
 2953|    680|        section_result = ReadCodeSection(section_size);
 2954|    680|        result |= section_result;
 2955|    680|        break;
 2956|  3.05k|      case BinarySection::Data:
  ------------------
  |  Branch (2956:7): [True: 3.05k, False: 2.65M]
  ------------------
 2957|  3.05k|        section_result = ReadDataSection(section_size);
 2958|  3.05k|        result |= section_result;
 2959|  3.05k|        break;
 2960|    133|      case BinarySection::Tag:
  ------------------
  |  Branch (2960:7): [True: 133, False: 2.65M]
  ------------------
 2961|    133|        ERROR_UNLESS(options_.features.exceptions_enabled(),
  ------------------
  |  |   48|    133|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    133|  do {                         \
  |  |  |  |   42|    133|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 2, False: 131]
  |  |  |  |  ------------------
  |  |  |  |   43|      2|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      2|      return Result::Error;    \
  |  |  |  |   45|      2|    }                          \
  |  |  |  |   46|    133|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2962|    131|                     "invalid section code: %u",
 2963|    131|                     static_cast<unsigned int>(section));
 2964|    131|        section_result = ReadTagSection(section_size);
 2965|    131|        result |= section_result;
 2966|    131|        break;
 2967|    149|      case BinarySection::DataCount:
  ------------------
  |  Branch (2967:7): [True: 149, False: 2.65M]
  ------------------
 2968|    149|        ERROR_UNLESS(options_.features.bulk_memory_enabled(),
  ------------------
  |  |   48|    149|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    149|  do {                         \
  |  |  |  |   42|    149|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 149]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|    149|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2969|    149|                     "invalid section code: %u",
 2970|    149|                     static_cast<unsigned int>(section));
 2971|    149|        section_result = ReadDataCountSection(section_size);
 2972|    149|        result |= section_result;
 2973|    149|        break;
 2974|      0|      case BinarySection::Invalid:
  ------------------
  |  Branch (2974:7): [True: 0, False: 2.65M]
  ------------------
 2975|      0|        WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
 2976|  2.65M|    }
 2977|       |
 2978|  2.65M|    if (Succeeded(section_result) && state_.offset != read_end_) {
  ------------------
  |  Branch (2978:9): [True: 284k, False: 2.36M]
  |  Branch (2978:38): [True: 46.3k, False: 237k]
  ------------------
 2979|  46.3k|      PrintError("unfinished section (expected end: 0x%" PRIzx ")", read_end_);
 2980|  46.3k|      section_result = Result::Error;
 2981|  46.3k|      result |= section_result;
 2982|  46.3k|    }
 2983|       |
 2984|  2.65M|    if (Failed(section_result)) {
  ------------------
  |  Branch (2984:9): [True: 2.41M, False: 237k]
  ------------------
 2985|  2.41M|      if (stop_on_first_error) {
  ------------------
  |  Branch (2985:11): [True: 0, False: 2.41M]
  ------------------
 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|  2.41M|      state_.offset = read_end_;
 2993|  2.41M|    }
 2994|       |
 2995|  2.65M|    if (section != BinarySection::Custom) {
  ------------------
  |  Branch (2995:9): [True: 13.6k, False: 2.64M]
  ------------------
 2996|  13.6k|      last_known_section_ = section;
 2997|  13.6k|    }
 2998|  2.65M|  }
 2999|       |
 3000|  11.3k|  return result;
 3001|  14.1k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader6ReadU8EPhPKc:
  294|  6.05M|Result BinaryReader::ReadU8(uint8_t* out_value, const char* desc) {
  295|  6.05M|  return ReadT(out_value, "uint8_t", desc);
  296|  6.05M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTIhEENS_6ResultEPT_PKcS7_:
  277|  6.05M|                           const char* desc) {
  278|  6.05M|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (278:7): [True: 18.1k, False: 6.03M]
  ------------------
  279|  18.1k|    PrintError("unable to read %s: %s", type_name, desc);
  280|  18.1k|    return Result::Error;
  281|  18.1k|  }
  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|  6.03M|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  289|  6.03M|#endif
  290|  6.03M|  state_.offset += sizeof(T);
  291|  6.03M|  return Result::Ok;
  292|  6.05M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadOffsetEPmPKc:
  425|  3.07M|Result BinaryReader::ReadOffset(Offset* offset, const char* desc) {
  426|  3.07M|  uint32_t value;
  427|  3.07M|  CHECK_RESULT(ReadU32Leb128(&value, desc));
  ------------------
  |  |   55|  3.07M|  do {                              \
  |  |   56|  3.07M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4.12k, False: 3.07M]
  |  |  ------------------
  |  |   57|  4.12k|      return ::wabt::Result::Error; \
  |  |   58|  4.12k|    }                               \
  |  |   59|  3.07M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  428|  3.07M|  *offset = value;
  429|  3.07M|  return Result::Ok;
  430|  3.07M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadU32Leb128EPjPKc:
  314|  9.48M|Result BinaryReader::ReadU32Leb128(uint32_t* out_value, const char* desc) {
  315|  9.48M|  const uint8_t* p = state_.data + state_.offset;
  316|  9.48M|  const uint8_t* end = state_.data + read_end_;
  317|  9.48M|  size_t bytes_read = wabt::ReadU32Leb128(p, end, out_value);
  318|  9.48M|  ERROR_UNLESS(bytes_read > 0, "unable to read u32 leb128: %s", desc);
  ------------------
  |  |   48|  9.48M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  9.48M|  do {                         \
  |  |  |  |   42|  9.48M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 2.15M, False: 7.33M]
  |  |  |  |  ------------------
  |  |  |  |   43|  2.15M|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  2.15M|      return Result::Error;    \
  |  |  |  |   45|  2.15M|    }                          \
  |  |  |  |   46|  9.48M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  319|  7.33M|  state_.offset += bytes_read;
  320|  7.33M|  return Result::Ok;
  321|  9.48M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardImXadL_ZNS1_9read_end_EEEEC2EPS1_:
   85|  3.04M|        : this_(this_), previous_value_(this_->*member) {}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadCustomSectionEjm:
 2396|  2.64M|                                       Offset section_size) {
 2397|  2.64M|  std::string_view section_name;
 2398|  2.64M|  CHECK_RESULT(ReadStr(&section_name, "section name"));
  ------------------
  |  |   55|  2.64M|  do {                              \
  |  |   56|  2.64M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.13M, False: 507k]
  |  |  ------------------
  |  |   57|  2.13M|      return ::wabt::Result::Error; \
  |  |   58|  2.13M|    }                               \
  |  |   59|  2.64M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2399|   507k|  CALLBACK(BeginCustomSection, section_index, section_size, section_name);
  ------------------
  |  |   61|   507k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   507k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   507k|  do {                         \
  |  |  |  |  |  |   42|   507k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 507k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   507k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   507k|               #member " callback failed")
  ------------------
 2400|   507k|  ValueRestoreGuard<bool, &BinaryReader::reading_custom_section_> guard(this);
 2401|   507k|  reading_custom_section_ = true;
 2402|       |
 2403|   507k|  {
 2404|       |    // Backtrack parser when scope ends
 2405|   507k|    ValueRestoreGuard<BinaryReaderDelegate::State, &BinaryReader::state_> guard(
 2406|   507k|        this);
 2407|   507k|    CHECK_RESULT(ReadGenericCustomSection(section_name, section_size));
  ------------------
  |  |   55|   507k|  do {                              \
  |  |   56|   507k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 507k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|   507k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2408|   507k|  }
 2409|       |
 2410|   507k|  if (options_.read_debug_names && section_name == WABT_BINARY_SECTION_NAME) {
  ------------------
  |  |   31|      0|#define WABT_BINARY_SECTION_NAME "name"
  ------------------
  |  Branch (2410:7): [True: 0, False: 507k]
  |  Branch (2410:36): [True: 0, False: 0]
  ------------------
 2411|      0|    CHECK_RESULT(ReadNameSection(section_size));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 2412|      0|    did_read_names_section_ = true;
 2413|   507k|  } else if (section_name == WABT_BINARY_SECTION_DYLINK0) {
  ------------------
  |  |   36|   507k|#define WABT_BINARY_SECTION_DYLINK0 "dylink.0"
  ------------------
  |  Branch (2413:14): [True: 6.47k, False: 501k]
  ------------------
 2414|  6.47k|    CHECK_RESULT(ReadDylink0Section(section_size));
  ------------------
  |  |   55|  6.47k|  do {                              \
  |  |   56|  6.47k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6.17k, False: 297]
  |  |  ------------------
  |  |   57|  6.17k|      return ::wabt::Result::Error; \
  |  |   58|  6.17k|    }                               \
  |  |   59|  6.47k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2415|   501k|  } else if (section_name == WABT_BINARY_SECTION_DYLINK) {
  ------------------
  |  |   35|   501k|#define WABT_BINARY_SECTION_DYLINK "dylink"
  ------------------
  |  Branch (2415:14): [True: 1.76k, False: 499k]
  ------------------
 2416|  1.76k|    CHECK_RESULT(ReadDylinkSection(section_size));
  ------------------
  |  |   55|  1.76k|  do {                              \
  |  |   56|  1.76k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.55k, False: 210]
  |  |  ------------------
  |  |   57|  1.55k|      return ::wabt::Result::Error; \
  |  |   58|  1.55k|    }                               \
  |  |   59|  1.76k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2417|   499k|  } else if (section_name.rfind(WABT_BINARY_SECTION_RELOC, 0) == 0) {
  ------------------
  |  |   32|   499k|#define WABT_BINARY_SECTION_RELOC "reloc"
  ------------------
  |  Branch (2417:14): [True: 5.06k, False: 494k]
  ------------------
 2418|       |    // Reloc sections always begin with "reloc."
 2419|  5.06k|    CHECK_RESULT(ReadRelocSection(section_size));
  ------------------
  |  |   55|  5.06k|  do {                              \
  |  |   56|  5.06k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3.81k, False: 1.24k]
  |  |  ------------------
  |  |   57|  3.81k|      return ::wabt::Result::Error; \
  |  |   58|  3.81k|    }                               \
  |  |   59|  5.06k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2420|   494k|  } else if (section_name == WABT_BINARY_SECTION_TARGET_FEATURES) {
  ------------------
  |  |   34|   494k|#define WABT_BINARY_SECTION_TARGET_FEATURES "target_features"
  ------------------
  |  Branch (2420:14): [True: 37.6k, False: 456k]
  ------------------
 2421|  37.6k|    CHECK_RESULT(ReadTargetFeaturesSections(section_size));
  ------------------
  |  |   55|  37.6k|  do {                              \
  |  |   56|  37.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 31.5k, False: 6.08k]
  |  |  ------------------
  |  |   57|  31.5k|      return ::wabt::Result::Error; \
  |  |   58|  31.5k|    }                               \
  |  |   59|  37.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2422|   456k|  } else if (section_name == WABT_BINARY_SECTION_LINKING) {
  ------------------
  |  |   33|   456k|#define WABT_BINARY_SECTION_LINKING "linking"
  ------------------
  |  Branch (2422:14): [True: 37.4k, False: 419k]
  ------------------
 2423|  37.4k|    CHECK_RESULT(ReadLinkingSection(section_size));
  ------------------
  |  |   55|  37.4k|  do {                              \
  |  |   56|  37.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 36.6k, False: 781]
  |  |  ------------------
  |  |   57|  36.6k|      return ::wabt::Result::Error; \
  |  |   58|  36.6k|    }                               \
  |  |   59|  37.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2424|   419k|  } else if (options_.features.code_metadata_enabled() &&
  ------------------
  |  Branch (2424:14): [True: 333k, False: 85.6k]
  ------------------
 2425|   419k|             section_name.find(WABT_BINARY_SECTION_CODE_METADATA) == 0) {
  ------------------
  |  |   37|   333k|#define WABT_BINARY_SECTION_CODE_METADATA "metadata.code."
  ------------------
  |  Branch (2425:14): [True: 189k, False: 144k]
  ------------------
 2426|   189k|    std::string_view metadata_name = section_name;
 2427|   189k|    metadata_name.remove_prefix(sizeof(WABT_BINARY_SECTION_CODE_METADATA) - 1);
  ------------------
  |  |   37|   189k|#define WABT_BINARY_SECTION_CODE_METADATA "metadata.code."
  ------------------
 2428|   189k|    CHECK_RESULT(ReadCodeMetadataSection(metadata_name, section_size));
  ------------------
  |  |   55|   189k|  do {                              \
  |  |   56|   189k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 145k, False: 43.8k]
  |  |  ------------------
  |  |   57|   145k|      return ::wabt::Result::Error; \
  |  |   58|   145k|    }                               \
  |  |   59|   189k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2429|   229k|  } else {
 2430|       |    // Skip. This is a generic custom section, and is handled above.
 2431|   229k|    state_.offset = read_end_;
 2432|   229k|  }
 2433|   282k|  CALLBACK0(EndCustomSection);
  ------------------
  |  |   58|   282k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   282k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   282k|  do {                         \
  |  |  |  |  |  |   42|   282k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 282k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   282k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2434|   282k|  return Result::Ok;
 2435|   282k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadStrEPNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEPKc:
  381|  3.19M|Result BinaryReader::ReadStr(std::string_view* out_str, const char* desc) {
  382|  3.19M|  uint32_t str_len = 0;
  383|  3.19M|  CHECK_RESULT(ReadU32Leb128(&str_len, "string length"));
  ------------------
  |  |   55|  3.19M|  do {                              \
  |  |   56|  3.19M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.12M, False: 1.07M]
  |  |  ------------------
  |  |   57|  2.12M|      return ::wabt::Result::Error; \
  |  |   58|  2.12M|    }                               \
  |  |   59|  3.19M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  384|       |
  385|  1.07M|  ERROR_UNLESS(state_.offset + str_len <= read_end_,
  ------------------
  |  |   48|  1.07M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  1.07M|  do {                         \
  |  |  |  |   42|  1.07M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 20.9k, False: 1.05M]
  |  |  |  |  ------------------
  |  |  |  |   43|  20.9k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  20.9k|      return Result::Error;    \
  |  |  |  |   45|  20.9k|    }                          \
  |  |  |  |   46|  1.07M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  386|  1.05M|               "unable to read string: %s", desc);
  387|       |
  388|  1.05M|  *out_str = std::string_view(
  389|  1.05M|      reinterpret_cast<const char*>(state_.data) + state_.offset, str_len);
  390|  1.05M|  state_.offset += str_len;
  391|       |
  392|  1.05M|  ERROR_UNLESS(IsValidUtf8(out_str->data(), out_str->length()),
  ------------------
  |  |   48|  1.05M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  1.05M|  do {                         \
  |  |  |  |   42|  1.05M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 13.1k, False: 1.04M]
  |  |  |  |  ------------------
  |  |  |  |   43|  13.1k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  13.1k|      return Result::Error;    \
  |  |  |  |   45|  13.1k|    }                          \
  |  |  |  |   46|  1.05M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  393|  1.04M|               "invalid utf-8 encoding: %s", desc);
  394|  1.04M|  return Result::Ok;
  395|  1.05M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardIbXadL_ZNS1_23reading_custom_section_EEEEC2EPS1_:
   85|   507k|        : this_(this_), previous_value_(this_->*member) {}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardINS_20BinaryReaderDelegate5StateEXadL_ZNS1_6state_EEEEC2EPS1_:
   85|   507k|        : this_(this_), previous_value_(this_->*member) {}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader24ReadGenericCustomSectionENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEm:
 2172|   507k|                                              Offset section_size) {
 2173|   507k|  CALLBACK(BeginGenericCustomSection, section_size);
  ------------------
  |  |   61|   507k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   507k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   507k|  do {                         \
  |  |  |  |  |  |   42|   507k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 507k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   507k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   507k|               #member " callback failed")
  ------------------
 2174|   507k|  const void* data;
 2175|   507k|  Offset custom_data_size = read_end_ - state_.offset;
 2176|   507k|  CHECK_RESULT(
  ------------------
  |  |   55|   507k|  do {                              \
  |  |   56|   507k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 507k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|   507k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2177|   507k|      ReadBytesWithSize(&data, custom_data_size, "custom section data"));
 2178|   507k|  CALLBACK(OnGenericCustomSection, name, data, custom_data_size);
  ------------------
  |  |   61|   507k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   507k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   507k|  do {                         \
  |  |  |  |  |  |   42|   507k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 507k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   507k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   507k|               #member " callback failed")
  ------------------
 2179|   507k|  CALLBACK0(EndGenericCustomSection);
  ------------------
  |  |   58|   507k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   507k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   507k|  do {                         \
  |  |  |  |  |  |   42|   507k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 507k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   507k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2180|   507k|  return Result::Ok;
 2181|   507k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadBytesWithSizeEPPKvmPKc:
  409|   513k|                                       const char* desc) {
  410|   513k|  ERROR_UNLESS(state_.offset + size <= read_end_, "unable to read data: %s",
  ------------------
  |  |   48|   513k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   513k|  do {                         \
  |  |  |  |   42|   513k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 304, False: 513k]
  |  |  |  |  ------------------
  |  |  |  |   43|    304|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    304|      return Result::Error;    \
  |  |  |  |   45|    304|    }                          \
  |  |  |  |   46|   513k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  411|   513k|               desc);
  412|       |
  413|   513k|  *out_data = static_cast<const uint8_t*>(state_.data) + state_.offset;
  414|   513k|  state_.offset += size;
  415|   513k|  return Result::Ok;
  416|   513k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardINS_20BinaryReaderDelegate5StateEXadL_ZNS1_6state_EEEED2Ev:
   86|   507k|    ~ValueRestoreGuard() { this_->*member = previous_value_; }
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadCountEPjPKc:
  495|  1.35M|Result BinaryReader::ReadCount(Index* count, const char* desc) {
  496|  1.35M|  CHECK_RESULT(ReadIndex(count, desc));
  ------------------
  |  |   55|  1.35M|  do {                              \
  |  |   56|  1.35M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.93k, False: 1.35M]
  |  |  ------------------
  |  |   57|  1.93k|      return ::wabt::Result::Error; \
  |  |   58|  1.93k|    }                               \
  |  |   59|  1.35M|  } 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|  1.35M|  size_t section_remaining = read_end_ - state_.offset;
  503|  1.35M|  if (*count > section_remaining) {
  ------------------
  |  Branch (503:7): [True: 8.86k, False: 1.34M]
  ------------------
  504|  8.86k|    PrintError("invalid %s %" PRIindex ", only %" PRIzd
  505|  8.86k|               " bytes left in section",
  506|  8.86k|               desc, *count, section_remaining);
  507|  8.86k|    return Result::Error;
  508|  8.86k|  }
  509|  1.34M|  return Result::Ok;
  510|  1.35M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadIndexEPjPKc:
  418|  1.94M|Result BinaryReader::ReadIndex(Index* index, const char* desc) {
  419|  1.94M|  uint32_t value;
  420|  1.94M|  CHECK_RESULT(ReadU32Leb128(&value, desc));
  ------------------
  |  |   55|  1.94M|  do {                              \
  |  |   56|  1.94M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3.17k, False: 1.94M]
  |  |  ------------------
  |  |   57|  3.17k|      return ::wabt::Result::Error; \
  |  |   58|  3.17k|    }                               \
  |  |   59|  1.94M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  421|  1.94M|  *index = value;
  422|  1.94M|  return Result::Ok;
  423|  1.94M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13NumTotalFuncsEv:
  563|   631k|Index BinaryReader::NumTotalFuncs() {
  564|   631k|  return num_func_imports_ + num_function_signatures_;
  565|   631k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader18ReadDylink0SectionEm:
 2053|  6.47k|Result BinaryReader::ReadDylink0Section(Offset section_size) {
 2054|  6.47k|  CALLBACK(BeginDylinkSection, section_size);
  ------------------
  |  |   61|  6.47k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.47k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.47k|  do {                         \
  |  |  |  |  |  |   42|  6.47k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.47k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.47k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.47k|               #member " callback failed")
  ------------------
 2055|       |
 2056|  49.2k|  while (state_.offset < read_end_) {
  ------------------
  |  Branch (2056:10): [True: 48.9k, False: 297]
  ------------------
 2057|  48.9k|    uint32_t dylink_type;
 2058|  48.9k|    Offset subsection_size;
 2059|  48.9k|    CHECK_RESULT(ReadU32Leb128(&dylink_type, "type"));
  ------------------
  |  |   55|  48.9k|  do {                              \
  |  |   56|  48.9k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 313, False: 48.6k]
  |  |  ------------------
  |  |   57|    313|      return ::wabt::Result::Error; \
  |  |   58|    313|    }                               \
  |  |   59|  48.9k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2060|  48.6k|    CHECK_RESULT(ReadOffset(&subsection_size, "subsection size"));
  ------------------
  |  |   55|  48.6k|  do {                              \
  |  |   56|  48.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 737, False: 47.8k]
  |  |  ------------------
  |  |   57|    737|      return ::wabt::Result::Error; \
  |  |   58|    737|    }                               \
  |  |   59|  48.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2061|  47.8k|    size_t subsection_end = state_.offset + subsection_size;
 2062|  47.8k|    ERROR_UNLESS(subsection_end <= read_end_,
  ------------------
  |  |   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: 1.17k, False: 46.6k]
  |  |  |  |  ------------------
  |  |  |  |   43|  1.17k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  1.17k|      return Result::Error;    \
  |  |  |  |   45|  1.17k|    }                          \
  |  |  |  |   46|  47.8k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2063|  46.6k|                 "invalid sub-section size: extends past end");
 2064|  46.6k|    ReadEndRestoreGuard guard(this);
 2065|  46.6k|    read_end_ = subsection_end;
 2066|       |
 2067|  46.6k|    uint32_t count;
 2068|  46.6k|    switch (static_cast<DylinkEntryType>(dylink_type)) {
 2069|    779|      case DylinkEntryType::MemInfo: {
  ------------------
  |  Branch (2069:7): [True: 779, False: 45.9k]
  ------------------
 2070|    779|        uint32_t mem_size;
 2071|    779|        uint32_t mem_align;
 2072|    779|        uint32_t table_size;
 2073|    779|        uint32_t table_align;
 2074|       |
 2075|    779|        CHECK_RESULT(ReadU32Leb128(&mem_size, "mem_size"));
  ------------------
  |  |   55|    779|  do {                              \
  |  |   56|    779|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 70, False: 709]
  |  |  ------------------
  |  |   57|     70|      return ::wabt::Result::Error; \
  |  |   58|     70|    }                               \
  |  |   59|    779|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2076|    709|        CHECK_RESULT(ReadU32Leb128(&mem_align, "mem_align"));
  ------------------
  |  |   55|    709|  do {                              \
  |  |   56|    709|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 216, False: 493]
  |  |  ------------------
  |  |   57|    216|      return ::wabt::Result::Error; \
  |  |   58|    216|    }                               \
  |  |   59|    709|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2077|    493|        CHECK_RESULT(ReadU32Leb128(&table_size, "table_size"));
  ------------------
  |  |   55|    493|  do {                              \
  |  |   56|    493|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 218, False: 275]
  |  |  ------------------
  |  |   57|    218|      return ::wabt::Result::Error; \
  |  |   58|    218|    }                               \
  |  |   59|    493|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2078|    275|        CHECK_RESULT(ReadU32Leb128(&table_align, "table_align"));
  ------------------
  |  |   55|    275|  do {                              \
  |  |   56|    275|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 66, False: 209]
  |  |  ------------------
  |  |   57|     66|      return ::wabt::Result::Error; \
  |  |   58|     66|    }                               \
  |  |   59|    275|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2079|    209|        CALLBACK(OnDylinkInfo, mem_size, mem_align, table_size, table_align);
  ------------------
  |  |   61|    209|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    209|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    209|  do {                         \
  |  |  |  |  |  |   42|    209|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 209]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    209|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    209|               #member " callback failed")
  ------------------
 2080|    209|        break;
 2081|    209|      }
 2082|  1.17k|      case DylinkEntryType::Needed:
  ------------------
  |  Branch (2082:7): [True: 1.17k, False: 45.5k]
  ------------------
 2083|  1.17k|        CHECK_RESULT(ReadU32Leb128(&count, "needed_dynlibs"));
  ------------------
  |  |   55|  1.17k|  do {                              \
  |  |   56|  1.17k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 196, False: 981]
  |  |  ------------------
  |  |   57|    196|      return ::wabt::Result::Error; \
  |  |   58|    196|    }                               \
  |  |   59|  1.17k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2084|    981|        CALLBACK(OnDylinkNeededCount, count);
  ------------------
  |  |   61|    981|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    981|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    981|  do {                         \
  |  |  |  |  |  |   42|    981|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 981]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    981|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    981|               #member " callback failed")
  ------------------
 2085|  2.22k|        while (count--) {
  ------------------
  |  Branch (2085:16): [True: 1.56k, False: 658]
  ------------------
 2086|  1.56k|          std::string_view so_name;
 2087|  1.56k|          CHECK_RESULT(ReadStr(&so_name, "dylib so_name"));
  ------------------
  |  |   55|  1.56k|  do {                              \
  |  |   56|  1.56k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 323, False: 1.24k]
  |  |  ------------------
  |  |   57|    323|      return ::wabt::Result::Error; \
  |  |   58|    323|    }                               \
  |  |   59|  1.56k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2088|  1.24k|          CALLBACK(OnDylinkNeeded, so_name);
  ------------------
  |  |   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")
  ------------------
 2089|  1.24k|        }
 2090|    658|        break;
 2091|  2.52k|      case DylinkEntryType::ImportInfo:
  ------------------
  |  Branch (2091:7): [True: 2.52k, False: 44.1k]
  ------------------
 2092|  2.52k|        CHECK_RESULT(ReadU32Leb128(&count, "count"));
  ------------------
  |  |   55|  2.52k|  do {                              \
  |  |   56|  2.52k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.15k, False: 1.36k]
  |  |  ------------------
  |  |   57|  1.15k|      return ::wabt::Result::Error; \
  |  |   58|  1.15k|    }                               \
  |  |   59|  2.52k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2093|  1.36k|        CALLBACK(OnDylinkImportCount, count);
  ------------------
  |  |   61|  1.36k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.36k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.36k|  do {                         \
  |  |  |  |  |  |   42|  1.36k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.36k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.36k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.36k|               #member " callback failed")
  ------------------
 2094|  1.90k|        for (Index i = 0; i < count; ++i) {
  ------------------
  |  Branch (2094:27): [True: 1.27k, False: 635]
  ------------------
 2095|  1.27k|          uint32_t flags = 0;
 2096|  1.27k|          std::string_view module;
 2097|  1.27k|          std::string_view field;
 2098|  1.27k|          CHECK_RESULT(ReadStr(&module, "module"));
  ------------------
  |  |   55|  1.27k|  do {                              \
  |  |   56|  1.27k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 289, False: 982]
  |  |  ------------------
  |  |   57|    289|      return ::wabt::Result::Error; \
  |  |   58|    289|    }                               \
  |  |   59|  1.27k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2099|    982|          CHECK_RESULT(ReadStr(&field, "field"));
  ------------------
  |  |   55|    982|  do {                              \
  |  |   56|    982|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 239, False: 743]
  |  |  ------------------
  |  |   57|    239|      return ::wabt::Result::Error; \
  |  |   58|    239|    }                               \
  |  |   59|    982|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2100|    743|          CHECK_RESULT(ReadU32Leb128(&flags, "flags"));
  ------------------
  |  |   55|    743|  do {                              \
  |  |   56|    743|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 199, False: 544]
  |  |  ------------------
  |  |   57|    199|      return ::wabt::Result::Error; \
  |  |   58|    199|    }                               \
  |  |   59|    743|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2101|    544|          CALLBACK(OnDylinkImport, module, field, flags);
  ------------------
  |  |   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")
  ------------------
 2102|    544|        }
 2103|    635|        break;
 2104|    906|      case DylinkEntryType::ExportInfo:
  ------------------
  |  Branch (2104:7): [True: 906, False: 45.7k]
  ------------------
 2105|    906|        CHECK_RESULT(ReadU32Leb128(&count, "count"));
  ------------------
  |  |   55|    906|  do {                              \
  |  |   56|    906|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 198, False: 708]
  |  |  ------------------
  |  |   57|    198|      return ::wabt::Result::Error; \
  |  |   58|    198|    }                               \
  |  |   59|    906|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2106|    708|        CALLBACK(OnDylinkExportCount, count);
  ------------------
  |  |   61|    708|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    708|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    708|  do {                         \
  |  |  |  |  |  |   42|    708|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 708]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    708|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    708|               #member " callback failed")
  ------------------
 2107|  1.10k|        for (Index i = 0; i < count; ++i) {
  ------------------
  |  Branch (2107:27): [True: 707, False: 402]
  ------------------
 2108|    707|          uint32_t flags = 0;
 2109|    707|          std::string_view name;
 2110|    707|          CHECK_RESULT(ReadStr(&name, "name"));
  ------------------
  |  |   55|    707|  do {                              \
  |  |   56|    707|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 158, False: 549]
  |  |  ------------------
  |  |   57|    158|      return ::wabt::Result::Error; \
  |  |   58|    158|    }                               \
  |  |   59|    707|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2111|    549|          CHECK_RESULT(ReadU32Leb128(&flags, "flags"));
  ------------------
  |  |   55|    549|  do {                              \
  |  |   56|    549|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 148, False: 401]
  |  |  ------------------
  |  |   57|    148|      return ::wabt::Result::Error; \
  |  |   58|    148|    }                               \
  |  |   59|    549|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2112|    401|          CALLBACK(OnDylinkExport, name, flags);
  ------------------
  |  |   61|    401|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    401|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    401|  do {                         \
  |  |  |  |  |  |   42|    401|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 401]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    401|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    401|               #member " callback failed")
  ------------------
 2113|    401|        }
 2114|    402|        break;
 2115|  41.3k|      default:
  ------------------
  |  Branch (2115:7): [True: 41.3k, False: 5.38k]
  ------------------
 2116|       |        // Unknown subsection, skip it.
 2117|  41.3k|        state_.offset = subsection_end;
 2118|  41.3k|        break;
 2119|  46.6k|    }
 2120|  43.2k|    ERROR_UNLESS(state_.offset == subsection_end,
  ------------------
  |  |   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: 476, False: 42.7k]
  |  |  |  |  ------------------
  |  |  |  |   43|    476|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    476|      return Result::Error;    \
  |  |  |  |   45|    476|    }                          \
  |  |  |  |   46|  43.2k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2121|  43.2k|                 "unfinished sub-section (expected end: 0x%" PRIzx ")",
 2122|  43.2k|                 subsection_end);
 2123|  43.2k|  }
 2124|       |
 2125|    297|  CALLBACK0(EndDylinkSection);
  ------------------
  |  |   58|    297|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    297|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    297|  do {                         \
  |  |  |  |  |  |   42|    297|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 297]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    297|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2126|    297|  return Result::Ok;
 2127|    297|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadDylinkSectionEm:
 2129|  1.76k|Result BinaryReader::ReadDylinkSection(Offset section_size) {
 2130|  1.76k|  CALLBACK(BeginDylinkSection, section_size);
  ------------------
  |  |   61|  1.76k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.76k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.76k|  do {                         \
  |  |  |  |  |  |   42|  1.76k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.76k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.76k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.76k|               #member " callback failed")
  ------------------
 2131|  1.76k|  uint32_t mem_size;
 2132|  1.76k|  uint32_t mem_align;
 2133|  1.76k|  uint32_t table_size;
 2134|  1.76k|  uint32_t table_align;
 2135|       |
 2136|  1.76k|  CHECK_RESULT(ReadU32Leb128(&mem_size, "mem_size"));
  ------------------
  |  |   55|  1.76k|  do {                              \
  |  |   56|  1.76k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 371, False: 1.39k]
  |  |  ------------------
  |  |   57|    371|      return ::wabt::Result::Error; \
  |  |   58|    371|    }                               \
  |  |   59|  1.76k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2137|  1.39k|  CHECK_RESULT(ReadU32Leb128(&mem_align, "mem_align"));
  ------------------
  |  |   55|  1.39k|  do {                              \
  |  |   56|  1.39k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 230, False: 1.16k]
  |  |  ------------------
  |  |   57|    230|      return ::wabt::Result::Error; \
  |  |   58|    230|    }                               \
  |  |   59|  1.39k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2138|  1.16k|  CHECK_RESULT(ReadU32Leb128(&table_size, "table_size"));
  ------------------
  |  |   55|  1.16k|  do {                              \
  |  |   56|  1.16k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 228, False: 936]
  |  |  ------------------
  |  |   57|    228|      return ::wabt::Result::Error; \
  |  |   58|    228|    }                               \
  |  |   59|  1.16k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2139|    936|  CHECK_RESULT(ReadU32Leb128(&table_align, "table_align"));
  ------------------
  |  |   55|    936|  do {                              \
  |  |   56|    936|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 257, False: 679]
  |  |  ------------------
  |  |   57|    257|      return ::wabt::Result::Error; \
  |  |   58|    257|    }                               \
  |  |   59|    936|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2140|    679|  CALLBACK(OnDylinkInfo, mem_size, mem_align, table_size, table_align);
  ------------------
  |  |   61|    679|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    679|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    679|  do {                         \
  |  |  |  |  |  |   42|    679|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 679]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    679|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    679|               #member " callback failed")
  ------------------
 2141|       |
 2142|    679|  uint32_t count;
 2143|    679|  CHECK_RESULT(ReadU32Leb128(&count, "needed_dynlibs"));
  ------------------
  |  |   55|    679|  do {                              \
  |  |   56|    679|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 195, False: 484]
  |  |  ------------------
  |  |   57|    195|      return ::wabt::Result::Error; \
  |  |   58|    195|    }                               \
  |  |   59|    679|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2144|    484|  CALLBACK(OnDylinkNeededCount, count);
  ------------------
  |  |   61|    484|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    484|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    484|  do {                         \
  |  |  |  |  |  |   42|    484|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 484]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    484|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    484|               #member " callback failed")
  ------------------
 2145|    784|  while (count--) {
  ------------------
  |  Branch (2145:10): [True: 574, False: 210]
  ------------------
 2146|    574|    std::string_view so_name;
 2147|    574|    CHECK_RESULT(ReadStr(&so_name, "dylib so_name"));
  ------------------
  |  |   55|    574|  do {                              \
  |  |   56|    574|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 274, False: 300]
  |  |  ------------------
  |  |   57|    274|      return ::wabt::Result::Error; \
  |  |   58|    274|    }                               \
  |  |   59|    574|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2148|    300|    CALLBACK(OnDylinkNeeded, so_name);
  ------------------
  |  |   61|    300|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    300|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    300|  do {                         \
  |  |  |  |  |  |   42|    300|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 300]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    300|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    300|               #member " callback failed")
  ------------------
 2149|    300|  }
 2150|       |
 2151|    210|  CALLBACK0(EndDylinkSection);
  ------------------
  |  |   58|    210|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    210|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    210|  do {                         \
  |  |  |  |  |  |   42|    210|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 210]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    210|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2152|    210|  return Result::Ok;
 2153|    210|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadRelocSectionEm:
 1999|  5.06k|Result BinaryReader::ReadRelocSection(Offset section_size) {
 2000|  5.06k|  CALLBACK(BeginRelocSection, section_size);
  ------------------
  |  |   61|  5.06k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.06k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.06k|  do {                         \
  |  |  |  |  |  |   42|  5.06k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.06k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.06k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.06k|               #member " callback failed")
  ------------------
 2001|  5.06k|  uint32_t section_index;
 2002|  5.06k|  CHECK_RESULT(ReadU32Leb128(&section_index, "section index"));
  ------------------
  |  |   55|  5.06k|  do {                              \
  |  |   56|  5.06k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 321, False: 4.74k]
  |  |  ------------------
  |  |   57|    321|      return ::wabt::Result::Error; \
  |  |   58|    321|    }                               \
  |  |   59|  5.06k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2003|  4.74k|  Index num_relocs;
 2004|  4.74k|  CHECK_RESULT(ReadCount(&num_relocs, "relocation count"));
  ------------------
  |  |   55|  4.74k|  do {                              \
  |  |   56|  4.74k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 458, False: 4.28k]
  |  |  ------------------
  |  |   57|    458|      return ::wabt::Result::Error; \
  |  |   58|    458|    }                               \
  |  |   59|  4.74k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2005|  4.28k|  CALLBACK(OnRelocCount, num_relocs, section_index);
  ------------------
  |  |   61|  4.28k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.28k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.28k|  do {                         \
  |  |  |  |  |  |   42|  4.28k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.28k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.28k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.28k|               #member " callback failed")
  ------------------
 2006|  20.9k|  for (Index i = 0; i < num_relocs; ++i) {
  ------------------
  |  Branch (2006:21): [True: 19.6k, False: 1.24k]
  ------------------
 2007|  19.6k|    Offset offset;
 2008|  19.6k|    Index index;
 2009|  19.6k|    uint32_t reloc_type, addend = 0;
 2010|  19.6k|    CHECK_RESULT(ReadU32Leb128(&reloc_type, "relocation type"));
  ------------------
  |  |   55|  19.6k|  do {                              \
  |  |   56|  19.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 317, False: 19.3k]
  |  |  ------------------
  |  |   57|    317|      return ::wabt::Result::Error; \
  |  |   58|    317|    }                               \
  |  |   59|  19.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2011|  19.3k|    CHECK_RESULT(ReadOffset(&offset, "offset"));
  ------------------
  |  |   55|  19.3k|  do {                              \
  |  |   56|  19.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.16k, False: 18.2k]
  |  |  ------------------
  |  |   57|  1.16k|      return ::wabt::Result::Error; \
  |  |   58|  1.16k|    }                               \
  |  |   59|  19.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2012|  18.2k|    CHECK_RESULT(ReadIndex(&index, "index"));
  ------------------
  |  |   55|  18.2k|  do {                              \
  |  |   56|  18.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 456, False: 17.7k]
  |  |  ------------------
  |  |   57|    456|      return ::wabt::Result::Error; \
  |  |   58|    456|    }                               \
  |  |   59|  18.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2013|  17.7k|    RelocType type = static_cast<RelocType>(reloc_type);
 2014|  17.7k|    switch (type) {
 2015|    324|      case RelocType::MemoryAddressLEB:
  ------------------
  |  Branch (2015:7): [True: 324, False: 17.4k]
  ------------------
 2016|  1.29k|      case RelocType::MemoryAddressLEB64:
  ------------------
  |  Branch (2016:7): [True: 974, False: 16.7k]
  ------------------
 2017|  1.79k|      case RelocType::MemoryAddressSLEB:
  ------------------
  |  Branch (2017:7): [True: 494, False: 17.2k]
  ------------------
 2018|  2.23k|      case RelocType::MemoryAddressSLEB64:
  ------------------
  |  Branch (2018:7): [True: 439, False: 17.3k]
  ------------------
 2019|  2.53k|      case RelocType::MemoryAddressRelSLEB:
  ------------------
  |  Branch (2019:7): [True: 303, False: 17.4k]
  ------------------
 2020|  2.78k|      case RelocType::MemoryAddressRelSLEB64:
  ------------------
  |  Branch (2020:7): [True: 249, False: 17.5k]
  ------------------
 2021|  4.45k|      case RelocType::MemoryAddressI32:
  ------------------
  |  Branch (2021:7): [True: 1.67k, False: 16.0k]
  ------------------
 2022|  5.00k|      case RelocType::MemoryAddressI64:
  ------------------
  |  Branch (2022:7): [True: 550, False: 17.2k]
  ------------------
 2023|  5.24k|      case RelocType::FunctionOffsetI32:
  ------------------
  |  Branch (2023:7): [True: 238, False: 17.5k]
  ------------------
 2024|  5.59k|      case RelocType::SectionOffsetI32:
  ------------------
  |  Branch (2024:7): [True: 352, False: 17.4k]
  ------------------
 2025|  6.20k|      case RelocType::MemoryAddressTLSSLEB:
  ------------------
  |  Branch (2025:7): [True: 611, False: 17.1k]
  ------------------
 2026|  8.40k|      case RelocType::MemoryAddressTLSI32:
  ------------------
  |  Branch (2026:7): [True: 2.20k, False: 15.5k]
  ------------------
 2027|  8.40k|        CHECK_RESULT(ReadS32Leb128(&addend, "addend"));
  ------------------
  |  |   55|  8.40k|  do {                              \
  |  |   56|  8.40k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 702, False: 7.70k]
  |  |  ------------------
  |  |   57|    702|      return ::wabt::Result::Error; \
  |  |   58|    702|    }                               \
  |  |   59|  8.40k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2028|  7.70k|        break;
 2029|       |
 2030|  7.70k|      case RelocType::FuncIndexLEB:
  ------------------
  |  Branch (2030:7): [True: 1.86k, False: 15.8k]
  ------------------
 2031|  2.15k|      case RelocType::TableIndexSLEB:
  ------------------
  |  Branch (2031:7): [True: 285, False: 17.4k]
  ------------------
 2032|  4.82k|      case RelocType::TableIndexSLEB64:
  ------------------
  |  Branch (2032:7): [True: 2.66k, False: 15.0k]
  ------------------
 2033|  5.19k|      case RelocType::TableIndexI32:
  ------------------
  |  Branch (2033:7): [True: 373, False: 17.3k]
  ------------------
 2034|  6.60k|      case RelocType::TableIndexI64:
  ------------------
  |  Branch (2034:7): [True: 1.41k, False: 16.3k]
  ------------------
 2035|  7.49k|      case RelocType::TypeIndexLEB:
  ------------------
  |  Branch (2035:7): [True: 889, False: 16.8k]
  ------------------
 2036|  7.76k|      case RelocType::GlobalIndexLEB:
  ------------------
  |  Branch (2036:7): [True: 271, False: 17.4k]
  ------------------
 2037|  7.98k|      case RelocType::GlobalIndexI32:
  ------------------
  |  Branch (2037:7): [True: 216, False: 17.5k]
  ------------------
 2038|  8.33k|      case RelocType::TagIndexLEB:
  ------------------
  |  Branch (2038:7): [True: 353, False: 17.4k]
  ------------------
 2039|  8.64k|      case RelocType::TableIndexRelSLEB:
  ------------------
  |  Branch (2039:7): [True: 307, False: 17.4k]
  ------------------
 2040|  8.95k|      case RelocType::TableNumberLEB:
  ------------------
  |  Branch (2040:7): [True: 310, False: 17.4k]
  ------------------
 2041|  8.95k|        break;
 2042|       |
 2043|    395|      default:
  ------------------
  |  Branch (2043:7): [True: 395, False: 17.3k]
  ------------------
 2044|    395|        PrintError("unknown reloc type: %s", GetRelocTypeName(type));
 2045|    395|        return Result::Error;
 2046|  17.7k|    }
 2047|  16.6k|    CALLBACK(OnReloc, type, offset, index, addend);
  ------------------
  |  |   61|  16.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  16.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  16.6k|  do {                         \
  |  |  |  |  |  |   42|  16.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 16.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  16.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  16.6k|               #member " callback failed")
  ------------------
 2048|  16.6k|  }
 2049|  1.24k|  CALLBACK0(EndRelocSection);
  ------------------
  |  |   58|  1.24k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2050|  1.24k|  return Result::Ok;
 2051|  1.24k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadS32Leb128EPjPKc:
  332|   734k|Result BinaryReader::ReadS32Leb128(uint32_t* out_value, const char* desc) {
  333|   734k|  const uint8_t* p = state_.data + state_.offset;
  334|   734k|  const uint8_t* end = state_.data + read_end_;
  335|   734k|  size_t bytes_read = wabt::ReadS32Leb128(p, end, out_value);
  336|   734k|  ERROR_UNLESS(bytes_read > 0, "unable to read i32 leb128: %s", desc);
  ------------------
  |  |   48|   734k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   734k|  do {                         \
  |  |  |  |   42|   734k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 1.04k, False: 733k]
  |  |  |  |  ------------------
  |  |  |  |   43|  1.04k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  1.04k|      return Result::Error;    \
  |  |  |  |   45|  1.04k|    }                          \
  |  |  |  |   46|   734k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  337|   733k|  state_.offset += bytes_read;
  338|   733k|  return Result::Ok;
  339|   734k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader26ReadTargetFeaturesSectionsEm:
 2155|  37.6k|Result BinaryReader::ReadTargetFeaturesSections(Offset section_size) {
 2156|  37.6k|  CALLBACK(BeginTargetFeaturesSection, section_size);
  ------------------
  |  |   61|  37.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  37.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  37.6k|  do {                         \
  |  |  |  |  |  |   42|  37.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 37.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  37.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  37.6k|               #member " callback failed")
  ------------------
 2157|  37.6k|  uint32_t count;
 2158|  37.6k|  CHECK_RESULT(ReadU32Leb128(&count, "sym count"));
  ------------------
  |  |   55|  37.6k|  do {                              \
  |  |   56|  37.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 196, False: 37.4k]
  |  |  ------------------
  |  |   57|    196|      return ::wabt::Result::Error; \
  |  |   58|    196|    }                               \
  |  |   59|  37.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2159|  37.4k|  CALLBACK(OnFeatureCount, count);
  ------------------
  |  |   61|  37.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  37.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  37.4k|  do {                         \
  |  |  |  |  |  |   42|  37.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 37.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  37.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  37.4k|               #member " callback failed")
  ------------------
 2160|   327k|  while (count--) {
  ------------------
  |  Branch (2160:10): [True: 321k, False: 6.08k]
  ------------------
 2161|   321k|    uint8_t prefix;
 2162|   321k|    std::string_view name;
 2163|   321k|    CHECK_RESULT(ReadU8(&prefix, "prefix"));
  ------------------
  |  |   55|   321k|  do {                              \
  |  |   56|   321k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 17.7k, False: 303k]
  |  |  ------------------
  |  |   57|  17.7k|      return ::wabt::Result::Error; \
  |  |   58|  17.7k|    }                               \
  |  |   59|   321k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2164|   303k|    CHECK_RESULT(ReadStr(&name, "feature name"));
  ------------------
  |  |   55|   303k|  do {                              \
  |  |   56|   303k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 13.6k, False: 289k]
  |  |  ------------------
  |  |   57|  13.6k|      return ::wabt::Result::Error; \
  |  |   58|  13.6k|    }                               \
  |  |   59|   303k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2165|   289k|    CALLBACK(OnFeature, prefix, name);
  ------------------
  |  |   61|   289k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   289k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   289k|  do {                         \
  |  |  |  |  |  |   42|   289k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 289k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   289k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   289k|               #member " callback failed")
  ------------------
 2166|   289k|  }
 2167|  6.08k|  CALLBACK0(EndTargetFeaturesSection);
  ------------------
  |  |   58|  6.08k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2168|  6.08k|  return Result::Ok;
 2169|  6.08k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader18ReadLinkingSectionEm:
 2183|  37.4k|Result BinaryReader::ReadLinkingSection(Offset section_size) {
 2184|  37.4k|  CALLBACK(BeginLinkingSection, section_size);
  ------------------
  |  |   61|  37.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  37.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  37.4k|  do {                         \
  |  |  |  |  |  |   42|  37.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 37.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  37.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  37.4k|               #member " callback failed")
  ------------------
 2185|  37.4k|  uint32_t version;
 2186|  37.4k|  CHECK_RESULT(ReadU32Leb128(&version, "version"));
  ------------------
  |  |   55|  37.4k|  do {                              \
  |  |   56|  37.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 263, False: 37.1k]
  |  |  ------------------
  |  |   57|    263|      return ::wabt::Result::Error; \
  |  |   58|    263|    }                               \
  |  |   59|  37.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2187|  37.1k|  ERROR_UNLESS(version == 2, "invalid linking metadata version: %u", version);
  ------------------
  |  |   48|  37.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  37.1k|  do {                         \
  |  |  |  |   42|  37.1k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 473, False: 36.6k]
  |  |  |  |  ------------------
  |  |  |  |   43|    473|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    473|      return Result::Error;    \
  |  |  |  |   45|    473|    }                          \
  |  |  |  |   46|  37.1k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2188|  72.3k|  while (state_.offset < read_end_) {
  ------------------
  |  Branch (2188:10): [True: 71.5k, False: 781]
  ------------------
 2189|  71.5k|    uint32_t linking_type;
 2190|  71.5k|    Offset subsection_size;
 2191|  71.5k|    CHECK_RESULT(ReadU32Leb128(&linking_type, "type"));
  ------------------
  |  |   55|  71.5k|  do {                              \
  |  |   56|  71.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 232, False: 71.3k]
  |  |  ------------------
  |  |   57|    232|      return ::wabt::Result::Error; \
  |  |   58|    232|    }                               \
  |  |   59|  71.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2192|  71.3k|    CHECK_RESULT(ReadOffset(&subsection_size, "subsection size"));
  ------------------
  |  |   55|  71.3k|  do {                              \
  |  |   56|  71.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 357, False: 70.9k]
  |  |  ------------------
  |  |   57|    357|      return ::wabt::Result::Error; \
  |  |   58|    357|    }                               \
  |  |   59|  71.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2193|  70.9k|    size_t subsection_end = state_.offset + subsection_size;
 2194|  70.9k|    ERROR_UNLESS(subsection_end <= read_end_,
  ------------------
  |  |   48|  70.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  70.9k|  do {                         \
  |  |  |  |   42|  70.9k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 488, False: 70.4k]
  |  |  |  |  ------------------
  |  |  |  |   43|    488|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    488|      return Result::Error;    \
  |  |  |  |   45|    488|    }                          \
  |  |  |  |   46|  70.9k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2195|  70.4k|                 "invalid sub-section size: extends past end");
 2196|  70.4k|    ReadEndRestoreGuard guard(this);
 2197|  70.4k|    read_end_ = subsection_end;
 2198|       |
 2199|  70.4k|    uint32_t count;
 2200|  70.4k|    switch (static_cast<LinkingEntryType>(linking_type)) {
 2201|  29.8k|      case LinkingEntryType::SymbolTable:
  ------------------
  |  Branch (2201:7): [True: 29.8k, False: 40.5k]
  ------------------
 2202|  29.8k|        CHECK_RESULT(ReadU32Leb128(&count, "sym count"));
  ------------------
  |  |   55|  29.8k|  do {                              \
  |  |   56|  29.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 208, False: 29.6k]
  |  |  ------------------
  |  |   57|    208|      return ::wabt::Result::Error; \
  |  |   58|    208|    }                               \
  |  |   59|  29.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2203|  29.6k|        CALLBACK(OnSymbolCount, count);
  ------------------
  |  |   61|  29.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  29.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  29.6k|  do {                         \
  |  |  |  |  |  |   42|  29.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 29.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  29.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  29.6k|               #member " callback failed")
  ------------------
 2204|   161k|        for (Index i = 0; i < count; ++i) {
  ------------------
  |  Branch (2204:27): [True: 160k, False: 681]
  ------------------
 2205|   160k|          std::string_view name;
 2206|   160k|          uint32_t flags = 0;
 2207|   160k|          uint32_t kind = 0;
 2208|   160k|          CHECK_RESULT(ReadU32Leb128(&kind, "sym type"));
  ------------------
  |  |   55|   160k|  do {                              \
  |  |   56|   160k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5.36k, False: 155k]
  |  |  ------------------
  |  |   57|  5.36k|      return ::wabt::Result::Error; \
  |  |   58|  5.36k|    }                               \
  |  |   59|   160k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2209|   155k|          CHECK_RESULT(ReadU32Leb128(&flags, "sym flags"));
  ------------------
  |  |   55|   155k|  do {                              \
  |  |   56|   155k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3.61k, False: 151k]
  |  |  ------------------
  |  |   57|  3.61k|      return ::wabt::Result::Error; \
  |  |   58|  3.61k|    }                               \
  |  |   59|   155k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2210|   151k|          SymbolType sym_type = static_cast<SymbolType>(kind);
 2211|   151k|          switch (sym_type) {
  ------------------
  |  Branch (2211:19): [True: 48.4k, False: 103k]
  ------------------
 2212|  27.3k|            case SymbolType::Function:
  ------------------
  |  Branch (2212:13): [True: 27.3k, False: 124k]
  ------------------
 2213|  39.5k|            case SymbolType::Global:
  ------------------
  |  Branch (2213:13): [True: 12.1k, False: 139k]
  ------------------
 2214|  42.4k|            case SymbolType::Tag:
  ------------------
  |  Branch (2214:13): [True: 2.85k, False: 148k]
  ------------------
 2215|  84.7k|            case SymbolType::Table: {
  ------------------
  |  Branch (2215:13): [True: 42.3k, False: 109k]
  ------------------
 2216|  84.7k|              uint32_t index = 0;
 2217|  84.7k|              CHECK_RESULT(ReadU32Leb128(&index, "index"));
  ------------------
  |  |   55|  84.7k|  do {                              \
  |  |   56|  84.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4.19k, False: 80.5k]
  |  |  ------------------
  |  |   57|  4.19k|      return ::wabt::Result::Error; \
  |  |   58|  4.19k|    }                               \
  |  |   59|  84.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2218|  80.5k|              if ((flags & WABT_SYMBOL_FLAG_UNDEFINED) == 0 ||
  ------------------
  |  |  326|  80.5k|#define WABT_SYMBOL_FLAG_UNDEFINED 0x10
  ------------------
  |  Branch (2218:19): [True: 75.2k, False: 5.30k]
  ------------------
 2219|  80.5k|                  (flags & WABT_SYMBOL_FLAG_EXPLICIT_NAME) != 0)
  ------------------
  |  |  328|  5.30k|#define WABT_SYMBOL_FLAG_EXPLICIT_NAME 0x40
  ------------------
  |  Branch (2219:19): [True: 3.49k, False: 1.80k]
  ------------------
 2220|  78.7k|                CHECK_RESULT(ReadStr(&name, "symbol name"));
  ------------------
  |  |   55|  78.7k|  do {                              \
  |  |   56|  78.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.97k, False: 76.8k]
  |  |  ------------------
  |  |   57|  1.97k|      return ::wabt::Result::Error; \
  |  |   58|  1.97k|    }                               \
  |  |   59|  78.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2221|  78.6k|              switch (sym_type) {
 2222|  22.1k|                case SymbolType::Function:
  ------------------
  |  Branch (2222:17): [True: 22.1k, False: 56.4k]
  ------------------
 2223|  22.1k|                  CALLBACK(OnFunctionSymbol, i, flags, name, index);
  ------------------
  |  |   61|  22.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  22.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  22.1k|  do {                         \
  |  |  |  |  |  |   42|  22.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 816, False: 21.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|    816|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|    816|      return Result::Error;    \
  |  |  |  |  |  |   45|    816|    }                          \
  |  |  |  |  |  |   46|  22.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  22.1k|               #member " callback failed")
  ------------------
 2224|  21.3k|                  break;
 2225|  21.3k|                case SymbolType::Global:
  ------------------
  |  Branch (2225:17): [True: 11.6k, False: 66.9k]
  ------------------
 2226|  11.6k|                  CALLBACK(OnGlobalSymbol, i, flags, name, index);
  ------------------
  |  |   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: 469, False: 11.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|    469|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|    469|      return Result::Error;    \
  |  |  |  |  |  |   45|    469|    }                          \
  |  |  |  |  |  |   46|  11.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  11.6k|               #member " callback failed")
  ------------------
 2227|  11.1k|                  break;
 2228|  11.1k|                case SymbolType::Tag:
  ------------------
  |  Branch (2228:17): [True: 2.70k, False: 75.9k]
  ------------------
 2229|  2.70k|                  CALLBACK(OnTagSymbol, i, flags, name, index);
  ------------------
  |  |   61|  2.70k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.70k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.70k|  do {                         \
  |  |  |  |  |  |   42|  2.70k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 1.19k, False: 1.51k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|  1.19k|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|  1.19k|      return Result::Error;    \
  |  |  |  |  |  |   45|  1.19k|    }                          \
  |  |  |  |  |  |   46|  2.70k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.70k|               #member " callback failed")
  ------------------
 2230|  1.51k|                  break;
 2231|  42.1k|                case SymbolType::Table:
  ------------------
  |  Branch (2231:17): [True: 42.1k, False: 36.5k]
  ------------------
 2232|  42.1k|                  CALLBACK(OnTableSymbol, i, flags, name, index);
  ------------------
  |  |   61|  42.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  42.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  42.1k|  do {                         \
  |  |  |  |  |  |   42|  42.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 293, False: 41.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|    293|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|    293|      return Result::Error;    \
  |  |  |  |  |  |   45|    293|    }                          \
  |  |  |  |  |  |   46|  42.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  42.1k|               #member " callback failed")
  ------------------
 2233|  41.8k|                  break;
 2234|  41.8k|                default:
  ------------------
  |  Branch (2234:17): [True: 0, False: 78.6k]
  ------------------
 2235|      0|                  WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
 2236|  78.6k|              }
 2237|  75.8k|              break;
 2238|  78.6k|            }
 2239|  75.8k|            case SymbolType::Data: {
  ------------------
  |  Branch (2239:13): [True: 17.6k, False: 133k]
  ------------------
 2240|  17.6k|              uint32_t segment = 0;
 2241|  17.6k|              uint32_t offset = 0;
 2242|  17.6k|              uint32_t size = 0;
 2243|  17.6k|              CHECK_RESULT(ReadStr(&name, "symbol name"));
  ------------------
  |  |   55|  17.6k|  do {                              \
  |  |   56|  17.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4.39k, False: 13.2k]
  |  |  ------------------
  |  |   57|  4.39k|      return ::wabt::Result::Error; \
  |  |   58|  4.39k|    }                               \
  |  |   59|  17.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2244|  13.2k|              if ((flags & WABT_SYMBOL_FLAG_UNDEFINED) == 0) {
  ------------------
  |  |  326|  13.2k|#define WABT_SYMBOL_FLAG_UNDEFINED 0x10
  ------------------
  |  Branch (2244:19): [True: 12.0k, False: 1.20k]
  ------------------
 2245|  12.0k|                CHECK_RESULT(ReadU32Leb128(&segment, "segment"));
  ------------------
  |  |   55|  12.0k|  do {                              \
  |  |   56|  12.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 210, False: 11.8k]
  |  |  ------------------
  |  |   57|    210|      return ::wabt::Result::Error; \
  |  |   58|    210|    }                               \
  |  |   59|  12.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2246|  11.8k|                CHECK_RESULT(ReadU32Leb128(&offset, "offset"));
  ------------------
  |  |   55|  11.8k|  do {                              \
  |  |   56|  11.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 813, False: 11.0k]
  |  |  ------------------
  |  |   57|    813|      return ::wabt::Result::Error; \
  |  |   58|    813|    }                               \
  |  |   59|  11.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2247|  11.0k|                CHECK_RESULT(ReadU32Leb128(&size, "size"));
  ------------------
  |  |   55|  11.0k|  do {                              \
  |  |   56|  11.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 96, False: 10.9k]
  |  |  ------------------
  |  |   57|     96|      return ::wabt::Result::Error; \
  |  |   58|     96|    }                               \
  |  |   59|  11.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2248|  11.0k|              }
 2249|  12.1k|              CALLBACK(OnDataSymbol, i, flags, name, segment, offset, size);
  ------------------
  |  |   61|  12.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  12.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  12.1k|  do {                         \
  |  |  |  |  |  |   42|  12.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 5.34k, False: 6.83k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|  5.34k|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|  5.34k|      return Result::Error;    \
  |  |  |  |  |  |   45|  5.34k|    }                          \
  |  |  |  |  |  |   46|  12.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  12.1k|               #member " callback failed")
  ------------------
 2250|  6.83k|              break;
 2251|  12.1k|            }
 2252|  6.83k|            case SymbolType::Section: {
  ------------------
  |  Branch (2252:13): [True: 732, False: 150k]
  ------------------
 2253|    732|              uint32_t index = 0;
 2254|    732|              CHECK_RESULT(ReadU32Leb128(&index, "index"));
  ------------------
  |  |   55|    732|  do {                              \
  |  |   56|    732|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 219, False: 513]
  |  |  ------------------
  |  |   57|    219|      return ::wabt::Result::Error; \
  |  |   58|    219|    }                               \
  |  |   59|    732|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2255|    513|              CALLBACK(OnSectionSymbol, i, flags, index);
  ------------------
  |  |   61|    513|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    513|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    513|  do {                         \
  |  |  |  |  |  |   42|    513|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 513]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    513|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    513|               #member " callback failed")
  ------------------
 2256|    513|              break;
 2257|    513|            }
 2258|   151k|          }
 2259|   151k|        }
 2260|    681|        break;
 2261|  14.5k|      case LinkingEntryType::SegmentInfo:
  ------------------
  |  Branch (2261:7): [True: 14.5k, False: 55.8k]
  ------------------
 2262|  14.5k|        CHECK_RESULT(ReadU32Leb128(&count, "info count"));
  ------------------
  |  |   55|  14.5k|  do {                              \
  |  |   56|  14.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 197, False: 14.3k]
  |  |  ------------------
  |  |   57|    197|      return ::wabt::Result::Error; \
  |  |   58|    197|    }                               \
  |  |   59|  14.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2263|  14.3k|        CALLBACK(OnSegmentInfoCount, count);
  ------------------
  |  |   61|  14.3k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  14.3k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  14.3k|  do {                         \
  |  |  |  |  |  |   42|  14.3k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 14.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  14.3k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  14.3k|               #member " callback failed")
  ------------------
 2264|  15.7k|        for (Index i = 0; i < count; i++) {
  ------------------
  |  Branch (2264:27): [True: 2.86k, False: 12.9k]
  ------------------
 2265|  2.86k|          std::string_view name;
 2266|  2.86k|          Address alignment_log2;
 2267|  2.86k|          uint32_t flags;
 2268|  2.86k|          CHECK_RESULT(ReadStr(&name, "segment name"));
  ------------------
  |  |   55|  2.86k|  do {                              \
  |  |   56|  2.86k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 328, False: 2.53k]
  |  |  ------------------
  |  |   57|    328|      return ::wabt::Result::Error; \
  |  |   58|    328|    }                               \
  |  |   59|  2.86k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2269|  2.53k|          CHECK_RESULT(ReadAlignment(&alignment_log2, "segment alignment"));
  ------------------
  |  |   55|  2.53k|  do {                              \
  |  |   56|  2.53k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 771, False: 1.76k]
  |  |  ------------------
  |  |   57|    771|      return ::wabt::Result::Error; \
  |  |   58|    771|    }                               \
  |  |   59|  2.53k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2270|  1.76k|          CHECK_RESULT(ReadU32Leb128(&flags, "segment flags"));
  ------------------
  |  |   55|  1.76k|  do {                              \
  |  |   56|  1.76k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 395, False: 1.37k]
  |  |  ------------------
  |  |   57|    395|      return ::wabt::Result::Error; \
  |  |   58|    395|    }                               \
  |  |   59|  1.76k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2271|  1.37k|          CALLBACK(OnSegmentInfo, i, name, alignment_log2, flags);
  ------------------
  |  |   61|  1.37k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.37k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.37k|  do {                         \
  |  |  |  |  |  |   42|  1.37k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.37k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.37k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.37k|               #member " callback failed")
  ------------------
 2272|  1.37k|        }
 2273|  12.9k|        break;
 2274|  12.9k|      case LinkingEntryType::InitFunctions:
  ------------------
  |  Branch (2274:7): [True: 1.11k, False: 69.3k]
  ------------------
 2275|  1.11k|        CHECK_RESULT(ReadU32Leb128(&count, "info count"));
  ------------------
  |  |   55|  1.11k|  do {                              \
  |  |   56|  1.11k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 137, False: 974]
  |  |  ------------------
  |  |   57|    137|      return ::wabt::Result::Error; \
  |  |   58|    137|    }                               \
  |  |   59|  1.11k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2276|    974|        CALLBACK(OnInitFunctionCount, count);
  ------------------
  |  |   61|    974|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    974|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    974|  do {                         \
  |  |  |  |  |  |   42|    974|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 974]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    974|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    974|               #member " callback failed")
  ------------------
 2277|  1.58k|        while (count--) {
  ------------------
  |  Branch (2277:16): [True: 1.33k, False: 245]
  ------------------
 2278|  1.33k|          uint32_t priority;
 2279|  1.33k|          uint32_t symbol;
 2280|  1.33k|          CHECK_RESULT(ReadU32Leb128(&priority, "priority"));
  ------------------
  |  |   55|  1.33k|  do {                              \
  |  |   56|  1.33k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 359, False: 977]
  |  |  ------------------
  |  |   57|    359|      return ::wabt::Result::Error; \
  |  |   58|    359|    }                               \
  |  |   59|  1.33k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2281|    977|          CHECK_RESULT(ReadU32Leb128(&symbol, "symbol index"));
  ------------------
  |  |   55|    977|  do {                              \
  |  |   56|    977|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 370, False: 607]
  |  |  ------------------
  |  |   57|    370|      return ::wabt::Result::Error; \
  |  |   58|    370|    }                               \
  |  |   59|    977|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2282|    607|          CALLBACK(OnInitFunction, priority, symbol);
  ------------------
  |  |   61|    607|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    607|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    607|  do {                         \
  |  |  |  |  |  |   42|    607|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 607]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    607|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    607|               #member " callback failed")
  ------------------
 2283|    607|        }
 2284|    245|        break;
 2285|  2.88k|      case LinkingEntryType::ComdatInfo:
  ------------------
  |  Branch (2285:7): [True: 2.88k, False: 67.5k]
  ------------------
 2286|  2.88k|        CHECK_RESULT(ReadU32Leb128(&count, "count"));
  ------------------
  |  |   55|  2.88k|  do {                              \
  |  |   56|  2.88k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 367, False: 2.51k]
  |  |  ------------------
  |  |   57|    367|      return ::wabt::Result::Error; \
  |  |   58|    367|    }                               \
  |  |   59|  2.88k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2287|  2.51k|        CALLBACK(OnComdatCount, count);
  ------------------
  |  |   61|  2.51k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.51k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.51k|  do {                         \
  |  |  |  |  |  |   42|  2.51k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.51k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.51k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.51k|               #member " callback failed")
  ------------------
 2288|  3.69k|        while (count--) {
  ------------------
  |  Branch (2288:16): [True: 3.28k, False: 402]
  ------------------
 2289|  3.28k|          uint32_t flags;
 2290|  3.28k|          uint32_t entry_count;
 2291|  3.28k|          std::string_view name;
 2292|  3.28k|          CHECK_RESULT(ReadStr(&name, "comdat name"));
  ------------------
  |  |   55|  3.28k|  do {                              \
  |  |   56|  3.28k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 310, False: 2.97k]
  |  |  ------------------
  |  |   57|    310|      return ::wabt::Result::Error; \
  |  |   58|    310|    }                               \
  |  |   59|  3.28k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2293|  2.97k|          CHECK_RESULT(ReadU32Leb128(&flags, "flags"));
  ------------------
  |  |   55|  2.97k|  do {                              \
  |  |   56|  2.97k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 227, False: 2.75k]
  |  |  ------------------
  |  |   57|    227|      return ::wabt::Result::Error; \
  |  |   58|    227|    }                               \
  |  |   59|  2.97k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2294|  2.75k|          CHECK_RESULT(ReadU32Leb128(&entry_count, "entry count"));
  ------------------
  |  |   55|  2.75k|  do {                              \
  |  |   56|  2.75k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 333, False: 2.41k]
  |  |  ------------------
  |  |   57|    333|      return ::wabt::Result::Error; \
  |  |   58|    333|    }                               \
  |  |   59|  2.75k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2295|  2.41k|          CALLBACK(OnComdatBegin, name, flags, entry_count);
  ------------------
  |  |   61|  2.41k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.41k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.41k|  do {                         \
  |  |  |  |  |  |   42|  2.41k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.41k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.41k|               #member " callback failed")
  ------------------
 2296|  3.76k|          while (entry_count--) {
  ------------------
  |  Branch (2296:18): [True: 2.59k, False: 1.17k]
  ------------------
 2297|  2.59k|            uint32_t kind;
 2298|  2.59k|            uint32_t index;
 2299|  2.59k|            CHECK_RESULT(ReadU32Leb128(&kind, "kind"));
  ------------------
  |  |   55|  2.59k|  do {                              \
  |  |   56|  2.59k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 818, False: 1.77k]
  |  |  ------------------
  |  |   57|    818|      return ::wabt::Result::Error; \
  |  |   58|    818|    }                               \
  |  |   59|  2.59k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2300|  1.77k|            CHECK_RESULT(ReadU32Leb128(&index, "index"));
  ------------------
  |  |   55|  1.77k|  do {                              \
  |  |   56|  1.77k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 429, False: 1.34k]
  |  |  ------------------
  |  |   57|    429|      return ::wabt::Result::Error; \
  |  |   58|    429|    }                               \
  |  |   59|  1.77k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2301|  1.34k|            ComdatType comdat_type = static_cast<ComdatType>(kind);
 2302|  1.34k|            CALLBACK(OnComdatEntry, comdat_type, index);
  ------------------
  |  |   61|  1.34k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.34k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.34k|  do {                         \
  |  |  |  |  |  |   42|  1.34k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.34k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.34k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.34k|               #member " callback failed")
  ------------------
 2303|  1.34k|          }
 2304|  2.41k|        }
 2305|    402|        break;
 2306|  21.9k|      default:
  ------------------
  |  Branch (2306:7): [True: 21.9k, False: 48.4k]
  ------------------
 2307|       |        // Unknown subsection, skip it.
 2308|  21.9k|        state_.offset = subsection_end;
 2309|  21.9k|        break;
 2310|  70.4k|    }
 2311|  36.2k|    ERROR_UNLESS(state_.offset == subsection_end,
  ------------------
  |  |   48|  36.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  36.2k|  do {                         \
  |  |  |  |   42|  36.2k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 596, False: 35.6k]
  |  |  |  |  ------------------
  |  |  |  |   43|    596|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    596|      return Result::Error;    \
  |  |  |  |   45|    596|    }                          \
  |  |  |  |   46|  36.2k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2312|  36.2k|                 "unfinished sub-section (expected end: 0x%" PRIzx ")",
 2313|  36.2k|                 subsection_end);
 2314|  36.2k|  }
 2315|    781|  CALLBACK0(EndLinkingSection);
  ------------------
  |  |   58|    781|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    781|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    781|  do {                         \
  |  |  |  |  |  |   42|    781|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 781]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    781|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2316|    781|  return Result::Ok;
 2317|    781|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadAlignmentEPmPKc:
  432|   164k|Result BinaryReader::ReadAlignment(Address* alignment_log2, const char* desc) {
  433|   164k|  uint32_t value;
  434|   164k|  CHECK_RESULT(ReadU32Leb128(&value, desc));
  ------------------
  |  |   55|   164k|  do {                              \
  |  |   56|   164k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 685, False: 163k]
  |  |  ------------------
  |  |   57|    685|      return ::wabt::Result::Error; \
  |  |   58|    685|    }                               \
  |  |   59|   164k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  435|   163k|  if (value >= 128 ||
  ------------------
  |  Branch (435:7): [True: 425, False: 163k]
  ------------------
  436|   163k|      (value >= 32 && !options_.features.multi_memory_enabled())) {
  ------------------
  |  Branch (436:8): [True: 74.5k, False: 88.7k]
  |  Branch (436:23): [True: 352, False: 74.2k]
  ------------------
  437|    777|    PrintError("invalid %s: %u", desc, value);
  438|    777|    return Result::Error;
  439|    777|  }
  440|   162k|  *alignment_log2 = value;
  441|   162k|  return Result::Ok;
  442|   163k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader23ReadCodeMetadataSectionENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEm:
 2345|   189k|                                             Offset section_size) {
 2346|   189k|  CALLBACK(BeginCodeMetadataSection, name, section_size);
  ------------------
  |  |   61|   189k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   189k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   189k|  do {                         \
  |  |  |  |  |  |   42|   189k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 189k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   189k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   189k|               #member " callback failed")
  ------------------
 2347|       |
 2348|   189k|  Index num_functions;
 2349|   189k|  CHECK_RESULT(ReadCount(&num_functions, "function count"));
  ------------------
  |  |   55|   189k|  do {                              \
  |  |   56|   189k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.05k, False: 188k]
  |  |  ------------------
  |  |   57|  1.05k|      return ::wabt::Result::Error; \
  |  |   58|  1.05k|    }                               \
  |  |   59|   189k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2350|   188k|  CALLBACK(OnCodeMetadataFuncCount, num_functions);
  ------------------
  |  |   61|   188k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   188k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   188k|  do {                         \
  |  |  |  |  |  |   42|   188k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 188k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   188k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   188k|               #member " callback failed")
  ------------------
 2351|       |
 2352|   188k|  Index last_function_index = kInvalidIndex;
 2353|   681k|  for (Index i = 0; i < num_functions; ++i) {
  ------------------
  |  Branch (2353:21): [True: 638k, False: 43.8k]
  ------------------
 2354|   638k|    Index function_index;
 2355|   638k|    CHECK_RESULT(ReadCount(&function_index, "function index"));
  ------------------
  |  |   55|   638k|  do {                              \
  |  |   56|   638k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6.76k, False: 631k]
  |  |  ------------------
  |  |   57|  6.76k|      return ::wabt::Result::Error; \
  |  |   58|  6.76k|    }                               \
  |  |   59|   638k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2356|   631k|    ERROR_UNLESS(function_index >= num_func_imports_,
  ------------------
  |  |   48|   631k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   631k|  do {                         \
  |  |  |  |   42|   631k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 194, False: 631k]
  |  |  |  |  ------------------
  |  |  |  |   43|    194|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    194|      return Result::Error;    \
  |  |  |  |   45|    194|    }                          \
  |  |  |  |   46|   631k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2357|   631k|                 "function import can't have metadata (got %" PRIindex ")",
 2358|   631k|                 function_index);
 2359|   631k|    ERROR_UNLESS(function_index < NumTotalFuncs(),
  ------------------
  |  |   48|   631k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   631k|  do {                         \
  |  |  |  |   42|   631k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 13.1k, False: 617k]
  |  |  |  |  ------------------
  |  |  |  |   43|  13.1k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  13.1k|      return Result::Error;    \
  |  |  |  |   45|  13.1k|    }                          \
  |  |  |  |   46|   631k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2360|   617k|                 "invalid function index: %" PRIindex, function_index);
 2361|   617k|    ERROR_UNLESS(function_index != last_function_index,
  ------------------
  |  |   48|   617k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   617k|  do {                         \
  |  |  |  |   42|   617k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 36.8k, False: 581k]
  |  |  |  |  ------------------
  |  |  |  |   43|  36.8k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  36.8k|      return Result::Error;    \
  |  |  |  |   45|  36.8k|    }                          \
  |  |  |  |   46|   617k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2362|   581k|                 "duplicate function index: %" PRIindex, function_index);
 2363|   581k|    ERROR_UNLESS(last_function_index == kInvalidIndex ||
  ------------------
  |  |   48|   581k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   581k|  do {                         \
  |  |  |  |   42|  1.55M|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 187k, False: 394k]
  |  |  |  |  |  Branch (42:9): [True: 311k, False: 83.0k]
  |  |  |  |  ------------------
  |  |  |  |   43|  83.0k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  83.0k|      return Result::Error;    \
  |  |  |  |   45|  83.0k|    }                          \
  |  |  |  |   46|   581k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2364|   498k|                     function_index > last_function_index,
 2365|   498k|                 "function index out of order: %" PRIindex, function_index);
 2366|   498k|    last_function_index = function_index;
 2367|       |
 2368|   498k|    Index num_metadata;
 2369|   498k|    CHECK_RESULT(ReadCount(&num_metadata, "metadata instances count"));
  ------------------
  |  |   55|   498k|  do {                              \
  |  |   56|   498k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.05k, False: 497k]
  |  |  ------------------
  |  |   57|  1.05k|      return ::wabt::Result::Error; \
  |  |   58|  1.05k|    }                               \
  |  |   59|   498k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2370|       |
 2371|   497k|    CALLBACK(OnCodeMetadataCount, function_index, num_metadata);
  ------------------
  |  |   61|   497k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   497k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   497k|  do {                         \
  |  |  |  |  |  |   42|   497k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 497k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   497k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   497k|               #member " callback failed")
  ------------------
 2372|       |
 2373|   497k|    Offset last_code_offset = kInvalidOffset;
 2374|   501k|    for (Index j = 0; j < num_metadata; ++j) {
  ------------------
  |  Branch (2374:23): [True: 7.93k, False: 493k]
  ------------------
 2375|  7.93k|      Offset code_offset;
 2376|  7.93k|      CHECK_RESULT(ReadOffset(&code_offset, "code offset"));
  ------------------
  |  |   55|  7.93k|  do {                              \
  |  |   56|  7.93k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 347, False: 7.59k]
  |  |  ------------------
  |  |   57|    347|      return ::wabt::Result::Error; \
  |  |   58|    347|    }                               \
  |  |   59|  7.93k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2377|  7.59k|      ERROR_UNLESS(code_offset != last_code_offset,
  ------------------
  |  |   48|  7.59k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  7.59k|  do {                         \
  |  |  |  |   42|  7.59k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 93, False: 7.49k]
  |  |  |  |  ------------------
  |  |  |  |   43|     93|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     93|      return Result::Error;    \
  |  |  |  |   45|     93|    }                          \
  |  |  |  |   46|  7.59k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2378|  7.49k|                   "duplicate code offset: %" PRIzx, code_offset);
 2379|  7.49k|      ERROR_UNLESS(
  ------------------
  |  |   48|  7.49k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  7.49k|  do {                         \
  |  |  |  |   42|  18.9k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 3.55k, False: 3.94k]
  |  |  |  |  |  Branch (42:9): [True: 1.62k, False: 2.32k]
  |  |  |  |  ------------------
  |  |  |  |   43|  2.32k|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|  2.32k|      return Result::Error;    \
  |  |  |  |   45|  2.32k|    }                          \
  |  |  |  |   46|  7.49k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2380|  5.17k|          last_code_offset == kInvalidOffset || code_offset > last_code_offset,
 2381|  5.17k|          "code offset out of order: %" PRIzx, code_offset);
 2382|  5.17k|      last_code_offset = code_offset;
 2383|       |
 2384|  5.17k|      Address data_size;
 2385|  5.17k|      const void* data;
 2386|  5.17k|      CHECK_RESULT(ReadBytes(&data, &data_size, "instance data"));
  ------------------
  |  |   55|  5.17k|  do {                              \
  |  |   56|  5.17k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 536, False: 4.64k]
  |  |  ------------------
  |  |   57|    536|      return ::wabt::Result::Error; \
  |  |   58|    536|    }                               \
  |  |   59|  5.17k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2387|  4.64k|      CALLBACK(OnCodeMetadata, code_offset, data, data_size);
  ------------------
  |  |   61|  4.64k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.64k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.64k|  do {                         \
  |  |  |  |  |  |   42|  4.64k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.64k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.64k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.64k|               #member " callback failed")
  ------------------
 2388|  4.64k|    }
 2389|   497k|  }
 2390|       |
 2391|  43.8k|  CALLBACK(EndCodeMetadataSection);
  ------------------
  |  |   61|  43.8k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  43.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  43.8k|  do {                         \
  |  |  |  |  |  |   42|  43.8k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 43.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  43.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  43.8k|               #member " callback failed")
  ------------------
 2392|  43.8k|  return Result::Ok;
 2393|  43.8k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadBytesEPPKvPmPKc:
  399|  6.51k|                               const char* desc) {
  400|  6.51k|  uint32_t data_size = 0;
  401|  6.51k|  CHECK_RESULT(ReadU32Leb128(&data_size, "data size"));
  ------------------
  |  |   55|  6.51k|  do {                              \
  |  |   56|  6.51k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 317, False: 6.19k]
  |  |  ------------------
  |  |   57|    317|      return ::wabt::Result::Error; \
  |  |   58|    317|    }                               \
  |  |   59|  6.51k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  402|  6.19k|  CHECK_RESULT(ReadBytesWithSize(out_data, data_size, desc));
  ------------------
  |  |   55|  6.19k|  do {                              \
  |  |   56|  6.19k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 304, False: 5.89k]
  |  |  ------------------
  |  |   57|    304|      return ::wabt::Result::Error; \
  |  |   58|    304|    }                               \
  |  |   59|  6.19k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  403|  5.89k|  *out_data_size = data_size;
  404|  5.89k|  return Result::Ok;
  405|  6.19k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardIbXadL_ZNS1_23reading_custom_section_EEEED2Ev:
   86|   507k|    ~ValueRestoreGuard() { this_->*member = previous_value_; }
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadTypeSectionEm:
 2437|  1.13k|Result BinaryReader::ReadTypeSection(Offset section_size) {
 2438|  1.13k|  CALLBACK(BeginTypeSection, section_size);
  ------------------
  |  |   61|  1.13k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.13k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.13k|  do {                         \
  |  |  |  |  |  |   42|  1.13k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.13k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.13k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.13k|               #member " callback failed")
  ------------------
 2439|  1.13k|  Index num_signatures;
 2440|  1.13k|  CHECK_RESULT(ReadCount(&num_signatures, "type count"));
  ------------------
  |  |   55|  1.13k|  do {                              \
  |  |   56|  1.13k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 193, False: 937]
  |  |  ------------------
  |  |   57|    193|      return ::wabt::Result::Error; \
  |  |   58|    193|    }                               \
  |  |   59|  1.13k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2441|    937|  CALLBACK(OnTypeCount, num_signatures);
  ------------------
  |  |   61|    937|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    937|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    937|  do {                         \
  |  |  |  |  |  |   42|    937|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 937]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    937|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    937|               #member " callback failed")
  ------------------
 2442|       |
 2443|  2.04k|  for (Index i = 0; i < num_signatures; ++i) {
  ------------------
  |  Branch (2443:21): [True: 1.97k, False: 78]
  ------------------
 2444|  1.97k|    Type form;
 2445|  1.97k|    if (options_.features.gc_enabled()) {
  ------------------
  |  Branch (2445:9): [True: 1.19k, False: 778]
  ------------------
 2446|  1.19k|      CHECK_RESULT(ReadType(&form, "type form"));
  ------------------
  |  |   55|  1.19k|  do {                              \
  |  |   56|  1.19k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 30, False: 1.16k]
  |  |  ------------------
  |  |   57|     30|      return ::wabt::Result::Error; \
  |  |   58|     30|    }                               \
  |  |   59|  1.19k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2447|  1.19k|    } else {
 2448|    778|      uint8_t type;
 2449|    778|      CHECK_RESULT(ReadU8(&type, "type form"));
  ------------------
  |  |   55|    778|  do {                              \
  |  |   56|    778|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 16, False: 762]
  |  |  ------------------
  |  |   57|     16|      return ::wabt::Result::Error; \
  |  |   58|     16|    }                               \
  |  |   59|    778|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2450|    762|      ERROR_UNLESS(type == 0x60, "unexpected type form (got %#x)", type);
  ------------------
  |  |   48|    762|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    762|  do {                         \
  |  |  |  |   42|    762|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 71, False: 691]
  |  |  |  |  ------------------
  |  |  |  |   43|     71|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     71|      return Result::Error;    \
  |  |  |  |   45|     71|    }                          \
  |  |  |  |   46|    762|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2451|    691|      form = Type::Func;
 2452|    691|    }
 2453|       |
 2454|  1.85k|    switch (form) {
 2455|  1.30k|      case Type::Func: {
  ------------------
  |  Branch (2455:7): [True: 1.30k, False: 552]
  ------------------
 2456|  1.30k|        Index num_params;
 2457|  1.30k|        CHECK_RESULT(ReadCount(&num_params, "function param count"));
  ------------------
  |  |   55|  1.30k|  do {                              \
  |  |   56|  1.30k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 43, False: 1.25k]
  |  |  ------------------
  |  |   57|     43|      return ::wabt::Result::Error; \
  |  |   58|     43|    }                               \
  |  |   59|  1.30k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2458|       |
 2459|  1.25k|        param_types_.resize(num_params);
 2460|       |
 2461|  3.85k|        for (Index j = 0; j < num_params; ++j) {
  ------------------
  |  Branch (2461:27): [True: 2.70k, False: 1.15k]
  ------------------
 2462|  2.70k|          Type param_type;
 2463|  2.70k|          CHECK_RESULT(ReadType(&param_type, "function param type"));
  ------------------
  |  |   55|  2.70k|  do {                              \
  |  |   56|  2.70k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 16, False: 2.68k]
  |  |  ------------------
  |  |   57|     16|      return ::wabt::Result::Error; \
  |  |   58|     16|    }                               \
  |  |   59|  2.70k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2464|  2.68k|          ERROR_UNLESS(IsConcreteType(param_type),
  ------------------
  |  |   48|  2.68k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  2.68k|  do {                         \
  |  |  |  |   42|  2.68k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 89, False: 2.59k]
  |  |  |  |  ------------------
  |  |  |  |   43|    178|      PrintError(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (43:18): [True: 52, False: 37]
  |  |  |  |  ------------------
  |  |  |  |   44|     89|      return Result::Error;    \
  |  |  |  |   45|     89|    }                          \
  |  |  |  |   46|  2.68k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2465|  2.59k|                       "expected valid param type (got " PRItypecode ")",
 2466|  2.59k|                       WABT_PRINTF_TYPE_CODE(param_type));
 2467|  2.59k|          param_types_[j] = param_type;
 2468|  2.59k|        }
 2469|       |
 2470|  1.15k|        Index num_results;
 2471|  1.15k|        CHECK_RESULT(ReadCount(&num_results, "function result count"));
  ------------------
  |  |   55|  1.15k|  do {                              \
  |  |   56|  1.15k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 78, False: 1.07k]
  |  |  ------------------
  |  |   57|     78|      return ::wabt::Result::Error; \
  |  |   58|     78|    }                               \
  |  |   59|  1.15k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2472|       |
 2473|  1.07k|        result_types_.resize(num_results);
 2474|       |
 2475|  3.54k|        for (Index j = 0; j < num_results; ++j) {
  ------------------
  |  Branch (2475:27): [True: 2.62k, False: 925]
  ------------------
 2476|  2.62k|          Type result_type;
 2477|  2.62k|          CHECK_RESULT(ReadType(&result_type, "function result type"));
  ------------------
  |  |   55|  2.62k|  do {                              \
  |  |   56|  2.62k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 2.61k]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|  2.62k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2478|  2.61k|          ERROR_UNLESS(IsConcreteType(result_type),
  ------------------
  |  |   48|  2.61k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  2.61k|  do {                         \
  |  |  |  |   42|  2.61k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 140, False: 2.47k]
  |  |  |  |  ------------------
  |  |  |  |   43|    280|      PrintError(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (43:18): [True: 63, False: 77]
  |  |  |  |  ------------------
  |  |  |  |   44|    140|      return Result::Error;    \
  |  |  |  |   45|    140|    }                          \
  |  |  |  |   46|  2.61k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2479|  2.47k|                       "expected valid result type (got " PRItypecode ")",
 2480|  2.47k|                       WABT_PRINTF_TYPE_CODE(result_type));
 2481|  2.47k|          result_types_[j] = result_type;
 2482|  2.47k|        }
 2483|       |
 2484|    925|        Type* param_types = num_params ? param_types_.data() : nullptr;
  ------------------
  |  Branch (2484:29): [True: 425, False: 500]
  ------------------
 2485|    925|        Type* result_types = num_results ? result_types_.data() : nullptr;
  ------------------
  |  Branch (2485:30): [True: 386, False: 539]
  ------------------
 2486|       |
 2487|    925|        CALLBACK(OnFuncType, i, num_params, param_types, num_results,
  ------------------
  |  |   61|    925|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    925|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    925|  do {                         \
  |  |  |  |  |  |   42|    925|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 925]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    925|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    925|               #member " callback failed")
  ------------------
 2488|    925|                 result_types);
 2489|    925|        break;
 2490|    925|      }
 2491|       |
 2492|    925|      case Type::Struct: {
  ------------------
  |  Branch (2492:7): [True: 245, False: 1.60k]
  ------------------
 2493|    245|        ERROR_UNLESS(options_.features.gc_enabled(),
  ------------------
  |  |   48|    245|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    245|  do {                         \
  |  |  |  |   42|    245|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 245]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|    245|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2494|    245|                     "invalid type form: struct not allowed");
 2495|    245|        Index num_fields;
 2496|    245|        CHECK_RESULT(ReadCount(&num_fields, "field count"));
  ------------------
  |  |   55|    245|  do {                              \
  |  |   56|    245|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 35, False: 210]
  |  |  ------------------
  |  |   57|     35|      return ::wabt::Result::Error; \
  |  |   58|     35|    }                               \
  |  |   59|    245|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2497|       |
 2498|    210|        fields_.resize(num_fields);
 2499|    959|        for (Index j = 0; j < num_fields; ++j) {
  ------------------
  |  Branch (2499:27): [True: 814, False: 145]
  ------------------
 2500|    814|          CHECK_RESULT(ReadField(&fields_[j]));
  ------------------
  |  |   55|    814|  do {                              \
  |  |   56|    814|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 65, False: 749]
  |  |  ------------------
  |  |   57|     65|      return ::wabt::Result::Error; \
  |  |   58|     65|    }                               \
  |  |   59|    814|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2501|    814|        }
 2502|       |
 2503|    145|        CALLBACK(OnStructType, i, fields_.size(), fields_.data());
  ------------------
  |  |   61|    145|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    145|               #member " callback failed")
  ------------------
 2504|    145|        break;
 2505|    145|      }
 2506|       |
 2507|    145|      case Type::Array: {
  ------------------
  |  Branch (2507:7): [True: 138, False: 1.71k]
  ------------------
 2508|    138|        ERROR_UNLESS(options_.features.gc_enabled(),
  ------------------
  |  |   48|    138|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    138|  do {                         \
  |  |  |  |   42|    138|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 0, False: 138]
  |  |  |  |  ------------------
  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |   45|      0|    }                          \
  |  |  |  |   46|    138|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2509|    138|                     "invalid type form: array not allowed");
 2510|       |
 2511|    138|        TypeMut field;
 2512|    138|        CHECK_RESULT(ReadField(&field));
  ------------------
  |  |   55|    138|  do {                              \
  |  |   56|    138|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 97, False: 41]
  |  |  ------------------
  |  |   57|     97|      return ::wabt::Result::Error; \
  |  |   58|     97|    }                               \
  |  |   59|    138|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2513|     41|        CALLBACK(OnArrayType, i, field);
  ------------------
  |  |   61|     41|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|     41|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     41|  do {                         \
  |  |  |  |  |  |   42|     41|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 41]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     41|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|     41|               #member " callback failed")
  ------------------
 2514|     41|        break;
 2515|     41|      };
 2516|       |
 2517|    169|      default:
  ------------------
  |  Branch (2517:7): [True: 169, False: 1.68k]
  ------------------
 2518|    169|        PrintError("unexpected type form (got " PRItypecode ")",
 2519|    169|                   WABT_PRINTF_TYPE_CODE(form));
  ------------------
  |  |   32|    169|  (static_cast<int32_t>(x) < 0 ? "-" : ""), std::abs(static_cast<int32_t>(x))
  |  |  ------------------
  |  |  |  Branch (32:4): [True: 81, False: 88]
  |  |  ------------------
  ------------------
 2520|    169|        return Result::Error;
 2521|  1.85k|    }
 2522|  1.85k|  }
 2523|     78|  CALLBACK0(EndTypeSection);
  ------------------
  |  |   58|     78|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|     78|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     78|  do {                         \
  |  |  |  |  |  |   42|     78|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 78]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     78|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2524|     78|  return Result::Ok;
 2525|     78|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader8ReadTypeEPNS_4TypeEPKc:
  350|   700k|Result BinaryReader::ReadType(Type* out_value, const char* desc) {
  351|   700k|  uint32_t type = 0;
  352|   700k|  CHECK_RESULT(ReadS32Leb128(&type, desc));
  ------------------
  |  |   55|   700k|  do {                              \
  |  |   56|   700k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 281, False: 700k]
  |  |  ------------------
  |  |   57|    281|      return ::wabt::Result::Error; \
  |  |   58|    281|    }                               \
  |  |   59|   700k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  353|   700k|  if (static_cast<Type::Enum>(type) == Type::Reference) {
  ------------------
  |  Branch (353:7): [True: 2.39k, False: 697k]
  ------------------
  354|  2.39k|    uint32_t heap_type = 0;
  355|  2.39k|    CHECK_RESULT(ReadS32Leb128(&heap_type, desc));
  ------------------
  |  |   55|  2.39k|  do {                              \
  |  |   56|  2.39k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 8, False: 2.38k]
  |  |  ------------------
  |  |   57|      8|      return ::wabt::Result::Error; \
  |  |   58|      8|    }                               \
  |  |   59|  2.39k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  356|  2.38k|    *out_value = Type(Type::Reference, heap_type);
  357|   697k|  } else {
  358|   697k|    *out_value = static_cast<Type>(type);
  359|   697k|  }
  360|   700k|  return Result::Ok;
  361|   700k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader14IsConcreteTypeENS_4TypeE:
  528|   699k|bool BinaryReader::IsConcreteType(Type type) {
  529|   699k|  switch (type) {
  530|  4.67k|    case Type::I32:
  ------------------
  |  Branch (530:5): [True: 4.67k, False: 694k]
  ------------------
  531|  7.66k|    case Type::I64:
  ------------------
  |  Branch (531:5): [True: 2.98k, False: 696k]
  ------------------
  532|  10.1k|    case Type::F32:
  ------------------
  |  Branch (532:5): [True: 2.50k, False: 696k]
  ------------------
  533|  12.2k|    case Type::F64:
  ------------------
  |  Branch (533:5): [True: 2.09k, False: 697k]
  ------------------
  534|  12.2k|      return true;
  535|       |
  536|  3.11k|    case Type::V128:
  ------------------
  |  Branch (536:5): [True: 3.11k, False: 696k]
  ------------------
  537|  3.11k|      return options_.features.simd_enabled();
  538|       |
  539|  2.88k|    case Type::FuncRef:
  ------------------
  |  Branch (539:5): [True: 2.88k, False: 696k]
  ------------------
  540|  6.04k|    case Type::ExternRef:
  ------------------
  |  Branch (540:5): [True: 3.16k, False: 696k]
  ------------------
  541|  6.04k|      return options_.features.reference_types_enabled();
  542|       |
  543|  2.38k|    case Type::Reference:
  ------------------
  |  Branch (543:5): [True: 2.38k, False: 696k]
  ------------------
  544|  2.38k|      return options_.features.function_references_enabled();
  545|       |
  546|   675k|    default:
  ------------------
  |  Branch (546:5): [True: 675k, False: 23.8k]
  ------------------
  547|   675k|      return false;
  548|   699k|  }
  549|   699k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadFieldEPNS_7TypeMutE:
  512|    952|Result BinaryReader::ReadField(TypeMut* out_value) {
  513|       |  // TODO: Reuse for global header too?
  514|    952|  Type field_type;
  515|    952|  CHECK_RESULT(ReadType(&field_type, "field type"));
  ------------------
  |  |   55|    952|  do {                              \
  |  |   56|    952|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 8, False: 944]
  |  |  ------------------
  |  |   57|      8|      return ::wabt::Result::Error; \
  |  |   58|      8|    }                               \
  |  |   59|    952|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  516|    944|  ERROR_UNLESS(IsConcreteType(field_type),
  ------------------
  |  |   48|    944|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    944|  do {                         \
  |  |  |  |   42|    944|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 115, False: 829]
  |  |  |  |  ------------------
  |  |  |  |   43|    230|      PrintError(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (43:18): [True: 51, False: 64]
  |  |  |  |  ------------------
  |  |  |  |   44|    115|      return Result::Error;    \
  |  |  |  |   45|    115|    }                          \
  |  |  |  |   46|    944|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  517|    829|               "expected valid field type (got " PRItypecode ")",
  518|    829|               WABT_PRINTF_TYPE_CODE(field_type));
  519|       |
  520|    829|  uint8_t mutable_ = 0;
  521|    829|  CHECK_RESULT(ReadU8(&mutable_, "field mutability"));
  ------------------
  |  |   55|    829|  do {                              \
  |  |   56|    829|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 16, False: 813]
  |  |  ------------------
  |  |   57|     16|      return ::wabt::Result::Error; \
  |  |   58|     16|    }                               \
  |  |   59|    829|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  522|    813|  ERROR_UNLESS(mutable_ <= 1, "field mutability must be 0 or 1");
  ------------------
  |  |   48|    813|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    813|  do {                         \
  |  |  |  |   42|    813|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 23, False: 790]
  |  |  |  |  ------------------
  |  |  |  |   43|     23|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     23|      return Result::Error;    \
  |  |  |  |   45|     23|    }                          \
  |  |  |  |   46|    813|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  523|    790|  out_value->type = field_type;
  524|    790|  out_value->mutable_ = mutable_;
  525|    790|  return Result::Ok;
  526|    813|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadImportSectionEm:
 2527|    568|Result BinaryReader::ReadImportSection(Offset section_size) {
 2528|    568|  CALLBACK(BeginImportSection, section_size);
  ------------------
  |  |   61|    568|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    568|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    568|  do {                         \
  |  |  |  |  |  |   42|    568|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 568]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    568|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    568|               #member " callback failed")
  ------------------
 2529|    568|  Index num_imports;
 2530|    568|  CHECK_RESULT(ReadCount(&num_imports, "import count"));
  ------------------
  |  |   55|    568|  do {                              \
  |  |   56|    568|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 134, False: 434]
  |  |  ------------------
  |  |   57|    134|      return ::wabt::Result::Error; \
  |  |   58|    134|    }                               \
  |  |   59|    568|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2531|    434|  CALLBACK(OnImportCount, num_imports);
  ------------------
  |  |   61|    434|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    434|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    434|  do {                         \
  |  |  |  |  |  |   42|    434|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 434]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    434|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    434|               #member " callback failed")
  ------------------
 2532|  61.6k|  for (Index i = 0; i < num_imports; ++i) {
  ------------------
  |  Branch (2532:21): [True: 61.5k, False: 46]
  ------------------
 2533|  61.5k|    std::string_view module_name;
 2534|  61.5k|    CHECK_RESULT(ReadStr(&module_name, "import module name"));
  ------------------
  |  |   55|  61.5k|  do {                              \
  |  |   56|  61.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 158, False: 61.4k]
  |  |  ------------------
  |  |   57|    158|      return ::wabt::Result::Error; \
  |  |   58|    158|    }                               \
  |  |   59|  61.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2535|  61.4k|    std::string_view field_name;
 2536|  61.4k|    CHECK_RESULT(ReadStr(&field_name, "import field name"));
  ------------------
  |  |   55|  61.4k|  do {                              \
  |  |   56|  61.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 112, False: 61.2k]
  |  |  ------------------
  |  |   57|    112|      return ::wabt::Result::Error; \
  |  |   58|    112|    }                               \
  |  |   59|  61.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2537|       |
 2538|  61.2k|    uint8_t kind;
 2539|  61.2k|    CHECK_RESULT(ReadU8(&kind, "import kind"));
  ------------------
  |  |   55|  61.2k|  do {                              \
  |  |   56|  61.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 16, False: 61.2k]
  |  |  ------------------
  |  |   57|     16|      return ::wabt::Result::Error; \
  |  |   58|     16|    }                               \
  |  |   59|  61.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2540|  61.2k|    CALLBACK(OnImport, i, static_cast<ExternalKind>(kind), module_name,
  ------------------
  |  |   61|  61.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  61.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  61.2k|  do {                         \
  |  |  |  |  |  |   42|  61.2k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 61.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  61.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  61.2k|               #member " callback failed")
  ------------------
 2541|  61.2k|             field_name);
 2542|  61.2k|    switch (static_cast<ExternalKind>(kind)) {
 2543|  58.8k|      case ExternalKind::Func: {
  ------------------
  |  Branch (2543:7): [True: 58.8k, False: 2.41k]
  ------------------
 2544|  58.8k|        Index sig_index;
 2545|  58.8k|        CHECK_RESULT(ReadIndex(&sig_index, "import signature index"));
  ------------------
  |  |   55|  58.8k|  do {                              \
  |  |   56|  58.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 58.8k]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|  58.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2546|  58.8k|        CALLBACK(OnImportFunc, i, module_name, field_name, num_func_imports_,
  ------------------
  |  |   61|  58.8k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  58.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  58.8k|  do {                         \
  |  |  |  |  |  |   42|  58.8k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 58.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  58.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  58.8k|               #member " callback failed")
  ------------------
 2547|  58.8k|                 sig_index);
 2548|  58.8k|        num_func_imports_++;
 2549|  58.8k|        break;
 2550|  58.8k|      }
 2551|       |
 2552|    618|      case ExternalKind::Table: {
  ------------------
  |  Branch (2552:7): [True: 618, False: 60.6k]
  ------------------
 2553|    618|        Type elem_type;
 2554|    618|        Limits elem_limits;
 2555|    618|        CHECK_RESULT(ReadTable(&elem_type, &elem_limits));
  ------------------
  |  |   55|    618|  do {                              \
  |  |   56|    618|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 21, False: 597]
  |  |  ------------------
  |  |   57|     21|      return ::wabt::Result::Error; \
  |  |   58|     21|    }                               \
  |  |   59|    618|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2556|    597|        CALLBACK(OnImportTable, i, module_name, field_name, num_table_imports_,
  ------------------
  |  |   61|    597|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    597|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    597|  do {                         \
  |  |  |  |  |  |   42|    597|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 597]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    597|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    597|               #member " callback failed")
  ------------------
 2557|    597|                 elem_type, &elem_limits);
 2558|    597|        num_table_imports_++;
 2559|    597|        break;
 2560|    597|      }
 2561|       |
 2562|    725|      case ExternalKind::Memory: {
  ------------------
  |  Branch (2562:7): [True: 725, False: 60.5k]
  ------------------
 2563|    725|        Limits page_limits;
 2564|    725|        CHECK_RESULT(ReadMemory(&page_limits));
  ------------------
  |  |   55|    725|  do {                              \
  |  |   56|    725|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 13, False: 712]
  |  |  ------------------
  |  |   57|     13|      return ::wabt::Result::Error; \
  |  |   58|     13|    }                               \
  |  |   59|    725|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2565|    712|        CALLBACK(OnImportMemory, i, module_name, field_name,
  ------------------
  |  |   61|    712|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    712|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    712|  do {                         \
  |  |  |  |  |  |   42|    712|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 712]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    712|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    712|               #member " callback failed")
  ------------------
 2566|    712|                 num_memory_imports_, &page_limits);
 2567|    712|        num_memory_imports_++;
 2568|    712|        break;
 2569|    712|      }
 2570|       |
 2571|    699|      case ExternalKind::Global: {
  ------------------
  |  Branch (2571:7): [True: 699, False: 60.5k]
  ------------------
 2572|    699|        Type type;
 2573|    699|        bool mutable_;
 2574|    699|        CHECK_RESULT(ReadGlobalHeader(&type, &mutable_));
  ------------------
  |  |   55|    699|  do {                              \
  |  |   56|    699|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 688]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|    699|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2575|    688|        CALLBACK(OnImportGlobal, i, module_name, field_name,
  ------------------
  |  |   61|    688|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    688|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    688|  do {                         \
  |  |  |  |  |  |   42|    688|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 688]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    688|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    688|               #member " callback failed")
  ------------------
 2576|    688|                 num_global_imports_, type, mutable_);
 2577|    688|        num_global_imports_++;
 2578|    688|        break;
 2579|    688|      }
 2580|       |
 2581|    339|      case ExternalKind::Tag: {
  ------------------
  |  Branch (2581:7): [True: 339, False: 60.9k]
  ------------------
 2582|    339|        ERROR_UNLESS(options_.features.exceptions_enabled(),
  ------------------
  |  |   48|    339|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    339|  do {                         \
  |  |  |  |   42|    339|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 5, False: 334]
  |  |  |  |  ------------------
  |  |  |  |   43|      5|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      5|      return Result::Error;    \
  |  |  |  |   45|      5|    }                          \
  |  |  |  |   46|    339|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2583|    334|                     "invalid import tag kind: exceptions not allowed");
 2584|    334|        Index sig_index;
 2585|    334|        CHECK_RESULT(ReadTagType(&sig_index));
  ------------------
  |  |   55|    334|  do {                              \
  |  |   56|    334|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 8, False: 326]
  |  |  ------------------
  |  |   57|      8|      return ::wabt::Result::Error; \
  |  |   58|      8|    }                               \
  |  |   59|    334|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2586|    326|        CALLBACK(OnImportTag, i, module_name, field_name, num_tag_imports_,
  ------------------
  |  |   61|    326|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    326|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    326|  do {                         \
  |  |  |  |  |  |   42|    326|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 326]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    326|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    326|               #member " callback failed")
  ------------------
 2587|    326|                 sig_index);
 2588|    326|        num_tag_imports_++;
 2589|    326|        break;
 2590|    326|      }
 2591|       |
 2592|     29|      default:
  ------------------
  |  Branch (2592:7): [True: 29, False: 61.2k]
  ------------------
 2593|     29|        PrintError("malformed import kind: %d", kind);
 2594|     29|        return Result::Error;
 2595|  61.2k|    }
 2596|  61.2k|  }
 2597|       |
 2598|     46|  CALLBACK0(EndImportSection);
  ------------------
  |  |   58|     46|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|     46|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     46|  do {                         \
  |  |  |  |  |  |   42|     46|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 46]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     46|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2599|     46|  return Result::Ok;
 2600|     46|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadTableEPNS_4TypeEPNS_6LimitsE:
  573|  1.00k|Result BinaryReader::ReadTable(Type* out_elem_type, Limits* out_elem_limits) {
  574|  1.00k|  CHECK_RESULT(ReadRefType(out_elem_type, "table elem type"));
  ------------------
  |  |   55|  1.00k|  do {                              \
  |  |   56|  1.00k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 140, False: 865]
  |  |  ------------------
  |  |   57|    140|      return ::wabt::Result::Error; \
  |  |   58|    140|    }                               \
  |  |   59|  1.00k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  575|       |
  576|    865|  uint8_t flags;
  577|    865|  uint32_t initial;
  578|    865|  uint32_t max = 0;
  579|    865|  CHECK_RESULT(ReadU8(&flags, "table flags"));
  ------------------
  |  |   55|    865|  do {                              \
  |  |   56|    865|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 859]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|    865|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  580|    859|  bool has_max = flags & WABT_BINARY_LIMITS_HAS_MAX_FLAG;
  ------------------
  |  |   24|    859|#define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1
  ------------------
  581|    859|  bool is_shared = flags & WABT_BINARY_LIMITS_IS_SHARED_FLAG;
  ------------------
  |  |   25|    859|#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2
  ------------------
  582|    859|  bool is_64 = flags & WABT_BINARY_LIMITS_IS_64_FLAG;
  ------------------
  |  |   26|    859|#define WABT_BINARY_LIMITS_IS_64_FLAG 0x4
  ------------------
  583|    859|  const uint8_t unknown_flags = flags & ~WABT_BINARY_LIMITS_ALL_FLAGS;
  ------------------
  |  |   28|    859|  (WABT_BINARY_LIMITS_HAS_MAX_FLAG | WABT_BINARY_LIMITS_IS_SHARED_FLAG | \
  |  |  ------------------
  |  |  |  |   24|    859|#define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1
  |  |  ------------------
  |  |                 (WABT_BINARY_LIMITS_HAS_MAX_FLAG | WABT_BINARY_LIMITS_IS_SHARED_FLAG | \
  |  |  ------------------
  |  |  |  |   25|    859|#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2
  |  |  ------------------
  |  |   29|    859|   WABT_BINARY_LIMITS_IS_64_FLAG)
  |  |  ------------------
  |  |  |  |   26|    859|#define WABT_BINARY_LIMITS_IS_64_FLAG 0x4
  |  |  ------------------
  ------------------
  584|    859|  ERROR_IF(is_shared, "tables may not be shared");
  ------------------
  |  |   41|    859|  do {                         \
  |  |   42|    859|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 7, False: 852]
  |  |  ------------------
  |  |   43|      7|      PrintError(__VA_ARGS__); \
  |  |   44|      7|      return Result::Error;    \
  |  |   45|      7|    }                          \
  |  |   46|    859|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  585|    852|  ERROR_IF(is_64 && !options_.features.memory64_enabled(),
  ------------------
  |  |   41|    852|  do {                         \
  |  |   42|  1.93k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 229, False: 623]
  |  |  |  Branch (42:9): [True: 5, False: 224]
  |  |  ------------------
  |  |   43|      5|      PrintError(__VA_ARGS__); \
  |  |   44|      5|      return Result::Error;    \
  |  |   45|      5|    }                          \
  |  |   46|    852|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  586|    852|           "memory64 not allowed");
  587|    847|  ERROR_UNLESS(unknown_flags == 0, "malformed table limits flag: %d", flags);
  ------------------
  |  |   48|    847|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    847|  do {                         \
  |  |  |  |   42|    847|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 12, False: 835]
  |  |  |  |  ------------------
  |  |  |  |   43|     12|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     12|      return Result::Error;    \
  |  |  |  |   45|     12|    }                          \
  |  |  |  |   46|    847|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  588|    835|  CHECK_RESULT(ReadU32Leb128(&initial, "table initial elem count"));
  ------------------
  |  |   55|    835|  do {                              \
  |  |   56|    835|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 9, False: 826]
  |  |  ------------------
  |  |   57|      9|      return ::wabt::Result::Error; \
  |  |   58|      9|    }                               \
  |  |   59|    835|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  589|    826|  if (has_max) {
  ------------------
  |  Branch (589:7): [True: 277, False: 549]
  ------------------
  590|    277|    CHECK_RESULT(ReadU32Leb128(&max, "table max elem count"));
  ------------------
  |  |   55|    277|  do {                              \
  |  |   56|    277|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4, False: 273]
  |  |  ------------------
  |  |   57|      4|      return ::wabt::Result::Error; \
  |  |   58|      4|    }                               \
  |  |   59|    277|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  591|    277|  }
  592|       |
  593|    822|  out_elem_limits->has_max = has_max;
  594|    822|  out_elem_limits->is_64 = is_64;
  595|    822|  out_elem_limits->initial = initial;
  596|    822|  out_elem_limits->max = max;
  597|    822|  return Result::Ok;
  598|    826|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader11ReadRefTypeEPNS_4TypeEPKc:
  363|  4.64k|Result BinaryReader::ReadRefType(Type* out_value, const char* desc) {
  364|  4.64k|  uint32_t type = 0;
  365|  4.64k|  CHECK_RESULT(ReadS32Leb128(&type, desc));
  ------------------
  |  |   55|  4.64k|  do {                              \
  |  |   56|  4.64k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 41, False: 4.60k]
  |  |  ------------------
  |  |   57|     41|      return ::wabt::Result::Error; \
  |  |   58|     41|    }                               \
  |  |   59|  4.64k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  366|  4.60k|  *out_value = static_cast<Type>(type);
  367|  4.60k|  ERROR_UNLESS(out_value->IsRef(), "%s must be a reference type", desc);
  ------------------
  |  |   48|  4.60k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  4.60k|  do {                         \
  |  |  |  |   42|  4.60k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 272, False: 4.33k]
  |  |  |  |  ------------------
  |  |  |  |   43|    272|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    272|      return Result::Error;    \
  |  |  |  |   45|    272|    }                          \
  |  |  |  |   46|  4.60k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  368|  4.33k|  return Result::Ok;
  369|  4.60k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadMemoryEPNS_6LimitsE:
  600|  3.87k|Result BinaryReader::ReadMemory(Limits* out_page_limits) {
  601|  3.87k|  uint8_t flags;
  602|  3.87k|  uint64_t initial;
  603|  3.87k|  uint64_t max = 0;
  604|  3.87k|  CHECK_RESULT(ReadU8(&flags, "memory flags"));
  ------------------
  |  |   55|  3.87k|  do {                              \
  |  |   56|  3.87k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 50, False: 3.82k]
  |  |  ------------------
  |  |   57|     50|      return ::wabt::Result::Error; \
  |  |   58|     50|    }                               \
  |  |   59|  3.87k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  605|  3.82k|  bool has_max = flags & WABT_BINARY_LIMITS_HAS_MAX_FLAG;
  ------------------
  |  |   24|  3.82k|#define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1
  ------------------
  606|  3.82k|  bool is_shared = flags & WABT_BINARY_LIMITS_IS_SHARED_FLAG;
  ------------------
  |  |   25|  3.82k|#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2
  ------------------
  607|  3.82k|  bool is_64 = flags & WABT_BINARY_LIMITS_IS_64_FLAG;
  ------------------
  |  |   26|  3.82k|#define WABT_BINARY_LIMITS_IS_64_FLAG 0x4
  ------------------
  608|  3.82k|  const uint8_t unknown_flags = flags & ~WABT_BINARY_LIMITS_ALL_FLAGS;
  ------------------
  |  |   28|  3.82k|  (WABT_BINARY_LIMITS_HAS_MAX_FLAG | WABT_BINARY_LIMITS_IS_SHARED_FLAG | \
  |  |  ------------------
  |  |  |  |   24|  3.82k|#define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1
  |  |  ------------------
  |  |                 (WABT_BINARY_LIMITS_HAS_MAX_FLAG | WABT_BINARY_LIMITS_IS_SHARED_FLAG | \
  |  |  ------------------
  |  |  |  |   25|  3.82k|#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2
  |  |  ------------------
  |  |   29|  3.82k|   WABT_BINARY_LIMITS_IS_64_FLAG)
  |  |  ------------------
  |  |  |  |   26|  3.82k|#define WABT_BINARY_LIMITS_IS_64_FLAG 0x4
  |  |  ------------------
  ------------------
  609|  3.82k|  ERROR_UNLESS(unknown_flags == 0, "malformed memory limits flag: %d", flags);
  ------------------
  |  |   48|  3.82k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  3.82k|  do {                         \
  |  |  |  |   42|  3.82k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 171, False: 3.65k]
  |  |  |  |  ------------------
  |  |  |  |   43|    171|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    171|      return Result::Error;    \
  |  |  |  |   45|    171|    }                          \
  |  |  |  |   46|  3.82k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  610|  3.65k|  ERROR_IF(is_shared && !options_.features.threads_enabled(),
  ------------------
  |  |   41|  3.65k|  do {                         \
  |  |   42|  8.49k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 1.18k, False: 2.47k]
  |  |  |  Branch (42:9): [True: 7, False: 1.17k]
  |  |  ------------------
  |  |   43|      7|      PrintError(__VA_ARGS__); \
  |  |   44|      7|      return Result::Error;    \
  |  |   45|      7|    }                          \
  |  |   46|  3.65k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  611|  3.65k|           "memory may not be shared: threads not allowed");
  612|  3.64k|  ERROR_IF(is_64 && !options_.features.memory64_enabled(),
  ------------------
  |  |   41|  3.64k|  do {                         \
  |  |   42|  8.00k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 704, False: 2.94k]
  |  |  |  Branch (42:9): [True: 10, False: 694]
  |  |  ------------------
  |  |   43|     10|      PrintError(__VA_ARGS__); \
  |  |   44|     10|      return Result::Error;    \
  |  |   45|     10|    }                          \
  |  |   46|  3.64k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  613|  3.64k|           "memory64 not allowed");
  614|  3.63k|  if (options_.features.memory64_enabled()) {
  ------------------
  |  Branch (614:7): [True: 2.58k, False: 1.05k]
  ------------------
  615|  2.58k|    CHECK_RESULT(ReadU64Leb128(&initial, "memory initial page count"));
  ------------------
  |  |   55|  2.58k|  do {                              \
  |  |   56|  2.58k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 47, False: 2.53k]
  |  |  ------------------
  |  |   57|     47|      return ::wabt::Result::Error; \
  |  |   58|     47|    }                               \
  |  |   59|  2.58k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  616|  2.53k|    if (has_max) {
  ------------------
  |  Branch (616:9): [True: 861, False: 1.67k]
  ------------------
  617|    861|      CHECK_RESULT(ReadU64Leb128(&max, "memory max page count"));
  ------------------
  |  |   55|    861|  do {                              \
  |  |   56|    861|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 30, False: 831]
  |  |  ------------------
  |  |   57|     30|      return ::wabt::Result::Error; \
  |  |   58|     30|    }                               \
  |  |   59|    861|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  618|    861|    }
  619|  2.53k|  } else {
  620|  1.05k|    uint32_t initial32;
  621|  1.05k|    CHECK_RESULT(ReadU32Leb128(&initial32, "memory initial page count"));
  ------------------
  |  |   55|  1.05k|  do {                              \
  |  |   56|  1.05k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 1.04k]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|  1.05k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  622|  1.04k|    initial = initial32;
  623|  1.04k|    if (has_max) {
  ------------------
  |  Branch (623:9): [True: 240, False: 808]
  ------------------
  624|    240|      uint32_t max32;
  625|    240|      CHECK_RESULT(ReadU32Leb128(&max32, "memory max page count"));
  ------------------
  |  |   55|    240|  do {                              \
  |  |   56|    240|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 235]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|    240|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  626|    235|      max = max32;
  627|    235|    }
  628|  1.04k|  }
  629|       |
  630|  3.54k|  out_page_limits->has_max = has_max;
  631|  3.54k|  out_page_limits->is_shared = is_shared;
  632|  3.54k|  out_page_limits->is_64 = is_64;
  633|  3.54k|  out_page_limits->initial = initial;
  634|  3.54k|  out_page_limits->max = max;
  635|       |
  636|  3.54k|  return Result::Ok;
  637|  3.63k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadU64Leb128EPmPKc:
  323|   143k|Result BinaryReader::ReadU64Leb128(uint64_t* out_value, const char* desc) {
  324|   143k|  const uint8_t* p = state_.data + state_.offset;
  325|   143k|  const uint8_t* end = state_.data + read_end_;
  326|   143k|  size_t bytes_read = wabt::ReadU64Leb128(p, end, out_value);
  327|   143k|  ERROR_UNLESS(bytes_read > 0, "unable to read u64 leb128: %s", desc);
  ------------------
  |  |   48|   143k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   143k|  do {                         \
  |  |  |  |   42|   143k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 195, False: 143k]
  |  |  |  |  ------------------
  |  |  |  |   43|    195|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    195|      return Result::Error;    \
  |  |  |  |   45|    195|    }                          \
  |  |  |  |   46|   143k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  328|   143k|  state_.offset += bytes_read;
  329|   143k|  return Result::Ok;
  330|   143k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadGlobalHeaderEPNS_4TypeEPb:
  639|  2.37k|Result BinaryReader::ReadGlobalHeader(Type* out_type, bool* out_mutable) {
  640|  2.37k|  Type global_type = Type::Void;
  641|  2.37k|  uint8_t mutable_ = 0;
  642|  2.37k|  CHECK_RESULT(ReadType(&global_type, "global type"));
  ------------------
  |  |   55|  2.37k|  do {                              \
  |  |   56|  2.37k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 2.35k]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|  2.37k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  643|  2.35k|  ERROR_UNLESS(IsConcreteType(global_type), "invalid global type: %#x",
  ------------------
  |  |   48|  2.35k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  2.35k|  do {                         \
  |  |  |  |   42|  2.35k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 105, False: 2.25k]
  |  |  |  |  ------------------
  |  |  |  |   43|    105|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|    105|      return Result::Error;    \
  |  |  |  |   45|    105|    }                          \
  |  |  |  |   46|  2.35k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  644|  2.25k|               static_cast<int>(global_type));
  645|       |
  646|  2.25k|  CHECK_RESULT(ReadU8(&mutable_, "global mutability"));
  ------------------
  |  |   55|  2.25k|  do {                              \
  |  |   56|  2.25k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 2.24k]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|  2.25k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  647|  2.24k|  ERROR_UNLESS(mutable_ <= 1, "global mutability must be 0 or 1");
  ------------------
  |  |   48|  2.24k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  2.24k|  do {                         \
  |  |  |  |   42|  2.24k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 22, False: 2.22k]
  |  |  |  |  ------------------
  |  |  |  |   43|     22|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     22|      return Result::Error;    \
  |  |  |  |   45|     22|    }                          \
  |  |  |  |   46|  2.24k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  648|       |
  649|  2.22k|  *out_type = global_type;
  650|  2.22k|  *out_mutable = mutable_;
  651|  2.22k|  return Result::Ok;
  652|  2.24k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader11ReadTagTypeEPj:
 2319|  3.97k|Result BinaryReader::ReadTagType(Index* out_sig_index) {
 2320|  3.97k|  uint8_t attribute;
 2321|  3.97k|  CHECK_RESULT(ReadU8(&attribute, "tag attribute"));
  ------------------
  |  |   55|  3.97k|  do {                              \
  |  |   56|  3.97k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 14, False: 3.95k]
  |  |  ------------------
  |  |   57|     14|      return ::wabt::Result::Error; \
  |  |   58|     14|    }                               \
  |  |   59|  3.97k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2322|  3.95k|  ERROR_UNLESS(attribute == 0, "tag attribute must be 0");
  ------------------
  |  |   48|  3.95k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  3.95k|  do {                         \
  |  |  |  |   42|  3.95k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 52, False: 3.90k]
  |  |  |  |  ------------------
  |  |  |  |   43|     52|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     52|      return Result::Error;    \
  |  |  |  |   45|     52|    }                          \
  |  |  |  |   46|  3.95k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2323|  3.90k|  CHECK_RESULT(ReadIndex(out_sig_index, "tag signature index"));
  ------------------
  |  |   55|  3.90k|  do {                              \
  |  |   56|  3.90k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 3.90k]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|  3.90k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2324|  3.90k|  return Result::Ok;
 2325|  3.90k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader19ReadFunctionSectionEm:
 2602|  1.34k|Result BinaryReader::ReadFunctionSection(Offset section_size) {
 2603|  1.34k|  CALLBACK(BeginFunctionSection, section_size);
  ------------------
  |  |   61|  1.34k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.34k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.34k|  do {                         \
  |  |  |  |  |  |   42|  1.34k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.34k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.34k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.34k|               #member " callback failed")
  ------------------
 2604|  1.34k|  CHECK_RESULT(
  ------------------
  |  |   55|  1.34k|  do {                              \
  |  |   56|  1.34k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 167, False: 1.17k]
  |  |  ------------------
  |  |   57|    167|      return ::wabt::Result::Error; \
  |  |   58|    167|    }                               \
  |  |   59|  1.34k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2605|  1.34k|      ReadCount(&num_function_signatures_, "function signature count"));
 2606|  1.17k|  CALLBACK(OnFunctionCount, num_function_signatures_);
  ------------------
  |  |   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")
  ------------------
 2607|  36.9k|  for (Index i = 0; i < num_function_signatures_; ++i) {
  ------------------
  |  Branch (2607:21): [True: 35.9k, False: 1.03k]
  ------------------
 2608|  35.9k|    Index func_index = num_func_imports_ + i;
 2609|  35.9k|    Index sig_index;
 2610|  35.9k|    CHECK_RESULT(ReadIndex(&sig_index, "function signature index"));
  ------------------
  |  |   55|  35.9k|  do {                              \
  |  |   56|  35.9k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 140, False: 35.7k]
  |  |  ------------------
  |  |   57|    140|      return ::wabt::Result::Error; \
  |  |   58|    140|    }                               \
  |  |   59|  35.9k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2611|  35.7k|    CALLBACK(OnFunction, func_index, sig_index);
  ------------------
  |  |   61|  35.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  35.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  35.7k|  do {                         \
  |  |  |  |  |  |   42|  35.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 35.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  35.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  35.7k|               #member " callback failed")
  ------------------
 2612|  35.7k|  }
 2613|  1.03k|  CALLBACK0(EndFunctionSection);
  ------------------
  |  |   58|  1.03k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  1.03k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.03k|  do {                         \
  |  |  |  |  |  |   42|  1.03k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.03k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.03k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2614|  1.03k|  return Result::Ok;
 2615|  1.03k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadTableSectionEm:
 2617|    358|Result BinaryReader::ReadTableSection(Offset section_size) {
 2618|    358|  CALLBACK(BeginTableSection, section_size);
  ------------------
  |  |   61|    358|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    358|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    358|  do {                         \
  |  |  |  |  |  |   42|    358|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 358]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    358|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    358|               #member " callback failed")
  ------------------
 2619|    358|  Index num_tables;
 2620|    358|  CHECK_RESULT(ReadCount(&num_tables, "table count"));
  ------------------
  |  |   55|    358|  do {                              \
  |  |   56|    358|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 106, False: 252]
  |  |  ------------------
  |  |   57|    106|      return ::wabt::Result::Error; \
  |  |   58|    106|    }                               \
  |  |   59|    358|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2621|    252|  CALLBACK(OnTableCount, num_tables);
  ------------------
  |  |   61|    252|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    252|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    252|  do {                         \
  |  |  |  |  |  |   42|    252|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 252]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    252|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    252|               #member " callback failed")
  ------------------
 2622|    477|  for (Index i = 0; i < num_tables; ++i) {
  ------------------
  |  Branch (2622:21): [True: 387, False: 90]
  ------------------
 2623|    387|    Index table_index = num_table_imports_ + i;
 2624|    387|    Type elem_type;
 2625|    387|    Limits elem_limits;
 2626|    387|    CHECK_RESULT(ReadTable(&elem_type, &elem_limits));
  ------------------
  |  |   55|    387|  do {                              \
  |  |   56|    387|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 162, False: 225]
  |  |  ------------------
  |  |   57|    162|      return ::wabt::Result::Error; \
  |  |   58|    162|    }                               \
  |  |   59|    387|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2627|    225|    CALLBACK(OnTable, table_index, elem_type, &elem_limits);
  ------------------
  |  |   61|    225|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    225|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    225|  do {                         \
  |  |  |  |  |  |   42|    225|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 225]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    225|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    225|               #member " callback failed")
  ------------------
 2628|    225|  }
 2629|     90|  CALLBACK0(EndTableSection);
  ------------------
  |  |   58|     90|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|     90|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     90|  do {                         \
  |  |  |  |  |  |   42|     90|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 90]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     90|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2630|     90|  return Result::Ok;
 2631|     90|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadMemorySectionEm:
 2633|    573|Result BinaryReader::ReadMemorySection(Offset section_size) {
 2634|    573|  CALLBACK(BeginMemorySection, section_size);
  ------------------
  |  |   61|    573|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    573|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    573|  do {                         \
  |  |  |  |  |  |   42|    573|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 573]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    573|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    573|               #member " callback failed")
  ------------------
 2635|    573|  Index num_memories;
 2636|    573|  CHECK_RESULT(ReadCount(&num_memories, "memory count"));
  ------------------
  |  |   55|    573|  do {                              \
  |  |   56|    573|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 112, False: 461]
  |  |  ------------------
  |  |   57|    112|      return ::wabt::Result::Error; \
  |  |   58|    112|    }                               \
  |  |   59|    573|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2637|    461|  CALLBACK(OnMemoryCount, num_memories);
  ------------------
  |  |   61|    461|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    461|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    461|  do {                         \
  |  |  |  |  |  |   42|    461|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 461]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    461|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    461|               #member " callback failed")
  ------------------
 2638|  3.29k|  for (Index i = 0; i < num_memories; ++i) {
  ------------------
  |  Branch (2638:21): [True: 3.15k, False: 144]
  ------------------
 2639|  3.15k|    Index memory_index = num_memory_imports_ + i;
 2640|  3.15k|    Limits page_limits;
 2641|  3.15k|    CHECK_RESULT(ReadMemory(&page_limits));
  ------------------
  |  |   55|  3.15k|  do {                              \
  |  |   56|  3.15k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 317, False: 2.83k]
  |  |  ------------------
  |  |   57|    317|      return ::wabt::Result::Error; \
  |  |   58|    317|    }                               \
  |  |   59|  3.15k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2642|  2.83k|    CALLBACK(OnMemory, memory_index, &page_limits);
  ------------------
  |  |   61|  2.83k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.83k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.83k|  do {                         \
  |  |  |  |  |  |   42|  2.83k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.83k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.83k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.83k|               #member " callback failed")
  ------------------
 2643|  2.83k|  }
 2644|    144|  CALLBACK0(EndMemorySection);
  ------------------
  |  |   58|    144|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    144|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    144|  do {                         \
  |  |  |  |  |  |   42|    144|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 144]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    144|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2645|    144|  return Result::Ok;
 2646|    144|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadGlobalSectionEm:
 2648|    992|Result BinaryReader::ReadGlobalSection(Offset section_size) {
 2649|    992|  CALLBACK(BeginGlobalSection, section_size);
  ------------------
  |  |   61|    992|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    992|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    992|  do {                         \
  |  |  |  |  |  |   42|    992|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 992]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    992|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    992|               #member " callback failed")
  ------------------
 2650|    992|  Index num_globals;
 2651|    992|  CHECK_RESULT(ReadCount(&num_globals, "global count"));
  ------------------
  |  |   55|    992|  do {                              \
  |  |   56|    992|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 91, False: 901]
  |  |  ------------------
  |  |   57|     91|      return ::wabt::Result::Error; \
  |  |   58|     91|    }                               \
  |  |   59|    992|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2652|    901|  CALLBACK(OnGlobalCount, num_globals);
  ------------------
  |  |   61|    901|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    901|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    901|  do {                         \
  |  |  |  |  |  |   42|    901|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 901]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    901|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    901|               #member " callback failed")
  ------------------
 2653|  1.69k|  for (Index i = 0; i < num_globals; ++i) {
  ------------------
  |  Branch (2653:21): [True: 1.67k, False: 21]
  ------------------
 2654|  1.67k|    Index global_index = num_global_imports_ + i;
 2655|  1.67k|    Type global_type;
 2656|  1.67k|    bool mutable_;
 2657|  1.67k|    CHECK_RESULT(ReadGlobalHeader(&global_type, &mutable_));
  ------------------
  |  |   55|  1.67k|  do {                              \
  |  |   56|  1.67k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 142, False: 1.53k]
  |  |  ------------------
  |  |   57|    142|      return ::wabt::Result::Error; \
  |  |   58|    142|    }                               \
  |  |   59|  1.67k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2658|  1.53k|    CALLBACK(BeginGlobal, global_index, global_type, mutable_);
  ------------------
  |  |   61|  1.53k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.53k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.53k|  do {                         \
  |  |  |  |  |  |   42|  1.53k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.53k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.53k|               #member " callback failed")
  ------------------
 2659|  1.53k|    CALLBACK(BeginGlobalInitExpr, global_index);
  ------------------
  |  |   61|  1.53k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.53k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.53k|  do {                         \
  |  |  |  |  |  |   42|  1.53k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.53k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.53k|               #member " callback failed")
  ------------------
 2660|  1.53k|    CHECK_RESULT(ReadInitExpr(global_index));
  ------------------
  |  |   55|  1.53k|  do {                              \
  |  |   56|  1.53k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 738, False: 795]
  |  |  ------------------
  |  |   57|    738|      return ::wabt::Result::Error; \
  |  |   58|    738|    }                               \
  |  |   59|  1.53k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2661|    795|    CALLBACK(EndGlobalInitExpr, global_index);
  ------------------
  |  |   61|    795|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    795|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    795|  do {                         \
  |  |  |  |  |  |   42|    795|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 795]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    795|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    795|               #member " callback failed")
  ------------------
 2662|    795|    CALLBACK(EndGlobal, global_index);
  ------------------
  |  |   61|    795|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    795|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    795|  do {                         \
  |  |  |  |  |  |   42|    795|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 795]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    795|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    795|               #member " callback failed")
  ------------------
 2663|    795|  }
 2664|     21|  CALLBACK0(EndGlobalSection);
  ------------------
  |  |   58|     21|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|     21|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     21|  do {                         \
  |  |  |  |  |  |   42|     21|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 21]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     21|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2665|     21|  return Result::Ok;
 2666|     21|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader12ReadInitExprEj:
  567|  11.0k|Result BinaryReader::ReadInitExpr(Index index) {
  568|  11.0k|  CHECK_RESULT(ReadInstructions(read_end_, "init expression"));
  ------------------
  |  |   55|  11.0k|  do {                              \
  |  |   56|  11.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7.08k, False: 3.96k]
  |  |  ------------------
  |  |   57|  7.08k|      return ::wabt::Result::Error; \
  |  |   58|  7.08k|    }                               \
  |  |   59|  11.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  569|  3.96k|  assert(state_.offset <= read_end_);
  570|  3.96k|  return Result::Ok;
  571|  3.96k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadInstructionsEmPKc:
  674|  11.6k|Result BinaryReader::ReadInstructions(Offset end_offset, const char* context) {
  675|  11.6k|  std::stack<Opcode> nested_blocks;
  676|  2.69M|  while (state_.offset < end_offset) {
  ------------------
  |  Branch (676:10): [True: 2.68M, False: 3.15k]
  ------------------
  677|  2.68M|    Opcode opcode;
  678|  2.68M|    CHECK_RESULT(ReadOpcode(&opcode, "opcode"));
  ------------------
  |  |   55|  2.68M|  do {                              \
  |  |   56|  2.68M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 316, False: 2.68M]
  |  |  ------------------
  |  |   57|    316|      return ::wabt::Result::Error; \
  |  |   58|    316|    }                               \
  |  |   59|  2.68M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  679|  2.68M|    CALLBACK(OnOpcode, opcode);
  ------------------
  |  |   61|  2.68M|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.68M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.68M|  do {                         \
  |  |  |  |  |  |   42|  2.68M|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.68M]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.68M|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.68M|               #member " callback failed")
  ------------------
  680|  2.68M|    ERROR_UNLESS_OPCODE_ENABLED(opcode);
  ------------------
  |  |   51|  2.68M|  do {                                          \
  |  |   52|  2.68M|    if (!opcode.IsEnabled(options_.features)) { \
  |  |  ------------------
  |  |  |  Branch (52:9): [True: 229, False: 2.68M]
  |  |  ------------------
  |  |   53|    229|      return ReportUnexpectedOpcode(opcode);    \
  |  |   54|    229|    }                                           \
  |  |   55|  2.68M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (55:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  681|       |
  682|  2.68M|    switch (opcode) {
  683|   577k|      case Opcode::Unreachable:
  ------------------
  |  Branch (683:7): [True: 577k, False: 2.11M]
  ------------------
  684|   577k|        CALLBACK0(OnUnreachableExpr);
  ------------------
  |  |   58|   577k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   577k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   577k|  do {                         \
  |  |  |  |  |  |   42|   577k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 577k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   577k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  685|   577k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|   577k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   577k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   577k|  do {                         \
  |  |  |  |  |  |   42|   577k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 577k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   577k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  686|   577k|        break;
  687|       |
  688|   577k|      case Opcode::Block: {
  ------------------
  |  Branch (688:7): [True: 26.7k, False: 2.66M]
  ------------------
  689|  26.7k|        nested_blocks.push(opcode);
  690|  26.7k|        Type sig_type;
  691|  26.7k|        CHECK_RESULT(ReadType(&sig_type, "block signature type"));
  ------------------
  |  |   55|  26.7k|  do {                              \
  |  |   56|  26.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 48, False: 26.7k]
  |  |  ------------------
  |  |   57|     48|      return ::wabt::Result::Error; \
  |  |   58|     48|    }                               \
  |  |   59|  26.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  692|  26.7k|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   48|  26.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  26.7k|  do {                         \
  |  |  |  |   42|  26.7k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 41, False: 26.7k]
  |  |  |  |  ------------------
  |  |  |  |   43|     41|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     41|      return Result::Error;    \
  |  |  |  |   45|     41|    }                          \
  |  |  |  |   46|  26.7k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  693|  26.7k|                     "expected valid block signature type");
  694|  26.7k|        CALLBACK(OnBlockExpr, sig_type);
  ------------------
  |  |   61|  26.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  26.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  26.7k|  do {                         \
  |  |  |  |  |  |   42|  26.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 1, False: 26.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      1|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      1|      return Result::Error;    \
  |  |  |  |  |  |   45|      1|    }                          \
  |  |  |  |  |  |   46|  26.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  26.7k|               #member " callback failed")
  ------------------
  695|  26.7k|        CALLBACK(OnOpcodeBlockSig, sig_type);
  ------------------
  |  |   61|  26.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  26.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  26.7k|  do {                         \
  |  |  |  |  |  |   42|  26.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 26.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  26.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  26.7k|               #member " callback failed")
  ------------------
  696|  26.7k|        break;
  697|  26.7k|      }
  698|       |
  699|  26.7k|      case Opcode::Loop: {
  ------------------
  |  Branch (699:7): [True: 16.7k, False: 2.67M]
  ------------------
  700|  16.7k|        nested_blocks.push(opcode);
  701|  16.7k|        Type sig_type;
  702|  16.7k|        CHECK_RESULT(ReadType(&sig_type, "loop signature type"));
  ------------------
  |  |   55|  16.7k|  do {                              \
  |  |   56|  16.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 26, False: 16.6k]
  |  |  ------------------
  |  |   57|     26|      return ::wabt::Result::Error; \
  |  |   58|     26|    }                               \
  |  |   59|  16.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  703|  16.6k|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   48|  16.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  16.6k|  do {                         \
  |  |  |  |   42|  16.6k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 38, False: 16.6k]
  |  |  |  |  ------------------
  |  |  |  |   43|     38|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     38|      return Result::Error;    \
  |  |  |  |   45|     38|    }                          \
  |  |  |  |   46|  16.6k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  704|  16.6k|                     "expected valid block signature type");
  705|  16.6k|        CALLBACK(OnLoopExpr, sig_type);
  ------------------
  |  |   61|  16.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  16.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  16.6k|  do {                         \
  |  |  |  |  |  |   42|  16.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 1, False: 16.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      1|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      1|      return Result::Error;    \
  |  |  |  |  |  |   45|      1|    }                          \
  |  |  |  |  |  |   46|  16.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  16.6k|               #member " callback failed")
  ------------------
  706|  16.6k|        CALLBACK(OnOpcodeBlockSig, sig_type);
  ------------------
  |  |   61|  16.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  16.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  16.6k|  do {                         \
  |  |  |  |  |  |   42|  16.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 16.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  16.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  16.6k|               #member " callback failed")
  ------------------
  707|  16.6k|        break;
  708|  16.6k|      }
  709|       |
  710|   213k|      case Opcode::If: {
  ------------------
  |  Branch (710:7): [True: 213k, False: 2.47M]
  ------------------
  711|   213k|        nested_blocks.push(opcode);
  712|   213k|        Type sig_type;
  713|   213k|        CHECK_RESULT(ReadType(&sig_type, "if signature type"));
  ------------------
  |  |   55|   213k|  do {                              \
  |  |   56|   213k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 40, False: 213k]
  |  |  ------------------
  |  |   57|     40|      return ::wabt::Result::Error; \
  |  |   58|     40|    }                               \
  |  |   59|   213k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  714|   213k|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   48|   213k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   213k|  do {                         \
  |  |  |  |   42|   213k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 32, False: 213k]
  |  |  |  |  ------------------
  |  |  |  |   43|     32|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     32|      return Result::Error;    \
  |  |  |  |   45|     32|    }                          \
  |  |  |  |   46|   213k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  715|   213k|                     "expected valid block signature type");
  716|   213k|        CALLBACK(OnIfExpr, sig_type);
  ------------------
  |  |   61|   213k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   213k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   213k|  do {                         \
  |  |  |  |  |  |   42|   213k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 4, False: 213k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      4|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      4|      return Result::Error;    \
  |  |  |  |  |  |   45|      4|    }                          \
  |  |  |  |  |  |   46|   213k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   213k|               #member " callback failed")
  ------------------
  717|   213k|        CALLBACK(OnOpcodeBlockSig, sig_type);
  ------------------
  |  |   61|   213k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   213k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   213k|  do {                         \
  |  |  |  |  |  |   42|   213k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 213k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   213k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   213k|               #member " callback failed")
  ------------------
  718|   213k|        break;
  719|   213k|      }
  720|       |
  721|   213k|      case Opcode::Else:
  ------------------
  |  Branch (721:7): [True: 1.80k, False: 2.68M]
  ------------------
  722|  1.80k|        ERROR_IF(nested_blocks.empty() || (nested_blocks.top() != Opcode::If),
  ------------------
  |  |   41|  1.80k|  do {                         \
  |  |   42|  5.39k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 31, False: 1.77k]
  |  |  |  Branch (42:9): [True: 44, False: 1.73k]
  |  |  ------------------
  |  |   43|     75|      PrintError(__VA_ARGS__); \
  |  |   44|     75|      return Result::Error;    \
  |  |   45|     75|    }                          \
  |  |   46|  1.80k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  723|  1.80k|                 "else outside if block");
  724|  1.73k|        CALLBACK0(OnElseExpr);
  ------------------
  |  |   58|  1.73k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  1.73k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.73k|  do {                         \
  |  |  |  |  |  |   42|  1.73k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 11, False: 1.72k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|     11|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|     11|      return Result::Error;    \
  |  |  |  |  |  |   45|     11|    }                          \
  |  |  |  |  |  |   46|  1.73k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  725|  1.72k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  1.72k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  1.72k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.72k|  do {                         \
  |  |  |  |  |  |   42|  1.72k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.72k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.72k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  726|  1.72k|        break;
  727|       |
  728|  2.90k|      case Opcode::SelectT: {
  ------------------
  |  Branch (728:7): [True: 2.90k, False: 2.68M]
  ------------------
  729|  2.90k|        Index num_results;
  730|  2.90k|        CHECK_RESULT(ReadCount(&num_results, "num result types"));
  ------------------
  |  |   55|  2.90k|  do {                              \
  |  |   56|  2.90k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 54, False: 2.84k]
  |  |  ------------------
  |  |   57|     54|      return ::wabt::Result::Error; \
  |  |   58|     54|    }                               \
  |  |   59|  2.90k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  731|       |
  732|  2.84k|        result_types_.resize(num_results);
  733|  6.68k|        for (Index i = 0; i < num_results; ++i) {
  ------------------
  |  Branch (733:27): [True: 4.01k, False: 2.66k]
  ------------------
  734|  4.01k|          Type result_type;
  735|  4.01k|          CHECK_RESULT(ReadType(&result_type, "select result type"));
  ------------------
  |  |   55|  4.01k|  do {                              \
  |  |   56|  4.01k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 8, False: 4.00k]
  |  |  ------------------
  |  |   57|      8|      return ::wabt::Result::Error; \
  |  |   58|      8|    }                               \
  |  |   59|  4.01k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  736|  4.00k|          ERROR_UNLESS(IsConcreteType(result_type),
  ------------------
  |  |   48|  4.00k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  4.00k|  do {                         \
  |  |  |  |   42|  4.00k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 174, False: 3.83k]
  |  |  |  |  ------------------
  |  |  |  |   43|    348|      PrintError(__VA_ARGS__); \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (43:18): [True: 70, False: 104]
  |  |  |  |  ------------------
  |  |  |  |   44|    174|      return Result::Error;    \
  |  |  |  |   45|    174|    }                          \
  |  |  |  |   46|  4.00k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  737|  3.83k|                       "expected valid select result type (got " PRItypecode
  738|  3.83k|                       ")",
  739|  3.83k|                       WABT_PRINTF_TYPE_CODE(result_type));
  740|  3.83k|          result_types_[i] = result_type;
  741|  3.83k|        }
  742|       |
  743|  2.66k|        if (num_results) {
  ------------------
  |  Branch (743:13): [True: 811, False: 1.85k]
  ------------------
  744|    811|          CALLBACK(OnSelectExpr, num_results, result_types_.data());
  ------------------
  |  |   61|    811|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    811|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    811|  do {                         \
  |  |  |  |  |  |   42|    811|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 811]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    811|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    811|               #member " callback failed")
  ------------------
  745|    811|          CALLBACK(OnOpcodeType, result_types_[0]);
  ------------------
  |  |   61|    811|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    811|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    811|  do {                         \
  |  |  |  |  |  |   42|    811|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 811]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    811|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    811|               #member " callback failed")
  ------------------
  746|  1.85k|        } else {
  747|  1.85k|          CALLBACK(OnSelectExpr, 0, NULL);
  ------------------
  |  |   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")
  ------------------
  748|  1.85k|          CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  1.85k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   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]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  749|  1.85k|        }
  750|  2.66k|        break;
  751|  2.66k|      }
  752|       |
  753|  9.17k|      case Opcode::Select:
  ------------------
  |  Branch (753:7): [True: 9.17k, False: 2.67M]
  ------------------
  754|  9.17k|        CALLBACK(OnSelectExpr, 0, nullptr);
  ------------------
  |  |   61|  9.17k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  9.17k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  9.17k|  do {                         \
  |  |  |  |  |  |   42|  9.17k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 9.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  9.17k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  9.17k|               #member " callback failed")
  ------------------
  755|  9.17k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  9.17k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  9.17k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  9.17k|  do {                         \
  |  |  |  |  |  |   42|  9.17k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 9.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  9.17k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  756|  9.17k|        break;
  757|       |
  758|  9.17k|      case Opcode::Br: {
  ------------------
  |  Branch (758:7): [True: 4.85k, False: 2.68M]
  ------------------
  759|  4.85k|        Index depth;
  760|  4.85k|        CHECK_RESULT(ReadIndex(&depth, "br depth"));
  ------------------
  |  |   55|  4.85k|  do {                              \
  |  |   56|  4.85k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 20, False: 4.83k]
  |  |  ------------------
  |  |   57|     20|      return ::wabt::Result::Error; \
  |  |   58|     20|    }                               \
  |  |   59|  4.85k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  761|  4.83k|        CALLBACK(OnBrExpr, depth);
  ------------------
  |  |   61|  4.83k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.83k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.83k|  do {                         \
  |  |  |  |  |  |   42|  4.83k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.83k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.83k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.83k|               #member " callback failed")
  ------------------
  762|  4.83k|        CALLBACK(OnOpcodeIndex, depth);
  ------------------
  |  |   61|  4.83k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.83k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.83k|  do {                         \
  |  |  |  |  |  |   42|  4.83k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.83k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.83k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.83k|               #member " callback failed")
  ------------------
  763|  4.83k|        break;
  764|  4.83k|      }
  765|       |
  766|  5.89k|      case Opcode::BrIf: {
  ------------------
  |  Branch (766:7): [True: 5.89k, False: 2.68M]
  ------------------
  767|  5.89k|        Index depth;
  768|  5.89k|        CHECK_RESULT(ReadIndex(&depth, "br_if depth"));
  ------------------
  |  |   55|  5.89k|  do {                              \
  |  |   56|  5.89k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 37, False: 5.85k]
  |  |  ------------------
  |  |   57|     37|      return ::wabt::Result::Error; \
  |  |   58|     37|    }                               \
  |  |   59|  5.89k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  769|  5.85k|        CALLBACK(OnBrIfExpr, depth);
  ------------------
  |  |   61|  5.85k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.85k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.85k|  do {                         \
  |  |  |  |  |  |   42|  5.85k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.85k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.85k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.85k|               #member " callback failed")
  ------------------
  770|  5.85k|        CALLBACK(OnOpcodeIndex, depth);
  ------------------
  |  |   61|  5.85k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.85k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.85k|  do {                         \
  |  |  |  |  |  |   42|  5.85k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.85k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.85k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.85k|               #member " callback failed")
  ------------------
  771|  5.85k|        break;
  772|  5.85k|      }
  773|       |
  774|  6.48k|      case Opcode::BrTable: {
  ------------------
  |  Branch (774:7): [True: 6.48k, False: 2.68M]
  ------------------
  775|  6.48k|        Index num_targets;
  776|  6.48k|        CHECK_RESULT(ReadCount(&num_targets, "br_table target count"));
  ------------------
  |  |   55|  6.48k|  do {                              \
  |  |   56|  6.48k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 88, False: 6.39k]
  |  |  ------------------
  |  |   57|     88|      return ::wabt::Result::Error; \
  |  |   58|     88|    }                               \
  |  |   59|  6.48k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  777|  6.39k|        target_depths_.resize(num_targets);
  778|       |
  779|   291k|        for (Index i = 0; i < num_targets; ++i) {
  ------------------
  |  Branch (779:27): [True: 285k, False: 6.34k]
  ------------------
  780|   285k|          Index target_depth;
  781|   285k|          CHECK_RESULT(ReadIndex(&target_depth, "br_table target depth"));
  ------------------
  |  |   55|   285k|  do {                              \
  |  |   56|   285k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 48, False: 285k]
  |  |  ------------------
  |  |   57|     48|      return ::wabt::Result::Error; \
  |  |   58|     48|    }                               \
  |  |   59|   285k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  782|   285k|          target_depths_[i] = target_depth;
  783|   285k|        }
  784|       |
  785|  6.34k|        Index default_target_depth;
  786|  6.34k|        CHECK_RESULT(
  ------------------
  |  |   55|  6.34k|  do {                              \
  |  |   56|  6.34k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 18, False: 6.32k]
  |  |  ------------------
  |  |   57|     18|      return ::wabt::Result::Error; \
  |  |   58|     18|    }                               \
  |  |   59|  6.34k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  787|  6.34k|            ReadIndex(&default_target_depth, "br_table default target depth"));
  788|       |
  789|  6.32k|        Index* target_depths = num_targets ? target_depths_.data() : nullptr;
  ------------------
  |  Branch (789:32): [True: 2.75k, False: 3.57k]
  ------------------
  790|       |
  791|  6.32k|        CALLBACK(OnBrTableExpr, num_targets, target_depths,
  ------------------
  |  |   61|  6.32k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.32k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.32k|  do {                         \
  |  |  |  |  |  |   42|  6.32k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.32k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.32k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.32k|               #member " callback failed")
  ------------------
  792|  6.32k|                 default_target_depth);
  793|  6.32k|        break;
  794|  6.32k|      }
  795|       |
  796|  6.32k|      case Opcode::Return:
  ------------------
  |  Branch (796:7): [True: 6.26k, False: 2.68M]
  ------------------
  797|  6.26k|        CALLBACK0(OnReturnExpr);
  ------------------
  |  |   58|  6.26k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  6.26k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.26k|  do {                         \
  |  |  |  |  |  |   42|  6.26k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.26k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.26k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  798|  6.26k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  6.26k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  6.26k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.26k|  do {                         \
  |  |  |  |  |  |   42|  6.26k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.26k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.26k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  799|  6.26k|        break;
  800|       |
  801|   112k|      case Opcode::Nop:
  ------------------
  |  Branch (801:7): [True: 112k, False: 2.57M]
  ------------------
  802|   112k|        CALLBACK0(OnNopExpr);
  ------------------
  |  |   58|   112k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   112k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   112k|  do {                         \
  |  |  |  |  |  |   42|   112k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 112k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   112k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  803|   112k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|   112k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   112k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   112k|  do {                         \
  |  |  |  |  |  |   42|   112k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 112k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   112k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  804|   112k|        break;
  805|       |
  806|   112k|      case Opcode::Drop:
  ------------------
  |  Branch (806:7): [True: 3.62k, False: 2.68M]
  ------------------
  807|  3.62k|        CALLBACK0(OnDropExpr);
  ------------------
  |  |   58|  3.62k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  3.62k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.62k|  do {                         \
  |  |  |  |  |  |   42|  3.62k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.62k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.62k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  808|  3.62k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  3.62k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  3.62k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.62k|  do {                         \
  |  |  |  |  |  |   42|  3.62k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.62k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.62k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  809|  3.62k|        break;
  810|       |
  811|  51.5k|      case Opcode::End:
  ------------------
  |  Branch (811:7): [True: 51.5k, False: 2.63M]
  ------------------
  812|  51.5k|        CALLBACK0(OnEndExpr);
  ------------------
  |  |   58|  51.5k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  51.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  51.5k|  do {                         \
  |  |  |  |  |  |   42|  51.5k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 11, False: 51.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|     11|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|     11|      return Result::Error;    \
  |  |  |  |  |  |   45|     11|    }                          \
  |  |  |  |  |  |   46|  51.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  813|  51.5k|        if (nested_blocks.empty()) {
  ------------------
  |  Branch (813:13): [True: 4.26k, False: 47.3k]
  ------------------
  814|  4.26k|          return Result::Ok;
  815|  4.26k|        }
  816|  47.3k|        nested_blocks.pop();
  817|  47.3k|        break;
  818|       |
  819|  18.0k|      case Opcode::I32Const: {
  ------------------
  |  Branch (819:7): [True: 18.0k, False: 2.66M]
  ------------------
  820|  18.0k|        uint32_t value;
  821|  18.0k|        CHECK_RESULT(ReadS32Leb128(&value, "i32.const value"));
  ------------------
  |  |   55|  18.0k|  do {                              \
  |  |   56|  18.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 18.0k]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|  18.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  822|  18.0k|        CALLBACK(OnI32ConstExpr, value);
  ------------------
  |  |   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")
  ------------------
  823|  18.0k|        CALLBACK(OnOpcodeUint32, value);
  ------------------
  |  |   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")
  ------------------
  824|  18.0k|        break;
  825|  18.0k|      }
  826|       |
  827|  18.0k|      case Opcode::I64Const: {
  ------------------
  |  Branch (827:7): [True: 14.5k, False: 2.67M]
  ------------------
  828|  14.5k|        uint64_t value;
  829|  14.5k|        CHECK_RESULT(ReadS64Leb128(&value, "i64.const value"));
  ------------------
  |  |   55|  14.5k|  do {                              \
  |  |   56|  14.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 85, False: 14.4k]
  |  |  ------------------
  |  |   57|     85|      return ::wabt::Result::Error; \
  |  |   58|     85|    }                               \
  |  |   59|  14.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  830|  14.4k|        CALLBACK(OnI64ConstExpr, value);
  ------------------
  |  |   61|  14.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  14.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  14.4k|  do {                         \
  |  |  |  |  |  |   42|  14.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 14.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  14.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  14.4k|               #member " callback failed")
  ------------------
  831|  14.4k|        CALLBACK(OnOpcodeUint64, value);
  ------------------
  |  |   61|  14.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  14.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  14.4k|  do {                         \
  |  |  |  |  |  |   42|  14.4k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 14.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  14.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  14.4k|               #member " callback failed")
  ------------------
  832|  14.4k|        break;
  833|  14.4k|      }
  834|       |
  835|  14.4k|      case Opcode::F32Const: {
  ------------------
  |  Branch (835:7): [True: 1.88k, False: 2.68M]
  ------------------
  836|  1.88k|        uint32_t value_bits = 0;
  837|  1.88k|        CHECK_RESULT(ReadF32(&value_bits, "f32.const value"));
  ------------------
  |  |   55|  1.88k|  do {                              \
  |  |   56|  1.88k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 25, False: 1.86k]
  |  |  ------------------
  |  |   57|     25|      return ::wabt::Result::Error; \
  |  |   58|     25|    }                               \
  |  |   59|  1.88k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  838|  1.86k|        CALLBACK(OnF32ConstExpr, value_bits);
  ------------------
  |  |   61|  1.86k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.86k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.86k|  do {                         \
  |  |  |  |  |  |   42|  1.86k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.86k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.86k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.86k|               #member " callback failed")
  ------------------
  839|  1.86k|        CALLBACK(OnOpcodeF32, value_bits);
  ------------------
  |  |   61|  1.86k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.86k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.86k|  do {                         \
  |  |  |  |  |  |   42|  1.86k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.86k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.86k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.86k|               #member " callback failed")
  ------------------
  840|  1.86k|        break;
  841|  1.86k|      }
  842|       |
  843|  1.86k|      case Opcode::F64Const: {
  ------------------
  |  Branch (843:7): [True: 1.48k, False: 2.68M]
  ------------------
  844|  1.48k|        uint64_t value_bits = 0;
  845|  1.48k|        CHECK_RESULT(ReadF64(&value_bits, "f64.const value"));
  ------------------
  |  |   55|  1.48k|  do {                              \
  |  |   56|  1.48k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 23, False: 1.45k]
  |  |  ------------------
  |  |   57|     23|      return ::wabt::Result::Error; \
  |  |   58|     23|    }                               \
  |  |   59|  1.48k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  846|  1.45k|        CALLBACK(OnF64ConstExpr, value_bits);
  ------------------
  |  |   61|  1.45k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.45k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.45k|  do {                         \
  |  |  |  |  |  |   42|  1.45k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.45k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.45k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.45k|               #member " callback failed")
  ------------------
  847|  1.45k|        CALLBACK(OnOpcodeF64, value_bits);
  ------------------
  |  |   61|  1.45k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.45k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.45k|  do {                         \
  |  |  |  |  |  |   42|  1.45k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.45k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.45k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.45k|               #member " callback failed")
  ------------------
  848|  1.45k|        break;
  849|  1.45k|      }
  850|       |
  851|  1.45k|      case Opcode::V128Const: {
  ------------------
  |  Branch (851:7): [True: 703, False: 2.68M]
  ------------------
  852|    703|        v128 value_bits;
  853|    703|        ZeroMemory(value_bits);
  854|    703|        CHECK_RESULT(ReadV128(&value_bits, "v128.const value"));
  ------------------
  |  |   55|    703|  do {                              \
  |  |   56|    703|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 14, False: 689]
  |  |  ------------------
  |  |   57|     14|      return ::wabt::Result::Error; \
  |  |   58|     14|    }                               \
  |  |   59|    703|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  855|    689|        CALLBACK(OnV128ConstExpr, value_bits);
  ------------------
  |  |   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")
  ------------------
  856|    689|        CALLBACK(OnOpcodeV128, value_bits);
  ------------------
  |  |   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")
  ------------------
  857|    689|        break;
  858|    689|      }
  859|       |
  860|  6.19k|      case Opcode::GlobalGet: {
  ------------------
  |  Branch (860:7): [True: 6.19k, False: 2.68M]
  ------------------
  861|  6.19k|        Index global_index;
  862|  6.19k|        CHECK_RESULT(ReadIndex(&global_index, "global.get global index"));
  ------------------
  |  |   55|  6.19k|  do {                              \
  |  |   56|  6.19k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 14, False: 6.18k]
  |  |  ------------------
  |  |   57|     14|      return ::wabt::Result::Error; \
  |  |   58|     14|    }                               \
  |  |   59|  6.19k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  863|  6.18k|        CALLBACK(OnGlobalGetExpr, global_index);
  ------------------
  |  |   61|  6.18k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.18k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.18k|  do {                         \
  |  |  |  |  |  |   42|  6.18k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.18k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.18k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.18k|               #member " callback failed")
  ------------------
  864|  6.18k|        CALLBACK(OnOpcodeIndex, global_index);
  ------------------
  |  |   61|  6.18k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.18k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.18k|  do {                         \
  |  |  |  |  |  |   42|  6.18k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.18k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.18k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.18k|               #member " callback failed")
  ------------------
  865|  6.18k|        break;
  866|  6.18k|      }
  867|       |
  868|  6.18k|      case Opcode::LocalGet: {
  ------------------
  |  Branch (868:7): [True: 5.37k, False: 2.68M]
  ------------------
  869|  5.37k|        Index local_index;
  870|  5.37k|        CHECK_RESULT(ReadIndex(&local_index, "local.get local index"));
  ------------------
  |  |   55|  5.37k|  do {                              \
  |  |   56|  5.37k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 5.36k]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|  5.37k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  871|  5.36k|        CALLBACK(OnLocalGetExpr, local_index);
  ------------------
  |  |   61|  5.36k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.36k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.36k|  do {                         \
  |  |  |  |  |  |   42|  5.36k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.36k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.36k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.36k|               #member " callback failed")
  ------------------
  872|  5.36k|        CALLBACK(OnOpcodeIndex, local_index);
  ------------------
  |  |   61|  5.36k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.36k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.36k|  do {                         \
  |  |  |  |  |  |   42|  5.36k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.36k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.36k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.36k|               #member " callback failed")
  ------------------
  873|  5.36k|        break;
  874|  5.36k|      }
  875|       |
  876|  5.36k|      case Opcode::GlobalSet: {
  ------------------
  |  Branch (876:7): [True: 5.02k, False: 2.68M]
  ------------------
  877|  5.02k|        Index global_index;
  878|  5.02k|        CHECK_RESULT(ReadIndex(&global_index, "global.set global index"));
  ------------------
  |  |   55|  5.02k|  do {                              \
  |  |   56|  5.02k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 20, False: 5.00k]
  |  |  ------------------
  |  |   57|     20|      return ::wabt::Result::Error; \
  |  |   58|     20|    }                               \
  |  |   59|  5.02k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  879|  5.00k|        CALLBACK(OnGlobalSetExpr, global_index);
  ------------------
  |  |   61|  5.00k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.00k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.00k|  do {                         \
  |  |  |  |  |  |   42|  5.00k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.00k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.00k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.00k|               #member " callback failed")
  ------------------
  880|  5.00k|        CALLBACK(OnOpcodeIndex, global_index);
  ------------------
  |  |   61|  5.00k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.00k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.00k|  do {                         \
  |  |  |  |  |  |   42|  5.00k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.00k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.00k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.00k|               #member " callback failed")
  ------------------
  881|  5.00k|        break;
  882|  5.00k|      }
  883|       |
  884|  5.00k|      case Opcode::LocalSet: {
  ------------------
  |  Branch (884:7): [True: 4.20k, False: 2.68M]
  ------------------
  885|  4.20k|        Index local_index;
  886|  4.20k|        CHECK_RESULT(ReadIndex(&local_index, "local.set local index"));
  ------------------
  |  |   55|  4.20k|  do {                              \
  |  |   56|  4.20k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 14, False: 4.19k]
  |  |  ------------------
  |  |   57|     14|      return ::wabt::Result::Error; \
  |  |   58|     14|    }                               \
  |  |   59|  4.20k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  887|  4.19k|        CALLBACK(OnLocalSetExpr, local_index);
  ------------------
  |  |   61|  4.19k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.19k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.19k|  do {                         \
  |  |  |  |  |  |   42|  4.19k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.19k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.19k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.19k|               #member " callback failed")
  ------------------
  888|  4.19k|        CALLBACK(OnOpcodeIndex, local_index);
  ------------------
  |  |   61|  4.19k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.19k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.19k|  do {                         \
  |  |  |  |  |  |   42|  4.19k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.19k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.19k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.19k|               #member " callback failed")
  ------------------
  889|  4.19k|        break;
  890|  4.19k|      }
  891|       |
  892|  7.55k|      case Opcode::Call: {
  ------------------
  |  Branch (892:7): [True: 7.55k, False: 2.67M]
  ------------------
  893|  7.55k|        Index func_index;
  894|  7.55k|        CHECK_RESULT(ReadIndex(&func_index, "call function index"));
  ------------------
  |  |   55|  7.55k|  do {                              \
  |  |   56|  7.55k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 20, False: 7.53k]
  |  |  ------------------
  |  |   57|     20|      return ::wabt::Result::Error; \
  |  |   58|     20|    }                               \
  |  |   59|  7.55k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  895|  7.53k|        CALLBACK(OnCallExpr, func_index);
  ------------------
  |  |   61|  7.53k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  7.53k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.53k|  do {                         \
  |  |  |  |  |  |   42|  7.53k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.53k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  7.53k|               #member " callback failed")
  ------------------
  896|  7.53k|        CALLBACK(OnOpcodeIndex, func_index);
  ------------------
  |  |   61|  7.53k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  7.53k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.53k|  do {                         \
  |  |  |  |  |  |   42|  7.53k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.53k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  7.53k|               #member " callback failed")
  ------------------
  897|  7.53k|        break;
  898|  7.53k|      }
  899|       |
  900|  7.53k|      case Opcode::CallIndirect: {
  ------------------
  |  Branch (900:7): [True: 3.12k, False: 2.68M]
  ------------------
  901|  3.12k|        Index sig_index;
  902|  3.12k|        CHECK_RESULT(ReadIndex(&sig_index, "call_indirect signature index"));
  ------------------
  |  |   55|  3.12k|  do {                              \
  |  |   56|  3.12k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 3.11k]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|  3.12k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  903|  3.11k|        Index table_index = 0;
  904|  3.11k|        if (options_.features.reference_types_enabled()) {
  ------------------
  |  Branch (904:13): [True: 3.11k, False: 0]
  ------------------
  905|  3.11k|          CHECK_RESULT(ReadIndex(&table_index, "call_indirect table index"));
  ------------------
  |  |   55|  3.11k|  do {                              \
  |  |   56|  3.11k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 14, False: 3.10k]
  |  |  ------------------
  |  |   57|     14|      return ::wabt::Result::Error; \
  |  |   58|     14|    }                               \
  |  |   59|  3.11k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  906|  3.11k|        } 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|  3.10k|        CALLBACK(OnCallIndirectExpr, sig_index, table_index);
  ------------------
  |  |   61|  3.10k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.10k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.10k|  do {                         \
  |  |  |  |  |  |   42|  3.10k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.10k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.10k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.10k|               #member " callback failed")
  ------------------
  912|  3.10k|        CALLBACK(OnOpcodeUint32Uint32, sig_index, table_index);
  ------------------
  |  |   61|  3.10k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.10k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.10k|  do {                         \
  |  |  |  |  |  |   42|  3.10k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.10k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.10k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.10k|               #member " callback failed")
  ------------------
  913|  3.10k|        break;
  914|  3.10k|      }
  915|       |
  916|  3.10k|      case Opcode::ReturnCall: {
  ------------------
  |  Branch (916:7): [True: 2.39k, False: 2.68M]
  ------------------
  917|  2.39k|        Index func_index;
  918|  2.39k|        CHECK_RESULT(ReadIndex(&func_index, "return_call"));
  ------------------
  |  |   55|  2.39k|  do {                              \
  |  |   56|  2.39k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 2.38k]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|  2.39k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  919|  2.38k|        CALLBACK(OnReturnCallExpr, func_index);
  ------------------
  |  |   61|  2.38k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.38k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.38k|  do {                         \
  |  |  |  |  |  |   42|  2.38k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.38k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.38k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.38k|               #member " callback failed")
  ------------------
  920|  2.38k|        CALLBACK(OnOpcodeIndex, func_index);
  ------------------
  |  |   61|  2.38k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.38k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.38k|  do {                         \
  |  |  |  |  |  |   42|  2.38k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.38k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.38k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.38k|               #member " callback failed")
  ------------------
  921|  2.38k|        break;
  922|  2.38k|      }
  923|       |
  924|  2.70k|      case Opcode::ReturnCallIndirect: {
  ------------------
  |  Branch (924:7): [True: 2.70k, False: 2.68M]
  ------------------
  925|  2.70k|        Index sig_index;
  926|  2.70k|        CHECK_RESULT(ReadIndex(&sig_index, "return_call_indirect"));
  ------------------
  |  |   55|  2.70k|  do {                              \
  |  |   56|  2.70k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 13, False: 2.68k]
  |  |  ------------------
  |  |   57|     13|      return ::wabt::Result::Error; \
  |  |   58|     13|    }                               \
  |  |   59|  2.70k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  927|  2.68k|        Index table_index = 0;
  928|  2.68k|        if (options_.features.reference_types_enabled()) {
  ------------------
  |  Branch (928:13): [True: 2.68k, False: 0]
  ------------------
  929|  2.68k|          CHECK_RESULT(
  ------------------
  |  |   55|  2.68k|  do {                              \
  |  |   56|  2.68k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 2.68k]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|  2.68k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  930|  2.68k|              ReadIndex(&table_index, "return_call_indirect table index"));
  931|  2.68k|        } 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|  2.68k|        CALLBACK(OnReturnCallIndirectExpr, sig_index, table_index);
  ------------------
  |  |   61|  2.68k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.68k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.68k|  do {                         \
  |  |  |  |  |  |   42|  2.68k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.68k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.68k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.68k|               #member " callback failed")
  ------------------
  938|  2.68k|        CALLBACK(OnOpcodeUint32Uint32, sig_index, table_index);
  ------------------
  |  |   61|  2.68k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.68k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.68k|  do {                         \
  |  |  |  |  |  |   42|  2.68k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.68k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.68k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.68k|               #member " callback failed")
  ------------------
  939|  2.68k|        break;
  940|  2.68k|      }
  941|       |
  942|  2.91k|      case Opcode::LocalTee: {
  ------------------
  |  Branch (942:7): [True: 2.91k, False: 2.68M]
  ------------------
  943|  2.91k|        Index local_index;
  944|  2.91k|        CHECK_RESULT(ReadIndex(&local_index, "local.tee local index"));
  ------------------
  |  |   55|  2.91k|  do {                              \
  |  |   56|  2.91k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 2.90k]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|  2.91k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  945|  2.90k|        CALLBACK(OnLocalTeeExpr, local_index);
  ------------------
  |  |   61|  2.90k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.90k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.90k|  do {                         \
  |  |  |  |  |  |   42|  2.90k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.90k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.90k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.90k|               #member " callback failed")
  ------------------
  946|  2.90k|        CALLBACK(OnOpcodeIndex, local_index);
  ------------------
  |  |   61|  2.90k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.90k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.90k|  do {                         \
  |  |  |  |  |  |   42|  2.90k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.90k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.90k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.90k|               #member " callback failed")
  ------------------
  947|  2.90k|        break;
  948|  2.90k|      }
  949|       |
  950|  3.91k|      case Opcode::I32Load8S:
  ------------------
  |  Branch (950:7): [True: 3.91k, False: 2.68M]
  ------------------
  951|  7.93k|      case Opcode::I32Load8U:
  ------------------
  |  Branch (951:7): [True: 4.02k, False: 2.68M]
  ------------------
  952|  16.3k|      case Opcode::I32Load16S:
  ------------------
  |  Branch (952:7): [True: 8.37k, False: 2.67M]
  ------------------
  953|  19.3k|      case Opcode::I32Load16U:
  ------------------
  |  Branch (953:7): [True: 3.07k, False: 2.68M]
  ------------------
  954|  24.0k|      case Opcode::I64Load8S:
  ------------------
  |  Branch (954:7): [True: 4.67k, False: 2.68M]
  ------------------
  955|  28.4k|      case Opcode::I64Load8U:
  ------------------
  |  Branch (955:7): [True: 4.39k, False: 2.68M]
  ------------------
  956|  31.6k|      case Opcode::I64Load16S:
  ------------------
  |  Branch (956:7): [True: 3.16k, False: 2.68M]
  ------------------
  957|  34.0k|      case Opcode::I64Load16U:
  ------------------
  |  Branch (957:7): [True: 2.38k, False: 2.68M]
  ------------------
  958|  35.7k|      case Opcode::I64Load32S:
  ------------------
  |  Branch (958:7): [True: 1.70k, False: 2.68M]
  ------------------
  959|  37.8k|      case Opcode::I64Load32U:
  ------------------
  |  Branch (959:7): [True: 2.09k, False: 2.68M]
  ------------------
  960|  40.9k|      case Opcode::I32Load:
  ------------------
  |  Branch (960:7): [True: 3.13k, False: 2.68M]
  ------------------
  961|  45.3k|      case Opcode::I64Load:
  ------------------
  |  Branch (961:7): [True: 4.42k, False: 2.68M]
  ------------------
  962|  47.6k|      case Opcode::F32Load:
  ------------------
  |  Branch (962:7): [True: 2.30k, False: 2.68M]
  ------------------
  963|  52.9k|      case Opcode::F64Load:
  ------------------
  |  Branch (963:7): [True: 5.30k, False: 2.68M]
  ------------------
  964|  60.0k|      case Opcode::V128Load:
  ------------------
  |  Branch (964:7): [True: 7.07k, False: 2.68M]
  ------------------
  965|  65.6k|      case Opcode::V128Load8X8S:
  ------------------
  |  Branch (965:7): [True: 5.58k, False: 2.68M]
  ------------------
  966|  66.5k|      case Opcode::V128Load8X8U:
  ------------------
  |  Branch (966:7): [True: 931, False: 2.68M]
  ------------------
  967|  67.2k|      case Opcode::V128Load16X4S:
  ------------------
  |  Branch (967:7): [True: 647, False: 2.68M]
  ------------------
  968|  67.8k|      case Opcode::V128Load16X4U:
  ------------------
  |  Branch (968:7): [True: 595, False: 2.68M]
  ------------------
  969|  68.4k|      case Opcode::V128Load32X2S:
  ------------------
  |  Branch (969:7): [True: 615, False: 2.68M]
  ------------------
  970|  69.0k|      case Opcode::V128Load32X2U: {
  ------------------
  |  Branch (970:7): [True: 602, False: 2.68M]
  ------------------
  971|  69.0k|        Address alignment_log2;
  972|  69.0k|        Index memidx;
  973|  69.0k|        Address offset;
  974|  69.0k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  69.0k|  do {                              \
  |  |   56|  69.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 411, False: 68.6k]
  |  |  ------------------
  |  |   57|    411|      return ::wabt::Result::Error; \
  |  |   58|    411|    }                               \
  |  |   59|  69.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  975|  69.0k|                                     "load alignment", "load memidx",
  976|  69.0k|                                     "load offset"));
  977|  68.6k|        CALLBACK(OnLoadExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  68.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  68.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  68.6k|  do {                         \
  |  |  |  |  |  |   42|  68.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 68.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  68.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  68.6k|               #member " callback failed")
  ------------------
  978|  68.6k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  68.6k|  do {                              \
  |  |   56|  68.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 68.6k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  68.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  979|  68.6k|        break;
  980|  68.6k|      }
  981|       |
  982|  68.6k|      case Opcode::I32Store8:
  ------------------
  |  Branch (982:7): [True: 2.22k, False: 2.68M]
  ------------------
  983|  4.70k|      case Opcode::I32Store16:
  ------------------
  |  Branch (983:7): [True: 2.47k, False: 2.68M]
  ------------------
  984|  6.90k|      case Opcode::I64Store8:
  ------------------
  |  Branch (984:7): [True: 2.19k, False: 2.68M]
  ------------------
  985|  11.0k|      case Opcode::I64Store16:
  ------------------
  |  Branch (985:7): [True: 4.16k, False: 2.68M]
  ------------------
  986|  14.9k|      case Opcode::I64Store32:
  ------------------
  |  Branch (986:7): [True: 3.84k, False: 2.68M]
  ------------------
  987|  17.1k|      case Opcode::I32Store:
  ------------------
  |  Branch (987:7): [True: 2.26k, False: 2.68M]
  ------------------
  988|  19.6k|      case Opcode::I64Store:
  ------------------
  |  Branch (988:7): [True: 2.52k, False: 2.68M]
  ------------------
  989|  21.3k|      case Opcode::F32Store:
  ------------------
  |  Branch (989:7): [True: 1.62k, False: 2.68M]
  ------------------
  990|  22.7k|      case Opcode::F64Store:
  ------------------
  |  Branch (990:7): [True: 1.41k, False: 2.68M]
  ------------------
  991|  23.5k|      case Opcode::V128Store: {
  ------------------
  |  Branch (991:7): [True: 787, False: 2.68M]
  ------------------
  992|  23.5k|        Address alignment_log2;
  993|  23.5k|        Index memidx;
  994|  23.5k|        Address offset;
  995|  23.5k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  23.5k|  do {                              \
  |  |   56|  23.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 184, False: 23.3k]
  |  |  ------------------
  |  |   57|    184|      return ::wabt::Result::Error; \
  |  |   58|    184|    }                               \
  |  |   59|  23.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  996|  23.5k|                                     "store alignment", "store memidx",
  997|  23.5k|                                     "store offset"));
  998|  23.3k|        CALLBACK(OnStoreExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  23.3k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  23.3k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  23.3k|  do {                         \
  |  |  |  |  |  |   42|  23.3k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 23.3k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  23.3k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  23.3k|               #member " callback failed")
  ------------------
  999|  23.3k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  23.3k|  do {                              \
  |  |   56|  23.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 23.3k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  23.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1000|  23.3k|        break;
 1001|  23.3k|      }
 1002|       |
 1003|  23.3k|      case Opcode::MemorySize: {
  ------------------
  |  Branch (1003:7): [True: 6.04k, False: 2.68M]
  ------------------
 1004|  6.04k|        Index memidx = 0;
 1005|  6.04k|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1005:13): [True: 281, False: 5.76k]
  ------------------
 1006|    281|          uint8_t reserved;
 1007|    281|          CHECK_RESULT(ReadU8(&reserved, "memory.size reserved"));
  ------------------
  |  |   55|    281|  do {                              \
  |  |   56|    281|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 266]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|    281|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1008|    266|          ERROR_UNLESS(reserved == 0, "memory.size reserved value must be 0");
  ------------------
  |  |   48|    266|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    266|  do {                         \
  |  |  |  |   42|    266|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 15, False: 251]
  |  |  |  |  ------------------
  |  |  |  |   43|     15|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     15|      return Result::Error;    \
  |  |  |  |   45|     15|    }                          \
  |  |  |  |   46|    266|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1009|  5.76k|        } else {
 1010|  5.76k|          CHECK_RESULT(ReadMemidx(&memidx, "memory.size memidx"));
  ------------------
  |  |   55|  5.76k|  do {                              \
  |  |   56|  5.76k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 9, False: 5.75k]
  |  |  ------------------
  |  |   57|      9|      return ::wabt::Result::Error; \
  |  |   58|      9|    }                               \
  |  |   59|  5.76k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1011|  5.76k|        }
 1012|  6.00k|        CALLBACK(OnMemorySizeExpr, memidx);
  ------------------
  |  |   61|  6.00k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.00k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.00k|  do {                         \
  |  |  |  |  |  |   42|  6.00k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.00k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.00k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.00k|               #member " callback failed")
  ------------------
 1013|  6.00k|        CALLBACK(OnOpcodeUint32, memidx);
  ------------------
  |  |   61|  6.00k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.00k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.00k|  do {                         \
  |  |  |  |  |  |   42|  6.00k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.00k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.00k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.00k|               #member " callback failed")
  ------------------
 1014|  6.00k|        break;
 1015|  6.00k|      }
 1016|       |
 1017|  9.21k|      case Opcode::MemoryGrow: {
  ------------------
  |  Branch (1017:7): [True: 9.21k, False: 2.67M]
  ------------------
 1018|  9.21k|        Index memidx = 0;
 1019|  9.21k|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1019:13): [True: 272, False: 8.94k]
  ------------------
 1020|    272|          uint8_t reserved;
 1021|    272|          CHECK_RESULT(ReadU8(&reserved, "memory.grow reserved"));
  ------------------
  |  |   55|    272|  do {                              \
  |  |   56|    272|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 261]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|    272|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1022|    261|          ERROR_UNLESS(reserved == 0, "memory.grow reserved value must be 0");
  ------------------
  |  |   48|    261|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    261|  do {                         \
  |  |  |  |   42|    261|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 18, False: 243]
  |  |  |  |  ------------------
  |  |  |  |   43|     18|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     18|      return Result::Error;    \
  |  |  |  |   45|     18|    }                          \
  |  |  |  |   46|    261|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1023|  8.94k|        } else {
 1024|  8.94k|          CHECK_RESULT(ReadMemidx(&memidx, "memory.grow memidx"));
  ------------------
  |  |   55|  8.94k|  do {                              \
  |  |   56|  8.94k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 17, False: 8.92k]
  |  |  ------------------
  |  |   57|     17|      return ::wabt::Result::Error; \
  |  |   58|     17|    }                               \
  |  |   59|  8.94k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1025|  8.94k|        }
 1026|  9.16k|        CALLBACK(OnMemoryGrowExpr, memidx);
  ------------------
  |  |   61|  9.16k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  9.16k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  9.16k|  do {                         \
  |  |  |  |  |  |   42|  9.16k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 9.16k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  9.16k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  9.16k|               #member " callback failed")
  ------------------
 1027|  9.16k|        CALLBACK(OnOpcodeUint32, memidx);
  ------------------
  |  |   61|  9.16k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  9.16k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  9.16k|  do {                         \
  |  |  |  |  |  |   42|  9.16k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 9.16k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  9.16k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  9.16k|               #member " callback failed")
  ------------------
 1028|  9.16k|        break;
 1029|  9.16k|      }
 1030|       |
 1031|  9.16k|      case Opcode::I32Add:
  ------------------
  |  Branch (1031:7): [True: 4.93k, False: 2.68M]
  ------------------
 1032|  16.7k|      case Opcode::I32Sub:
  ------------------
  |  Branch (1032:7): [True: 11.8k, False: 2.67M]
  ------------------
 1033|  24.6k|      case Opcode::I32Mul:
  ------------------
  |  Branch (1033:7): [True: 7.90k, False: 2.67M]
  ------------------
 1034|  43.2k|      case Opcode::I32DivS:
  ------------------
  |  Branch (1034:7): [True: 18.5k, False: 2.66M]
  ------------------
 1035|  52.4k|      case Opcode::I32DivU:
  ------------------
  |  Branch (1035:7): [True: 9.18k, False: 2.67M]
  ------------------
 1036|  60.3k|      case Opcode::I32RemS:
  ------------------
  |  Branch (1036:7): [True: 7.91k, False: 2.67M]
  ------------------
 1037|  73.0k|      case Opcode::I32RemU:
  ------------------
  |  Branch (1037:7): [True: 12.6k, False: 2.67M]
  ------------------
 1038|  77.4k|      case Opcode::I32And:
  ------------------
  |  Branch (1038:7): [True: 4.42k, False: 2.68M]
  ------------------
 1039|  88.3k|      case Opcode::I32Or:
  ------------------
  |  Branch (1039:7): [True: 10.9k, False: 2.67M]
  ------------------
 1040|   103k|      case Opcode::I32Xor:
  ------------------
  |  Branch (1040:7): [True: 14.9k, False: 2.67M]
  ------------------
 1041|   118k|      case Opcode::I32Shl:
  ------------------
  |  Branch (1041:7): [True: 15.6k, False: 2.67M]
  ------------------
 1042|   124k|      case Opcode::I32ShrU:
  ------------------
  |  Branch (1042:7): [True: 5.96k, False: 2.68M]
  ------------------
 1043|   129k|      case Opcode::I32ShrS:
  ------------------
  |  Branch (1043:7): [True: 4.97k, False: 2.68M]
  ------------------
 1044|   133k|      case Opcode::I32Rotr:
  ------------------
  |  Branch (1044:7): [True: 3.44k, False: 2.68M]
  ------------------
 1045|   137k|      case Opcode::I32Rotl:
  ------------------
  |  Branch (1045:7): [True: 4.55k, False: 2.68M]
  ------------------
 1046|   145k|      case Opcode::I64Add:
  ------------------
  |  Branch (1046:7): [True: 7.73k, False: 2.67M]
  ------------------
 1047|   155k|      case Opcode::I64Sub:
  ------------------
  |  Branch (1047:7): [True: 10.2k, False: 2.67M]
  ------------------
 1048|   166k|      case Opcode::I64Mul:
  ------------------
  |  Branch (1048:7): [True: 10.6k, False: 2.67M]
  ------------------
 1049|   176k|      case Opcode::I64DivS:
  ------------------
  |  Branch (1049:7): [True: 10.0k, False: 2.67M]
  ------------------
 1050|   181k|      case Opcode::I64DivU:
  ------------------
  |  Branch (1050:7): [True: 4.95k, False: 2.68M]
  ------------------
 1051|   185k|      case Opcode::I64RemS:
  ------------------
  |  Branch (1051:7): [True: 3.64k, False: 2.68M]
  ------------------
 1052|   190k|      case Opcode::I64RemU:
  ------------------
  |  Branch (1052:7): [True: 5.53k, False: 2.68M]
  ------------------
 1053|   194k|      case Opcode::I64And:
  ------------------
  |  Branch (1053:7): [True: 3.43k, False: 2.68M]
  ------------------
 1054|   195k|      case Opcode::I64Or:
  ------------------
  |  Branch (1054:7): [True: 1.36k, False: 2.68M]
  ------------------
 1055|   197k|      case Opcode::I64Xor:
  ------------------
  |  Branch (1055:7): [True: 2.20k, False: 2.68M]
  ------------------
 1056|   203k|      case Opcode::I64Shl:
  ------------------
  |  Branch (1056:7): [True: 6.16k, False: 2.68M]
  ------------------
 1057|   210k|      case Opcode::I64ShrU:
  ------------------
  |  Branch (1057:7): [True: 7.12k, False: 2.68M]
  ------------------
 1058|   214k|      case Opcode::I64ShrS:
  ------------------
  |  Branch (1058:7): [True: 3.60k, False: 2.68M]
  ------------------
 1059|   216k|      case Opcode::I64Rotr:
  ------------------
  |  Branch (1059:7): [True: 2.38k, False: 2.68M]
  ------------------
 1060|   221k|      case Opcode::I64Rotl:
  ------------------
  |  Branch (1060:7): [True: 4.79k, False: 2.68M]
  ------------------
 1061|   224k|      case Opcode::F32Add:
  ------------------
  |  Branch (1061:7): [True: 2.25k, False: 2.68M]
  ------------------
 1062|   228k|      case Opcode::F32Sub:
  ------------------
  |  Branch (1062:7): [True: 4.53k, False: 2.68M]
  ------------------
 1063|   232k|      case Opcode::F32Mul:
  ------------------
  |  Branch (1063:7): [True: 3.57k, False: 2.68M]
  ------------------
 1064|   237k|      case Opcode::F32Div:
  ------------------
  |  Branch (1064:7): [True: 5.58k, False: 2.68M]
  ------------------
 1065|   239k|      case Opcode::F32Min:
  ------------------
  |  Branch (1065:7): [True: 1.88k, False: 2.68M]
  ------------------
 1066|   242k|      case Opcode::F32Max:
  ------------------
  |  Branch (1066:7): [True: 3.28k, False: 2.68M]
  ------------------
 1067|   244k|      case Opcode::F32Copysign:
  ------------------
  |  Branch (1067:7): [True: 2.04k, False: 2.68M]
  ------------------
 1068|   250k|      case Opcode::F64Add:
  ------------------
  |  Branch (1068:7): [True: 5.26k, False: 2.68M]
  ------------------
 1069|   254k|      case Opcode::F64Sub:
  ------------------
  |  Branch (1069:7): [True: 4.11k, False: 2.68M]
  ------------------
 1070|   255k|      case Opcode::F64Mul:
  ------------------
  |  Branch (1070:7): [True: 1.13k, False: 2.68M]
  ------------------
 1071|   258k|      case Opcode::F64Div:
  ------------------
  |  Branch (1071:7): [True: 2.67k, False: 2.68M]
  ------------------
 1072|   260k|      case Opcode::F64Min:
  ------------------
  |  Branch (1072:7): [True: 2.13k, False: 2.68M]
  ------------------
 1073|   262k|      case Opcode::F64Max:
  ------------------
  |  Branch (1073:7): [True: 2.67k, False: 2.68M]
  ------------------
 1074|   264k|      case Opcode::F64Copysign:
  ------------------
  |  Branch (1074:7): [True: 1.27k, False: 2.68M]
  ------------------
 1075|   265k|      case Opcode::I8X16Add:
  ------------------
  |  Branch (1075:7): [True: 1.10k, False: 2.68M]
  ------------------
 1076|   265k|      case Opcode::I16X8Add:
  ------------------
  |  Branch (1076:7): [True: 637, False: 2.68M]
  ------------------
 1077|   266k|      case Opcode::I32X4Add:
  ------------------
  |  Branch (1077:7): [True: 466, False: 2.68M]
  ------------------
 1078|   267k|      case Opcode::I64X2Add:
  ------------------
  |  Branch (1078:7): [True: 963, False: 2.68M]
  ------------------
 1079|   268k|      case Opcode::I8X16Sub:
  ------------------
  |  Branch (1079:7): [True: 823, False: 2.68M]
  ------------------
 1080|   268k|      case Opcode::I16X8Sub:
  ------------------
  |  Branch (1080:7): [True: 487, False: 2.68M]
  ------------------
 1081|   269k|      case Opcode::I32X4Sub:
  ------------------
  |  Branch (1081:7): [True: 487, False: 2.68M]
  ------------------
 1082|   269k|      case Opcode::I64X2Sub:
  ------------------
  |  Branch (1082:7): [True: 741, False: 2.68M]
  ------------------
 1083|   270k|      case Opcode::I16X8Mul:
  ------------------
  |  Branch (1083:7): [True: 554, False: 2.68M]
  ------------------
 1084|   271k|      case Opcode::I32X4Mul:
  ------------------
  |  Branch (1084:7): [True: 839, False: 2.68M]
  ------------------
 1085|   271k|      case Opcode::I64X2Mul:
  ------------------
  |  Branch (1085:7): [True: 327, False: 2.68M]
  ------------------
 1086|   272k|      case Opcode::I8X16AddSatS:
  ------------------
  |  Branch (1086:7): [True: 622, False: 2.68M]
  ------------------
 1087|   273k|      case Opcode::I8X16AddSatU:
  ------------------
  |  Branch (1087:7): [True: 1.12k, False: 2.68M]
  ------------------
 1088|   273k|      case Opcode::I16X8AddSatS:
  ------------------
  |  Branch (1088:7): [True: 400, False: 2.68M]
  ------------------
 1089|   273k|      case Opcode::I16X8AddSatU:
  ------------------
  |  Branch (1089:7): [True: 176, False: 2.68M]
  ------------------
 1090|   277k|      case Opcode::I8X16SubSatS:
  ------------------
  |  Branch (1090:7): [True: 3.60k, False: 2.68M]
  ------------------
 1091|   278k|      case Opcode::I8X16SubSatU:
  ------------------
  |  Branch (1091:7): [True: 869, False: 2.68M]
  ------------------
 1092|   279k|      case Opcode::I16X8SubSatS:
  ------------------
  |  Branch (1092:7): [True: 894, False: 2.68M]
  ------------------
 1093|   282k|      case Opcode::I16X8SubSatU:
  ------------------
  |  Branch (1093:7): [True: 3.16k, False: 2.68M]
  ------------------
 1094|   283k|      case Opcode::I8X16MinS:
  ------------------
  |  Branch (1094:7): [True: 1.14k, False: 2.68M]
  ------------------
 1095|   285k|      case Opcode::I16X8MinS:
  ------------------
  |  Branch (1095:7): [True: 1.69k, False: 2.68M]
  ------------------
 1096|   286k|      case Opcode::I32X4MinS:
  ------------------
  |  Branch (1096:7): [True: 1.06k, False: 2.68M]
  ------------------
 1097|   287k|      case Opcode::I8X16MinU:
  ------------------
  |  Branch (1097:7): [True: 1.31k, False: 2.68M]
  ------------------
 1098|   288k|      case Opcode::I16X8MinU:
  ------------------
  |  Branch (1098:7): [True: 916, False: 2.68M]
  ------------------
 1099|   289k|      case Opcode::I32X4MinU:
  ------------------
  |  Branch (1099:7): [True: 625, False: 2.68M]
  ------------------
 1100|   290k|      case Opcode::I8X16MaxS:
  ------------------
  |  Branch (1100:7): [True: 802, False: 2.68M]
  ------------------
 1101|   290k|      case Opcode::I16X8MaxS:
  ------------------
  |  Branch (1101:7): [True: 290, False: 2.68M]
  ------------------
 1102|   290k|      case Opcode::I32X4MaxS:
  ------------------
  |  Branch (1102:7): [True: 409, False: 2.68M]
  ------------------
 1103|   291k|      case Opcode::I8X16MaxU:
  ------------------
  |  Branch (1103:7): [True: 836, False: 2.68M]
  ------------------
 1104|   291k|      case Opcode::I16X8MaxU:
  ------------------
  |  Branch (1104:7): [True: 337, False: 2.68M]
  ------------------
 1105|   295k|      case Opcode::I32X4MaxU:
  ------------------
  |  Branch (1105:7): [True: 3.67k, False: 2.68M]
  ------------------
 1106|   298k|      case Opcode::I8X16Shl:
  ------------------
  |  Branch (1106:7): [True: 3.15k, False: 2.68M]
  ------------------
 1107|   299k|      case Opcode::I16X8Shl:
  ------------------
  |  Branch (1107:7): [True: 716, False: 2.68M]
  ------------------
 1108|   300k|      case Opcode::I32X4Shl:
  ------------------
  |  Branch (1108:7): [True: 817, False: 2.68M]
  ------------------
 1109|   300k|      case Opcode::I64X2Shl:
  ------------------
  |  Branch (1109:7): [True: 331, False: 2.68M]
  ------------------
 1110|   301k|      case Opcode::I8X16ShrS:
  ------------------
  |  Branch (1110:7): [True: 972, False: 2.68M]
  ------------------
 1111|   303k|      case Opcode::I8X16ShrU:
  ------------------
  |  Branch (1111:7): [True: 2.28k, False: 2.68M]
  ------------------
 1112|   304k|      case Opcode::I16X8ShrS:
  ------------------
  |  Branch (1112:7): [True: 1.04k, False: 2.68M]
  ------------------
 1113|   305k|      case Opcode::I16X8ShrU:
  ------------------
  |  Branch (1113:7): [True: 621, False: 2.68M]
  ------------------
 1114|   305k|      case Opcode::I32X4ShrS:
  ------------------
  |  Branch (1114:7): [True: 139, False: 2.68M]
  ------------------
 1115|   306k|      case Opcode::I32X4ShrU:
  ------------------
  |  Branch (1115:7): [True: 781, False: 2.68M]
  ------------------
 1116|   307k|      case Opcode::I64X2ShrS:
  ------------------
  |  Branch (1116:7): [True: 1.17k, False: 2.68M]
  ------------------
 1117|   309k|      case Opcode::I64X2ShrU:
  ------------------
  |  Branch (1117:7): [True: 1.79k, False: 2.68M]
  ------------------
 1118|   310k|      case Opcode::V128And:
  ------------------
  |  Branch (1118:7): [True: 1.16k, False: 2.68M]
  ------------------
 1119|   311k|      case Opcode::V128Or:
  ------------------
  |  Branch (1119:7): [True: 825, False: 2.68M]
  ------------------
 1120|   312k|      case Opcode::V128Xor:
  ------------------
  |  Branch (1120:7): [True: 697, False: 2.68M]
  ------------------
 1121|   313k|      case Opcode::F32X4Min:
  ------------------
  |  Branch (1121:7): [True: 1.34k, False: 2.68M]
  ------------------
 1122|   314k|      case Opcode::F32X4PMin:
  ------------------
  |  Branch (1122:7): [True: 1.00k, False: 2.68M]
  ------------------
 1123|   315k|      case Opcode::F64X2Min:
  ------------------
  |  Branch (1123:7): [True: 1.15k, False: 2.68M]
  ------------------
 1124|   316k|      case Opcode::F64X2PMin:
  ------------------
  |  Branch (1124:7): [True: 790, False: 2.68M]
  ------------------
 1125|   318k|      case Opcode::F32X4Max:
  ------------------
  |  Branch (1125:7): [True: 1.83k, False: 2.68M]
  ------------------
 1126|   318k|      case Opcode::F32X4PMax:
  ------------------
  |  Branch (1126:7): [True: 426, False: 2.68M]
  ------------------
 1127|   319k|      case Opcode::F64X2Max:
  ------------------
  |  Branch (1127:7): [True: 492, False: 2.68M]
  ------------------
 1128|   319k|      case Opcode::F64X2PMax:
  ------------------
  |  Branch (1128:7): [True: 442, False: 2.68M]
  ------------------
 1129|   319k|      case Opcode::F32X4Add:
  ------------------
  |  Branch (1129:7): [True: 256, False: 2.68M]
  ------------------
 1130|   320k|      case Opcode::F64X2Add:
  ------------------
  |  Branch (1130:7): [True: 688, False: 2.68M]
  ------------------
 1131|   321k|      case Opcode::F32X4Sub:
  ------------------
  |  Branch (1131:7): [True: 680, False: 2.68M]
  ------------------
 1132|   321k|      case Opcode::F64X2Sub:
  ------------------
  |  Branch (1132:7): [True: 473, False: 2.68M]
  ------------------
 1133|   322k|      case Opcode::F32X4Div:
  ------------------
  |  Branch (1133:7): [True: 421, False: 2.68M]
  ------------------
 1134|   322k|      case Opcode::F64X2Div:
  ------------------
  |  Branch (1134:7): [True: 775, False: 2.68M]
  ------------------
 1135|   324k|      case Opcode::F32X4Mul:
  ------------------
  |  Branch (1135:7): [True: 1.47k, False: 2.68M]
  ------------------
 1136|   325k|      case Opcode::F64X2Mul:
  ------------------
  |  Branch (1136:7): [True: 1.19k, False: 2.68M]
  ------------------
 1137|   328k|      case Opcode::I8X16Swizzle:
  ------------------
  |  Branch (1137:7): [True: 2.82k, False: 2.68M]
  ------------------
 1138|   329k|      case Opcode::I8X16NarrowI16X8S:
  ------------------
  |  Branch (1138:7): [True: 731, False: 2.68M]
  ------------------
 1139|   329k|      case Opcode::I8X16NarrowI16X8U:
  ------------------
  |  Branch (1139:7): [True: 559, False: 2.68M]
  ------------------
 1140|   329k|      case Opcode::I16X8NarrowI32X4S:
  ------------------
  |  Branch (1140:7): [True: 103, False: 2.68M]
  ------------------
 1141|   330k|      case Opcode::I16X8NarrowI32X4U:
  ------------------
  |  Branch (1141:7): [True: 534, False: 2.68M]
  ------------------
 1142|   331k|      case Opcode::V128Andnot:
  ------------------
  |  Branch (1142:7): [True: 1.21k, False: 2.68M]
  ------------------
 1143|   332k|      case Opcode::I8X16AvgrU:
  ------------------
  |  Branch (1143:7): [True: 558, False: 2.68M]
  ------------------
 1144|   332k|      case Opcode::I16X8AvgrU:
  ------------------
  |  Branch (1144:7): [True: 388, False: 2.68M]
  ------------------
 1145|   332k|      case Opcode::I16X8ExtmulLowI8X16S:
  ------------------
  |  Branch (1145:7): [True: 488, False: 2.68M]
  ------------------
 1146|   333k|      case Opcode::I16X8ExtmulHighI8X16S:
  ------------------
  |  Branch (1146:7): [True: 763, False: 2.68M]
  ------------------
 1147|   334k|      case Opcode::I16X8ExtmulLowI8X16U:
  ------------------
  |  Branch (1147:7): [True: 605, False: 2.68M]
  ------------------
 1148|   336k|      case Opcode::I16X8ExtmulHighI8X16U:
  ------------------
  |  Branch (1148:7): [True: 2.55k, False: 2.68M]
  ------------------
 1149|   337k|      case Opcode::I32X4ExtmulLowI16X8S:
  ------------------
  |  Branch (1149:7): [True: 1.07k, False: 2.68M]
  ------------------
 1150|   338k|      case Opcode::I32X4ExtmulHighI16X8S:
  ------------------
  |  Branch (1150:7): [True: 508, False: 2.68M]
  ------------------
 1151|   339k|      case Opcode::I32X4ExtmulLowI16X8U:
  ------------------
  |  Branch (1151:7): [True: 572, False: 2.68M]
  ------------------
 1152|   339k|      case Opcode::I32X4ExtmulHighI16X8U:
  ------------------
  |  Branch (1152:7): [True: 336, False: 2.68M]
  ------------------
 1153|   339k|      case Opcode::I64X2ExtmulLowI32X4S:
  ------------------
  |  Branch (1153:7): [True: 300, False: 2.68M]
  ------------------
 1154|   340k|      case Opcode::I64X2ExtmulHighI32X4S:
  ------------------
  |  Branch (1154:7): [True: 840, False: 2.68M]
  ------------------
 1155|   341k|      case Opcode::I64X2ExtmulLowI32X4U:
  ------------------
  |  Branch (1155:7): [True: 795, False: 2.68M]
  ------------------
 1156|   341k|      case Opcode::I64X2ExtmulHighI32X4U:
  ------------------
  |  Branch (1156:7): [True: 427, False: 2.68M]
  ------------------
 1157|   342k|      case Opcode::I16X8Q15mulrSatS:
  ------------------
  |  Branch (1157:7): [True: 451, False: 2.68M]
  ------------------
 1158|   342k|      case Opcode::I32X4DotI16X8S:
  ------------------
  |  Branch (1158:7): [True: 685, False: 2.68M]
  ------------------
 1159|   343k|      case Opcode::I8X16RelaxedSwizzle:
  ------------------
  |  Branch (1159:7): [True: 326, False: 2.68M]
  ------------------
 1160|   343k|      case Opcode::F32X4RelaxedMin:
  ------------------
  |  Branch (1160:7): [True: 176, False: 2.68M]
  ------------------
 1161|   343k|      case Opcode::F32X4RelaxedMax:
  ------------------
  |  Branch (1161:7): [True: 179, False: 2.68M]
  ------------------
 1162|   344k|      case Opcode::F64X2RelaxedMin:
  ------------------
  |  Branch (1162:7): [True: 511, False: 2.68M]
  ------------------
 1163|   344k|      case Opcode::F64X2RelaxedMax:
  ------------------
  |  Branch (1163:7): [True: 565, False: 2.68M]
  ------------------
 1164|   345k|      case Opcode::I16X8RelaxedQ15mulrS:
  ------------------
  |  Branch (1164:7): [True: 645, False: 2.68M]
  ------------------
 1165|   347k|      case Opcode::I16X8DotI8X16I7X16S:
  ------------------
  |  Branch (1165:7): [True: 2.39k, False: 2.68M]
  ------------------
 1166|   347k|        CALLBACK(OnBinaryExpr, opcode);
  ------------------
  |  |   61|   347k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   347k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   347k|  do {                         \
  |  |  |  |  |  |   42|   347k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 347k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   347k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   347k|               #member " callback failed")
  ------------------
 1167|   347k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|   347k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   347k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   347k|  do {                         \
  |  |  |  |  |  |   42|   347k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 347k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   347k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1168|   347k|        break;
 1169|       |
 1170|   347k|      case Opcode::I32Eq:
  ------------------
  |  Branch (1170:7): [True: 6.92k, False: 2.68M]
  ------------------
 1171|  13.6k|      case Opcode::I32Ne:
  ------------------
  |  Branch (1171:7): [True: 6.77k, False: 2.68M]
  ------------------
 1172|  18.7k|      case Opcode::I32LtS:
  ------------------
  |  Branch (1172:7): [True: 5.05k, False: 2.68M]
  ------------------
 1173|  27.6k|      case Opcode::I32LeS:
  ------------------
  |  Branch (1173:7): [True: 8.88k, False: 2.67M]
  ------------------
 1174|  43.0k|      case Opcode::I32LtU:
  ------------------
  |  Branch (1174:7): [True: 15.4k, False: 2.67M]
  ------------------
 1175|  50.1k|      case Opcode::I32LeU:
  ------------------
  |  Branch (1175:7): [True: 7.04k, False: 2.68M]
  ------------------
 1176|  55.0k|      case Opcode::I32GtS:
  ------------------
  |  Branch (1176:7): [True: 4.90k, False: 2.68M]
  ------------------
 1177|  58.9k|      case Opcode::I32GeS:
  ------------------
  |  Branch (1177:7): [True: 3.95k, False: 2.68M]
  ------------------
 1178|  79.3k|      case Opcode::I32GtU:
  ------------------
  |  Branch (1178:7): [True: 20.3k, False: 2.66M]
  ------------------
 1179|  84.6k|      case Opcode::I32GeU:
  ------------------
  |  Branch (1179:7): [True: 5.35k, False: 2.68M]
  ------------------
 1180|  89.3k|      case Opcode::I64Eq:
  ------------------
  |  Branch (1180:7): [True: 4.65k, False: 2.68M]
  ------------------
 1181|  92.7k|      case Opcode::I64Ne:
  ------------------
  |  Branch (1181:7): [True: 3.46k, False: 2.68M]
  ------------------
 1182|  95.5k|      case Opcode::I64LtS:
  ------------------
  |  Branch (1182:7): [True: 2.77k, False: 2.68M]
  ------------------
 1183|   100k|      case Opcode::I64LeS:
  ------------------
  |  Branch (1183:7): [True: 4.66k, False: 2.68M]
  ------------------
 1184|   104k|      case Opcode::I64LtU:
  ------------------
  |  Branch (1184:7): [True: 4.30k, False: 2.68M]
  ------------------
 1185|   107k|      case Opcode::I64LeU:
  ------------------
  |  Branch (1185:7): [True: 3.01k, False: 2.68M]
  ------------------
 1186|   113k|      case Opcode::I64GtS:
  ------------------
  |  Branch (1186:7): [True: 6.22k, False: 2.68M]
  ------------------
 1187|   120k|      case Opcode::I64GeS:
  ------------------
  |  Branch (1187:7): [True: 6.47k, False: 2.68M]
  ------------------
 1188|   125k|      case Opcode::I64GtU:
  ------------------
  |  Branch (1188:7): [True: 4.90k, False: 2.68M]
  ------------------
 1189|   130k|      case Opcode::I64GeU:
  ------------------
  |  Branch (1189:7): [True: 5.56k, False: 2.68M]
  ------------------
 1190|   137k|      case Opcode::F32Eq:
  ------------------
  |  Branch (1190:7): [True: 6.46k, False: 2.68M]
  ------------------
 1191|   139k|      case Opcode::F32Ne:
  ------------------
  |  Branch (1191:7): [True: 2.26k, False: 2.68M]
  ------------------
 1192|   144k|      case Opcode::F32Lt:
  ------------------
  |  Branch (1192:7): [True: 5.21k, False: 2.68M]
  ------------------
 1193|   148k|      case Opcode::F32Le:
  ------------------
  |  Branch (1193:7): [True: 4.20k, False: 2.68M]
  ------------------
 1194|   155k|      case Opcode::F32Gt:
  ------------------
  |  Branch (1194:7): [True: 6.71k, False: 2.68M]
  ------------------
 1195|   165k|      case Opcode::F32Ge:
  ------------------
  |  Branch (1195:7): [True: 9.78k, False: 2.67M]
  ------------------
 1196|   183k|      case Opcode::F64Eq:
  ------------------
  |  Branch (1196:7): [True: 17.8k, False: 2.66M]
  ------------------
 1197|   186k|      case Opcode::F64Ne:
  ------------------
  |  Branch (1197:7): [True: 3.09k, False: 2.68M]
  ------------------
 1198|   192k|      case Opcode::F64Lt:
  ------------------
  |  Branch (1198:7): [True: 6.03k, False: 2.68M]
  ------------------
 1199|   205k|      case Opcode::F64Le:
  ------------------
  |  Branch (1199:7): [True: 12.6k, False: 2.67M]
  ------------------
 1200|   213k|      case Opcode::F64Gt:
  ------------------
  |  Branch (1200:7): [True: 8.87k, False: 2.67M]
  ------------------
 1201|   218k|      case Opcode::F64Ge:
  ------------------
  |  Branch (1201:7): [True: 4.17k, False: 2.68M]
  ------------------
 1202|   219k|      case Opcode::I8X16Eq:
  ------------------
  |  Branch (1202:7): [True: 1.59k, False: 2.68M]
  ------------------
 1203|   221k|      case Opcode::I16X8Eq:
  ------------------
  |  Branch (1203:7): [True: 1.59k, False: 2.68M]
  ------------------
 1204|   222k|      case Opcode::I32X4Eq:
  ------------------
  |  Branch (1204:7): [True: 957, False: 2.68M]
  ------------------
 1205|   222k|      case Opcode::I64X2Eq:
  ------------------
  |  Branch (1205:7): [True: 671, False: 2.68M]
  ------------------
 1206|   223k|      case Opcode::F32X4Eq:
  ------------------
  |  Branch (1206:7): [True: 869, False: 2.68M]
  ------------------
 1207|   224k|      case Opcode::F64X2Eq:
  ------------------
  |  Branch (1207:7): [True: 766, False: 2.68M]
  ------------------
 1208|   228k|      case Opcode::I8X16Ne:
  ------------------
  |  Branch (1208:7): [True: 3.56k, False: 2.68M]
  ------------------
 1209|   229k|      case Opcode::I16X8Ne:
  ------------------
  |  Branch (1209:7): [True: 1.29k, False: 2.68M]
  ------------------
 1210|   230k|      case Opcode::I32X4Ne:
  ------------------
  |  Branch (1210:7): [True: 1.38k, False: 2.68M]
  ------------------
 1211|   231k|      case Opcode::I64X2Ne:
  ------------------
  |  Branch (1211:7): [True: 737, False: 2.68M]
  ------------------
 1212|   231k|      case Opcode::F32X4Ne:
  ------------------
  |  Branch (1212:7): [True: 220, False: 2.68M]
  ------------------
 1213|   234k|      case Opcode::F64X2Ne:
  ------------------
  |  Branch (1213:7): [True: 2.30k, False: 2.68M]
  ------------------
 1214|   237k|      case Opcode::I8X16LtS:
  ------------------
  |  Branch (1214:7): [True: 3.59k, False: 2.68M]
  ------------------
 1215|   238k|      case Opcode::I8X16LtU:
  ------------------
  |  Branch (1215:7): [True: 1.19k, False: 2.68M]
  ------------------
 1216|   239k|      case Opcode::I16X8LtS:
  ------------------
  |  Branch (1216:7): [True: 675, False: 2.68M]
  ------------------
 1217|   240k|      case Opcode::I16X8LtU:
  ------------------
  |  Branch (1217:7): [True: 1.27k, False: 2.68M]
  ------------------
 1218|   242k|      case Opcode::I32X4LtS:
  ------------------
  |  Branch (1218:7): [True: 1.78k, False: 2.68M]
  ------------------
 1219|   244k|      case Opcode::I32X4LtU:
  ------------------
  |  Branch (1219:7): [True: 1.86k, False: 2.68M]
  ------------------
 1220|   245k|      case Opcode::I64X2LtS:
  ------------------
  |  Branch (1220:7): [True: 667, False: 2.68M]
  ------------------
 1221|   246k|      case Opcode::F32X4Lt:
  ------------------
  |  Branch (1221:7): [True: 1.06k, False: 2.68M]
  ------------------
 1222|   246k|      case Opcode::F64X2Lt:
  ------------------
  |  Branch (1222:7): [True: 780, False: 2.68M]
  ------------------
 1223|   248k|      case Opcode::I8X16LeS:
  ------------------
  |  Branch (1223:7): [True: 1.09k, False: 2.68M]
  ------------------
 1224|   249k|      case Opcode::I8X16LeU:
  ------------------
  |  Branch (1224:7): [True: 1.00k, False: 2.68M]
  ------------------
 1225|   249k|      case Opcode::I16X8LeS:
  ------------------
  |  Branch (1225:7): [True: 857, False: 2.68M]
  ------------------
 1226|   251k|      case Opcode::I16X8LeU:
  ------------------
  |  Branch (1226:7): [True: 1.66k, False: 2.68M]
  ------------------
 1227|   252k|      case Opcode::I32X4LeS:
  ------------------
  |  Branch (1227:7): [True: 1.14k, False: 2.68M]
  ------------------
 1228|   254k|      case Opcode::I32X4LeU:
  ------------------
  |  Branch (1228:7): [True: 1.82k, False: 2.68M]
  ------------------
 1229|   254k|      case Opcode::I64X2LeS:
  ------------------
  |  Branch (1229:7): [True: 339, False: 2.68M]
  ------------------
 1230|   256k|      case Opcode::F32X4Le:
  ------------------
  |  Branch (1230:7): [True: 1.75k, False: 2.68M]
  ------------------
 1231|   257k|      case Opcode::F64X2Le:
  ------------------
  |  Branch (1231:7): [True: 892, False: 2.68M]
  ------------------
 1232|   258k|      case Opcode::I8X16GtS:
  ------------------
  |  Branch (1232:7): [True: 1.00k, False: 2.68M]
  ------------------
 1233|   259k|      case Opcode::I8X16GtU:
  ------------------
  |  Branch (1233:7): [True: 1.32k, False: 2.68M]
  ------------------
 1234|   260k|      case Opcode::I16X8GtS:
  ------------------
  |  Branch (1234:7): [True: 1.05k, False: 2.68M]
  ------------------
 1235|   262k|      case Opcode::I16X8GtU:
  ------------------
  |  Branch (1235:7): [True: 1.69k, False: 2.68M]
  ------------------
 1236|   263k|      case Opcode::I32X4GtS:
  ------------------
  |  Branch (1236:7): [True: 1.32k, False: 2.68M]
  ------------------
 1237|   266k|      case Opcode::I32X4GtU:
  ------------------
  |  Branch (1237:7): [True: 2.49k, False: 2.68M]
  ------------------
 1238|   267k|      case Opcode::I64X2GtS:
  ------------------
  |  Branch (1238:7): [True: 706, False: 2.68M]
  ------------------
 1239|   268k|      case Opcode::F32X4Gt:
  ------------------
  |  Branch (1239:7): [True: 1.66k, False: 2.68M]
  ------------------
 1240|   269k|      case Opcode::F64X2Gt:
  ------------------
  |  Branch (1240:7): [True: 843, False: 2.68M]
  ------------------
 1241|   270k|      case Opcode::I8X16GeS:
  ------------------
  |  Branch (1241:7): [True: 605, False: 2.68M]
  ------------------
 1242|   272k|      case Opcode::I8X16GeU:
  ------------------
  |  Branch (1242:7): [True: 2.18k, False: 2.68M]
  ------------------
 1243|   273k|      case Opcode::I16X8GeS:
  ------------------
  |  Branch (1243:7): [True: 841, False: 2.68M]
  ------------------
 1244|   274k|      case Opcode::I16X8GeU:
  ------------------
  |  Branch (1244:7): [True: 994, False: 2.68M]
  ------------------
 1245|   275k|      case Opcode::I32X4GeS:
  ------------------
  |  Branch (1245:7): [True: 1.41k, False: 2.68M]
  ------------------
 1246|   276k|      case Opcode::I32X4GeU:
  ------------------
  |  Branch (1246:7): [True: 739, False: 2.68M]
  ------------------
 1247|   276k|      case Opcode::I64X2GeS:
  ------------------
  |  Branch (1247:7): [True: 373, False: 2.68M]
  ------------------
 1248|   277k|      case Opcode::F32X4Ge:
  ------------------
  |  Branch (1248:7): [True: 470, False: 2.68M]
  ------------------
 1249|   278k|      case Opcode::F64X2Ge:
  ------------------
  |  Branch (1249:7): [True: 941, False: 2.68M]
  ------------------
 1250|   278k|        CALLBACK(OnCompareExpr, opcode);
  ------------------
  |  |   61|   278k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   278k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   278k|  do {                         \
  |  |  |  |  |  |   42|   278k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 278k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   278k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   278k|               #member " callback failed")
  ------------------
 1251|   278k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|   278k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   278k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   278k|  do {                         \
  |  |  |  |  |  |   42|   278k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 278k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   278k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1252|   278k|        break;
 1253|       |
 1254|   278k|      case Opcode::I32Clz:
  ------------------
  |  Branch (1254:7): [True: 7.44k, False: 2.68M]
  ------------------
 1255|  11.8k|      case Opcode::I32Ctz:
  ------------------
  |  Branch (1255:7): [True: 4.37k, False: 2.68M]
  ------------------
 1256|  22.2k|      case Opcode::I32Popcnt:
  ------------------
  |  Branch (1256:7): [True: 10.4k, False: 2.67M]
  ------------------
 1257|  30.8k|      case Opcode::I64Clz:
  ------------------
  |  Branch (1257:7): [True: 8.61k, False: 2.67M]
  ------------------
 1258|  36.5k|      case Opcode::I64Ctz:
  ------------------
  |  Branch (1258:7): [True: 5.63k, False: 2.68M]
  ------------------
 1259|  40.7k|      case Opcode::I64Popcnt:
  ------------------
  |  Branch (1259:7): [True: 4.18k, False: 2.68M]
  ------------------
 1260|  44.3k|      case Opcode::F32Abs:
  ------------------
  |  Branch (1260:7): [True: 3.64k, False: 2.68M]
  ------------------
 1261|  49.4k|      case Opcode::F32Neg:
  ------------------
  |  Branch (1261:7): [True: 5.06k, False: 2.68M]
  ------------------
 1262|  52.5k|      case Opcode::F32Ceil:
  ------------------
  |  Branch (1262:7): [True: 3.13k, False: 2.68M]
  ------------------
 1263|  58.7k|      case Opcode::F32Floor:
  ------------------
  |  Branch (1263:7): [True: 6.21k, False: 2.68M]
  ------------------
 1264|  60.4k|      case Opcode::F32Trunc:
  ------------------
  |  Branch (1264:7): [True: 1.70k, False: 2.68M]
  ------------------
 1265|  63.4k|      case Opcode::F32Nearest:
  ------------------
  |  Branch (1265:7): [True: 2.97k, False: 2.68M]
  ------------------
 1266|  66.6k|      case Opcode::F32Sqrt:
  ------------------
  |  Branch (1266:7): [True: 3.18k, False: 2.68M]
  ------------------
 1267|  72.6k|      case Opcode::F64Abs:
  ------------------
  |  Branch (1267:7): [True: 5.99k, False: 2.68M]
  ------------------
 1268|  75.4k|      case Opcode::F64Neg:
  ------------------
  |  Branch (1268:7): [True: 2.84k, False: 2.68M]
  ------------------
 1269|  78.1k|      case Opcode::F64Ceil:
  ------------------
  |  Branch (1269:7): [True: 2.67k, False: 2.68M]
  ------------------
 1270|  80.7k|      case Opcode::F64Floor:
  ------------------
  |  Branch (1270:7): [True: 2.63k, False: 2.68M]
  ------------------
 1271|  83.4k|      case Opcode::F64Trunc:
  ------------------
  |  Branch (1271:7): [True: 2.65k, False: 2.68M]
  ------------------
 1272|  86.6k|      case Opcode::F64Nearest:
  ------------------
  |  Branch (1272:7): [True: 3.21k, False: 2.68M]
  ------------------
 1273|  89.9k|      case Opcode::F64Sqrt:
  ------------------
  |  Branch (1273:7): [True: 3.32k, False: 2.68M]
  ------------------
 1274|  91.8k|      case Opcode::I8X16Splat:
  ------------------
  |  Branch (1274:7): [True: 1.93k, False: 2.68M]
  ------------------
 1275|  93.1k|      case Opcode::I16X8Splat:
  ------------------
  |  Branch (1275:7): [True: 1.29k, False: 2.68M]
  ------------------
 1276|  94.3k|      case Opcode::I32X4Splat:
  ------------------
  |  Branch (1276:7): [True: 1.15k, False: 2.68M]
  ------------------
 1277|  95.1k|      case Opcode::I64X2Splat:
  ------------------
  |  Branch (1277:7): [True: 764, False: 2.68M]
  ------------------
 1278|  95.8k|      case Opcode::F32X4Splat:
  ------------------
  |  Branch (1278:7): [True: 776, False: 2.68M]
  ------------------
 1279|  97.0k|      case Opcode::F64X2Splat:
  ------------------
  |  Branch (1279:7): [True: 1.19k, False: 2.68M]
  ------------------
 1280|  98.1k|      case Opcode::I8X16Neg:
  ------------------
  |  Branch (1280:7): [True: 1.02k, False: 2.68M]
  ------------------
 1281|  98.3k|      case Opcode::I16X8Neg:
  ------------------
  |  Branch (1281:7): [True: 261, False: 2.68M]
  ------------------
 1282|  98.8k|      case Opcode::I32X4Neg:
  ------------------
  |  Branch (1282:7): [True: 466, False: 2.68M]
  ------------------
 1283|   100k|      case Opcode::I64X2Neg:
  ------------------
  |  Branch (1283:7): [True: 1.26k, False: 2.68M]
  ------------------
 1284|   101k|      case Opcode::V128Not:
  ------------------
  |  Branch (1284:7): [True: 1.61k, False: 2.68M]
  ------------------
 1285|   102k|      case Opcode::V128AnyTrue:
  ------------------
  |  Branch (1285:7): [True: 630, False: 2.68M]
  ------------------
 1286|   103k|      case Opcode::I8X16Bitmask:
  ------------------
  |  Branch (1286:7): [True: 1.17k, False: 2.68M]
  ------------------
 1287|   104k|      case Opcode::I16X8Bitmask:
  ------------------
  |  Branch (1287:7): [True: 515, False: 2.68M]
  ------------------
 1288|   104k|      case Opcode::I32X4Bitmask:
  ------------------
  |  Branch (1288:7): [True: 573, False: 2.68M]
  ------------------
 1289|   105k|      case Opcode::I64X2Bitmask:
  ------------------
  |  Branch (1289:7): [True: 1.02k, False: 2.68M]
  ------------------
 1290|   106k|      case Opcode::I8X16AllTrue:
  ------------------
  |  Branch (1290:7): [True: 578, False: 2.68M]
  ------------------
 1291|   106k|      case Opcode::I16X8AllTrue:
  ------------------
  |  Branch (1291:7): [True: 592, False: 2.68M]
  ------------------
 1292|   107k|      case Opcode::I32X4AllTrue:
  ------------------
  |  Branch (1292:7): [True: 350, False: 2.68M]
  ------------------
 1293|   107k|      case Opcode::I64X2AllTrue:
  ------------------
  |  Branch (1293:7): [True: 461, False: 2.68M]
  ------------------
 1294|   108k|      case Opcode::F32X4Ceil:
  ------------------
  |  Branch (1294:7): [True: 661, False: 2.68M]
  ------------------
 1295|   109k|      case Opcode::F64X2Ceil:
  ------------------
  |  Branch (1295:7): [True: 1.19k, False: 2.68M]
  ------------------
 1296|   112k|      case Opcode::F32X4Floor:
  ------------------
  |  Branch (1296:7): [True: 2.58k, False: 2.68M]
  ------------------
 1297|   113k|      case Opcode::F64X2Floor:
  ------------------
  |  Branch (1297:7): [True: 1.20k, False: 2.68M]
  ------------------
 1298|   114k|      case Opcode::F32X4Trunc:
  ------------------
  |  Branch (1298:7): [True: 1.19k, False: 2.68M]
  ------------------
 1299|   115k|      case Opcode::F64X2Trunc:
  ------------------
  |  Branch (1299:7): [True: 1.46k, False: 2.68M]
  ------------------
 1300|   116k|      case Opcode::F32X4Nearest:
  ------------------
  |  Branch (1300:7): [True: 911, False: 2.68M]
  ------------------
 1301|   118k|      case Opcode::F64X2Nearest:
  ------------------
  |  Branch (1301:7): [True: 1.15k, False: 2.68M]
  ------------------
 1302|   118k|      case Opcode::F32X4Neg:
  ------------------
  |  Branch (1302:7): [True: 295, False: 2.68M]
  ------------------
 1303|   118k|      case Opcode::F64X2Neg:
  ------------------
  |  Branch (1303:7): [True: 587, False: 2.68M]
  ------------------
 1304|   119k|      case Opcode::F32X4Abs:
  ------------------
  |  Branch (1304:7): [True: 269, False: 2.68M]
  ------------------
 1305|   121k|      case Opcode::F64X2Abs:
  ------------------
  |  Branch (1305:7): [True: 2.46k, False: 2.68M]
  ------------------
 1306|   122k|      case Opcode::F32X4Sqrt:
  ------------------
  |  Branch (1306:7): [True: 909, False: 2.68M]
  ------------------
 1307|   124k|      case Opcode::F64X2Sqrt:
  ------------------
  |  Branch (1307:7): [True: 1.50k, False: 2.68M]
  ------------------
 1308|   124k|      case Opcode::I16X8ExtendLowI8X16S:
  ------------------
  |  Branch (1308:7): [True: 672, False: 2.68M]
  ------------------
 1309|   125k|      case Opcode::I16X8ExtendHighI8X16S:
  ------------------
  |  Branch (1309:7): [True: 1.09k, False: 2.68M]
  ------------------
 1310|   126k|      case Opcode::I16X8ExtendLowI8X16U:
  ------------------
  |  Branch (1310:7): [True: 563, False: 2.68M]
  ------------------
 1311|   126k|      case Opcode::I16X8ExtendHighI8X16U:
  ------------------
  |  Branch (1311:7): [True: 204, False: 2.68M]
  ------------------
 1312|   126k|      case Opcode::I32X4ExtendLowI16X8S:
  ------------------
  |  Branch (1312:7): [True: 251, False: 2.68M]
  ------------------
 1313|   127k|      case Opcode::I32X4ExtendHighI16X8S:
  ------------------
  |  Branch (1313:7): [True: 933, False: 2.68M]
  ------------------
 1314|   128k|      case Opcode::I32X4ExtendLowI16X8U:
  ------------------
  |  Branch (1314:7): [True: 706, False: 2.68M]
  ------------------
 1315|   129k|      case Opcode::I32X4ExtendHighI16X8U:
  ------------------
  |  Branch (1315:7): [True: 780, False: 2.68M]
  ------------------
 1316|   129k|      case Opcode::I64X2ExtendLowI32X4S:
  ------------------
  |  Branch (1316:7): [True: 423, False: 2.68M]
  ------------------
 1317|   130k|      case Opcode::I64X2ExtendHighI32X4S:
  ------------------
  |  Branch (1317:7): [True: 700, False: 2.68M]
  ------------------
 1318|   130k|      case Opcode::I64X2ExtendLowI32X4U:
  ------------------
  |  Branch (1318:7): [True: 399, False: 2.68M]
  ------------------
 1319|   131k|      case Opcode::I64X2ExtendHighI32X4U:
  ------------------
  |  Branch (1319:7): [True: 511, False: 2.68M]
  ------------------
 1320|   133k|      case Opcode::I8X16Abs:
  ------------------
  |  Branch (1320:7): [True: 2.23k, False: 2.68M]
  ------------------
 1321|   133k|      case Opcode::I16X8Abs:
  ------------------
  |  Branch (1321:7): [True: 482, False: 2.68M]
  ------------------
 1322|   134k|      case Opcode::I32X4Abs:
  ------------------
  |  Branch (1322:7): [True: 989, False: 2.68M]
  ------------------
 1323|   135k|      case Opcode::I64X2Abs:
  ------------------
  |  Branch (1323:7): [True: 618, False: 2.68M]
  ------------------
 1324|   136k|      case Opcode::I8X16Popcnt:
  ------------------
  |  Branch (1324:7): [True: 1.18k, False: 2.68M]
  ------------------
 1325|   138k|      case Opcode::I16X8ExtaddPairwiseI8X16S:
  ------------------
  |  Branch (1325:7): [True: 1.77k, False: 2.68M]
  ------------------
 1326|   139k|      case Opcode::I16X8ExtaddPairwiseI8X16U:
  ------------------
  |  Branch (1326:7): [True: 1.23k, False: 2.68M]
  ------------------
 1327|   140k|      case Opcode::I32X4ExtaddPairwiseI16X8S:
  ------------------
  |  Branch (1327:7): [True: 1.09k, False: 2.68M]
  ------------------
 1328|   142k|      case Opcode::I32X4ExtaddPairwiseI16X8U:
  ------------------
  |  Branch (1328:7): [True: 1.17k, False: 2.68M]
  ------------------
 1329|   142k|      case Opcode::I32X4RelaxedTruncF32X4S:
  ------------------
  |  Branch (1329:7): [True: 440, False: 2.68M]
  ------------------
 1330|   142k|      case Opcode::I32X4RelaxedTruncF32X4U:
  ------------------
  |  Branch (1330:7): [True: 485, False: 2.68M]
  ------------------
 1331|   143k|      case Opcode::I32X4RelaxedTruncF64X2SZero:
  ------------------
  |  Branch (1331:7): [True: 991, False: 2.68M]
  ------------------
 1332|   144k|      case Opcode::I32X4RelaxedTruncF64X2UZero:
  ------------------
  |  Branch (1332:7): [True: 419, False: 2.68M]
  ------------------
 1333|   144k|        CALLBACK(OnUnaryExpr, opcode);
  ------------------
  |  |   61|   144k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   144k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   144k|  do {                         \
  |  |  |  |  |  |   42|   144k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 144k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   144k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   144k|               #member " callback failed")
  ------------------
 1334|   144k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|   144k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|   144k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   144k|  do {                         \
  |  |  |  |  |  |   42|   144k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 144k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   144k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1335|   144k|        break;
 1336|       |
 1337|   144k|      case Opcode::V128BitSelect:
  ------------------
  |  Branch (1337:7): [True: 1.13k, False: 2.68M]
  ------------------
 1338|  1.72k|      case Opcode::F32X4RelaxedMadd:
  ------------------
  |  Branch (1338:7): [True: 596, False: 2.68M]
  ------------------
 1339|  2.77k|      case Opcode::F32X4RelaxedNmadd:
  ------------------
  |  Branch (1339:7): [True: 1.04k, False: 2.68M]
  ------------------
 1340|  3.31k|      case Opcode::F64X2RelaxedMadd:
  ------------------
  |  Branch (1340:7): [True: 538, False: 2.68M]
  ------------------
 1341|  4.11k|      case Opcode::F64X2RelaxedNmadd:
  ------------------
  |  Branch (1341:7): [True: 805, False: 2.68M]
  ------------------
 1342|  5.00k|      case Opcode::I8X16RelaxedLaneSelect:
  ------------------
  |  Branch (1342:7): [True: 893, False: 2.68M]
  ------------------
 1343|  5.15k|      case Opcode::I16X8RelaxedLaneSelect:
  ------------------
  |  Branch (1343:7): [True: 142, False: 2.68M]
  ------------------
 1344|  5.47k|      case Opcode::I32X4RelaxedLaneSelect:
  ------------------
  |  Branch (1344:7): [True: 319, False: 2.68M]
  ------------------
 1345|  6.45k|      case Opcode::I64X2RelaxedLaneSelect:
  ------------------
  |  Branch (1345:7): [True: 985, False: 2.68M]
  ------------------
 1346|  7.70k|      case Opcode::I32X4DotI8X16I7X16AddS:
  ------------------
  |  Branch (1346:7): [True: 1.25k, False: 2.68M]
  ------------------
 1347|  7.70k|        CALLBACK(OnTernaryExpr, opcode);
  ------------------
  |  |   61|  7.70k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  7.70k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.70k|  do {                         \
  |  |  |  |  |  |   42|  7.70k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.70k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.70k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  7.70k|               #member " callback failed")
  ------------------
 1348|  7.70k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  7.70k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  7.70k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  7.70k|  do {                         \
  |  |  |  |  |  |   42|  7.70k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 7.70k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  7.70k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1349|  7.70k|        break;
 1350|       |
 1351|  7.70k|      case Opcode::I8X16ExtractLaneS:
  ------------------
  |  Branch (1351:7): [True: 395, False: 2.68M]
  ------------------
 1352|  1.01k|      case Opcode::I8X16ExtractLaneU:
  ------------------
  |  Branch (1352:7): [True: 616, False: 2.68M]
  ------------------
 1353|  1.32k|      case Opcode::I16X8ExtractLaneS:
  ------------------
  |  Branch (1353:7): [True: 317, False: 2.68M]
  ------------------
 1354|  2.14k|      case Opcode::I16X8ExtractLaneU:
  ------------------
  |  Branch (1354:7): [True: 818, False: 2.68M]
  ------------------
 1355|  2.66k|      case Opcode::I32X4ExtractLane:
  ------------------
  |  Branch (1355:7): [True: 517, False: 2.68M]
  ------------------
 1356|  3.72k|      case Opcode::I64X2ExtractLane:
  ------------------
  |  Branch (1356:7): [True: 1.05k, False: 2.68M]
  ------------------
 1357|  4.31k|      case Opcode::F32X4ExtractLane:
  ------------------
  |  Branch (1357:7): [True: 598, False: 2.68M]
  ------------------
 1358|  5.91k|      case Opcode::F64X2ExtractLane:
  ------------------
  |  Branch (1358:7): [True: 1.60k, False: 2.68M]
  ------------------
 1359|  6.28k|      case Opcode::I8X16ReplaceLane:
  ------------------
  |  Branch (1359:7): [True: 364, False: 2.68M]
  ------------------
 1360|  7.44k|      case Opcode::I16X8ReplaceLane:
  ------------------
  |  Branch (1360:7): [True: 1.15k, False: 2.68M]
  ------------------
 1361|  8.35k|      case Opcode::I32X4ReplaceLane:
  ------------------
  |  Branch (1361:7): [True: 909, False: 2.68M]
  ------------------
 1362|  8.97k|      case Opcode::I64X2ReplaceLane:
  ------------------
  |  Branch (1362:7): [True: 624, False: 2.68M]
  ------------------
 1363|  9.65k|      case Opcode::F32X4ReplaceLane:
  ------------------
  |  Branch (1363:7): [True: 680, False: 2.68M]
  ------------------
 1364|  10.6k|      case Opcode::F64X2ReplaceLane: {
  ------------------
  |  Branch (1364:7): [True: 1.01k, False: 2.68M]
  ------------------
 1365|  10.6k|        uint8_t lane_val;
 1366|  10.6k|        CHECK_RESULT(ReadU8(&lane_val, "Lane idx"));
  ------------------
  |  |   55|  10.6k|  do {                              \
  |  |   56|  10.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 29, False: 10.6k]
  |  |  ------------------
  |  |   57|     29|      return ::wabt::Result::Error; \
  |  |   58|     29|    }                               \
  |  |   59|  10.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1367|  10.6k|        CALLBACK(OnSimdLaneOpExpr, opcode, lane_val);
  ------------------
  |  |   61|  10.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  10.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.6k|  do {                         \
  |  |  |  |  |  |   42|  10.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  10.6k|               #member " callback failed")
  ------------------
 1368|  10.6k|        CALLBACK(OnOpcodeUint64, lane_val);
  ------------------
  |  |   61|  10.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  10.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  10.6k|  do {                         \
  |  |  |  |  |  |   42|  10.6k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 10.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  10.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  10.6k|               #member " callback failed")
  ------------------
 1369|  10.6k|        break;
 1370|  10.6k|      }
 1371|       |
 1372|  10.6k|      case Opcode::I8X16Shuffle: {
  ------------------
  |  Branch (1372:7): [True: 733, False: 2.68M]
  ------------------
 1373|    733|        v128 value;
 1374|    733|        CHECK_RESULT(ReadV128(&value, "Lane idx [16]"));
  ------------------
  |  |   55|    733|  do {                              \
  |  |   56|    733|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 12, False: 721]
  |  |  ------------------
  |  |   57|     12|      return ::wabt::Result::Error; \
  |  |   58|     12|    }                               \
  |  |   59|    733|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1375|    721|        CALLBACK(OnSimdShuffleOpExpr, opcode, value);
  ------------------
  |  |   61|    721|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    721|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    721|  do {                         \
  |  |  |  |  |  |   42|    721|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 721]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    721|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    721|               #member " callback failed")
  ------------------
 1376|    721|        CALLBACK(OnOpcodeV128, value);
  ------------------
  |  |   61|    721|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    721|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    721|  do {                         \
  |  |  |  |  |  |   42|    721|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 721]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    721|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    721|               #member " callback failed")
  ------------------
 1377|    721|        break;
 1378|    721|      }
 1379|       |
 1380|  1.01k|      case Opcode::V128Load8Splat:
  ------------------
  |  Branch (1380:7): [True: 1.01k, False: 2.68M]
  ------------------
 1381|  2.47k|      case Opcode::V128Load16Splat:
  ------------------
  |  Branch (1381:7): [True: 1.46k, False: 2.68M]
  ------------------
 1382|  3.52k|      case Opcode::V128Load32Splat:
  ------------------
  |  Branch (1382:7): [True: 1.04k, False: 2.68M]
  ------------------
 1383|  4.25k|      case Opcode::V128Load64Splat: {
  ------------------
  |  Branch (1383:7): [True: 728, False: 2.68M]
  ------------------
 1384|  4.25k|        Address alignment_log2;
 1385|  4.25k|        Index memidx;
 1386|  4.25k|        Address offset;
 1387|  4.25k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  4.25k|  do {                              \
  |  |   56|  4.25k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 27, False: 4.22k]
  |  |  ------------------
  |  |   57|     27|      return ::wabt::Result::Error; \
  |  |   58|     27|    }                               \
  |  |   59|  4.25k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1388|  4.25k|                                     "load alignment", "load memidx",
 1389|  4.25k|                                     "load offset"));
 1390|  4.22k|        CALLBACK(OnLoadSplatExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  4.22k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.22k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.22k|  do {                         \
  |  |  |  |  |  |   42|  4.22k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.22k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.22k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.22k|               #member " callback failed")
  ------------------
 1391|  4.22k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  4.22k|  do {                              \
  |  |   56|  4.22k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4.22k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  4.22k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1392|  4.22k|        break;
 1393|  4.22k|      }
 1394|  4.22k|      case Opcode::V128Load8Lane:
  ------------------
  |  Branch (1394:7): [True: 700, False: 2.68M]
  ------------------
 1395|  1.38k|      case Opcode::V128Load16Lane:
  ------------------
  |  Branch (1395:7): [True: 685, False: 2.68M]
  ------------------
 1396|  1.92k|      case Opcode::V128Load32Lane:
  ------------------
  |  Branch (1396:7): [True: 535, False: 2.68M]
  ------------------
 1397|  2.47k|      case Opcode::V128Load64Lane: {
  ------------------
  |  Branch (1397:7): [True: 559, False: 2.68M]
  ------------------
 1398|  2.47k|        Address alignment_log2;
 1399|  2.47k|        Index memidx;
 1400|  2.47k|        Address offset;
 1401|  2.47k|        uint8_t lane_val;
 1402|  2.47k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  2.47k|  do {                              \
  |  |   56|  2.47k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 22, False: 2.45k]
  |  |  ------------------
  |  |   57|     22|      return ::wabt::Result::Error; \
  |  |   58|     22|    }                               \
  |  |   59|  2.47k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1403|  2.47k|                                     "load alignment", "load memidx",
 1404|  2.47k|                                     "load offset", &lane_val));
 1405|  2.45k|        CALLBACK(OnSimdLoadLaneExpr, opcode, memidx, alignment_log2, offset,
  ------------------
  |  |   61|  2.45k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.45k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.45k|  do {                         \
  |  |  |  |  |  |   42|  2.45k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.45k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.45k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.45k|               #member " callback failed")
  ------------------
 1406|  2.45k|                 lane_val);
 1407|  2.45k|        CHECK_RESULT(
  ------------------
  |  |   55|  2.45k|  do {                              \
  |  |   56|  2.45k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.45k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.45k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1408|  2.45k|            CallbackMemLocation(&alignment_log2, &memidx, &offset, &lane_val));
 1409|  2.45k|        break;
 1410|  2.45k|      }
 1411|  2.45k|      case Opcode::V128Store8Lane:
  ------------------
  |  Branch (1411:7): [True: 642, False: 2.68M]
  ------------------
 1412|  1.08k|      case Opcode::V128Store16Lane:
  ------------------
  |  Branch (1412:7): [True: 440, False: 2.68M]
  ------------------
 1413|  1.55k|      case Opcode::V128Store32Lane:
  ------------------
  |  Branch (1413:7): [True: 470, False: 2.68M]
  ------------------
 1414|  2.19k|      case Opcode::V128Store64Lane: {
  ------------------
  |  Branch (1414:7): [True: 645, False: 2.68M]
  ------------------
 1415|  2.19k|        Address alignment_log2;
 1416|  2.19k|        Index memidx;
 1417|  2.19k|        Address offset;
 1418|  2.19k|        uint8_t lane_val;
 1419|  2.19k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  2.19k|  do {                              \
  |  |   56|  2.19k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 17, False: 2.18k]
  |  |  ------------------
  |  |   57|     17|      return ::wabt::Result::Error; \
  |  |   58|     17|    }                               \
  |  |   59|  2.19k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1420|  2.19k|                                     "store alignment", "store memidx",
 1421|  2.19k|                                     "store offset", &lane_val));
 1422|  2.18k|        CALLBACK(OnSimdStoreLaneExpr, opcode, memidx, alignment_log2, offset,
  ------------------
  |  |   61|  2.18k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.18k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.18k|  do {                         \
  |  |  |  |  |  |   42|  2.18k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.18k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.18k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.18k|               #member " callback failed")
  ------------------
 1423|  2.18k|                 lane_val);
 1424|  2.18k|        CHECK_RESULT(
  ------------------
  |  |   55|  2.18k|  do {                              \
  |  |   56|  2.18k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.18k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.18k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1425|  2.18k|            CallbackMemLocation(&alignment_log2, &memidx, &offset, &lane_val));
 1426|  2.18k|        break;
 1427|  2.18k|      }
 1428|  2.18k|      case Opcode::V128Load32Zero:
  ------------------
  |  Branch (1428:7): [True: 590, False: 2.68M]
  ------------------
 1429|  1.85k|      case Opcode::V128Load64Zero: {
  ------------------
  |  Branch (1429:7): [True: 1.26k, False: 2.68M]
  ------------------
 1430|  1.85k|        Address alignment_log2;
 1431|  1.85k|        Index memidx;
 1432|  1.85k|        Address offset;
 1433|  1.85k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  1.85k|  do {                              \
  |  |   56|  1.85k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 1.84k]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|  1.85k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1434|  1.85k|                                     "load alignment", "load memidx",
 1435|  1.85k|                                     "load offset"));
 1436|  1.84k|        CALLBACK(OnLoadZeroExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  1.84k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.84k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.84k|  do {                         \
  |  |  |  |  |  |   42|  1.84k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.84k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.84k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.84k|               #member " callback failed")
  ------------------
 1437|  1.84k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  1.84k|  do {                              \
  |  |   56|  1.84k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.84k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.84k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1438|  1.84k|        break;
 1439|  1.84k|      }
 1440|  2.63k|      case Opcode::I32TruncF32S:
  ------------------
  |  Branch (1440:7): [True: 2.63k, False: 2.68M]
  ------------------
 1441|  5.96k|      case Opcode::I32TruncF64S:
  ------------------
  |  Branch (1441:7): [True: 3.32k, False: 2.68M]
  ------------------
 1442|  8.14k|      case Opcode::I32TruncF32U:
  ------------------
  |  Branch (1442:7): [True: 2.17k, False: 2.68M]
  ------------------
 1443|  10.0k|      case Opcode::I32TruncF64U:
  ------------------
  |  Branch (1443:7): [True: 1.95k, False: 2.68M]
  ------------------
 1444|  13.2k|      case Opcode::I32WrapI64:
  ------------------
  |  Branch (1444:7): [True: 3.12k, False: 2.68M]
  ------------------
 1445|  15.7k|      case Opcode::I64TruncF32S:
  ------------------
  |  Branch (1445:7): [True: 2.57k, False: 2.68M]
  ------------------
 1446|  21.6k|      case Opcode::I64TruncF64S:
  ------------------
  |  Branch (1446:7): [True: 5.84k, False: 2.68M]
  ------------------
 1447|  23.1k|      case Opcode::I64TruncF32U:
  ------------------
  |  Branch (1447:7): [True: 1.52k, False: 2.68M]
  ------------------
 1448|  27.1k|      case Opcode::I64TruncF64U:
  ------------------
  |  Branch (1448:7): [True: 4.00k, False: 2.68M]
  ------------------
 1449|  27.9k|      case Opcode::I64ExtendI32S:
  ------------------
  |  Branch (1449:7): [True: 775, False: 2.68M]
  ------------------
 1450|  30.4k|      case Opcode::I64ExtendI32U:
  ------------------
  |  Branch (1450:7): [True: 2.52k, False: 2.68M]
  ------------------
 1451|  32.0k|      case Opcode::F32ConvertI32S:
  ------------------
  |  Branch (1451:7): [True: 1.60k, False: 2.68M]
  ------------------
 1452|  36.3k|      case Opcode::F32ConvertI32U:
  ------------------
  |  Branch (1452:7): [True: 4.26k, False: 2.68M]
  ------------------
 1453|  37.7k|      case Opcode::F32ConvertI64S:
  ------------------
  |  Branch (1453:7): [True: 1.45k, False: 2.68M]
  ------------------
 1454|  38.9k|      case Opcode::F32ConvertI64U:
  ------------------
  |  Branch (1454:7): [True: 1.14k, False: 2.68M]
  ------------------
 1455|  43.0k|      case Opcode::F32DemoteF64:
  ------------------
  |  Branch (1455:7): [True: 4.16k, False: 2.68M]
  ------------------
 1456|  48.2k|      case Opcode::F32ReinterpretI32:
  ------------------
  |  Branch (1456:7): [True: 5.11k, False: 2.68M]
  ------------------
 1457|  51.9k|      case Opcode::F64ConvertI32S:
  ------------------
  |  Branch (1457:7): [True: 3.77k, False: 2.68M]
  ------------------
 1458|  55.1k|      case Opcode::F64ConvertI32U:
  ------------------
  |  Branch (1458:7): [True: 3.21k, False: 2.68M]
  ------------------
 1459|  60.8k|      case Opcode::F64ConvertI64S:
  ------------------
  |  Branch (1459:7): [True: 5.62k, False: 2.68M]
  ------------------
 1460|  63.4k|      case Opcode::F64ConvertI64U:
  ------------------
  |  Branch (1460:7): [True: 2.65k, False: 2.68M]
  ------------------
 1461|  65.1k|      case Opcode::F64PromoteF32:
  ------------------
  |  Branch (1461:7): [True: 1.68k, False: 2.68M]
  ------------------
 1462|  67.8k|      case Opcode::F64ReinterpretI64:
  ------------------
  |  Branch (1462:7): [True: 2.66k, False: 2.68M]
  ------------------
 1463|  70.6k|      case Opcode::I32ReinterpretF32:
  ------------------
  |  Branch (1463:7): [True: 2.79k, False: 2.68M]
  ------------------
 1464|  74.8k|      case Opcode::I64ReinterpretF64:
  ------------------
  |  Branch (1464:7): [True: 4.20k, False: 2.68M]
  ------------------
 1465|  78.3k|      case Opcode::I32Eqz:
  ------------------
  |  Branch (1465:7): [True: 3.50k, False: 2.68M]
  ------------------
 1466|  83.8k|      case Opcode::I64Eqz:
  ------------------
  |  Branch (1466:7): [True: 5.49k, False: 2.68M]
  ------------------
 1467|  84.3k|      case Opcode::F32X4ConvertI32X4S:
  ------------------
  |  Branch (1467:7): [True: 552, False: 2.68M]
  ------------------
 1468|  85.9k|      case Opcode::F32X4ConvertI32X4U:
  ------------------
  |  Branch (1468:7): [True: 1.63k, False: 2.68M]
  ------------------
 1469|  86.2k|      case Opcode::I32X4TruncSatF32X4S:
  ------------------
  |  Branch (1469:7): [True: 248, False: 2.68M]
  ------------------
 1470|  86.8k|      case Opcode::I32X4TruncSatF32X4U:
  ------------------
  |  Branch (1470:7): [True: 648, False: 2.68M]
  ------------------
 1471|  87.6k|      case Opcode::F32X4DemoteF64X2Zero:
  ------------------
  |  Branch (1471:7): [True: 719, False: 2.68M]
  ------------------
 1472|  88.1k|      case Opcode::F64X2PromoteLowF32X4:
  ------------------
  |  Branch (1472:7): [True: 551, False: 2.68M]
  ------------------
 1473|  88.7k|      case Opcode::I32X4TruncSatF64X2SZero:
  ------------------
  |  Branch (1473:7): [True: 609, False: 2.68M]
  ------------------
 1474|  90.0k|      case Opcode::I32X4TruncSatF64X2UZero:
  ------------------
  |  Branch (1474:7): [True: 1.26k, False: 2.68M]
  ------------------
 1475|  90.6k|      case Opcode::F64X2ConvertLowI32X4S:
  ------------------
  |  Branch (1475:7): [True: 641, False: 2.68M]
  ------------------
 1476|  91.7k|      case Opcode::F64X2ConvertLowI32X4U:
  ------------------
  |  Branch (1476:7): [True: 1.05k, False: 2.68M]
  ------------------
 1477|  91.7k|        CALLBACK(OnConvertExpr, opcode);
  ------------------
  |  |   61|  91.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  91.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  91.7k|  do {                         \
  |  |  |  |  |  |   42|  91.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 91.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  91.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  91.7k|               #member " callback failed")
  ------------------
 1478|  91.7k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  91.7k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  91.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  91.7k|  do {                         \
  |  |  |  |  |  |   42|  91.7k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 91.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  91.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1479|  91.7k|        break;
 1480|       |
 1481|   428k|      case Opcode::Try: {
  ------------------
  |  Branch (1481:7): [True: 428k, False: 2.25M]
  ------------------
 1482|   428k|        nested_blocks.push(opcode);
 1483|   428k|        Type sig_type;
 1484|   428k|        CHECK_RESULT(ReadType(&sig_type, "try signature type"));
  ------------------
  |  |   55|   428k|  do {                              \
  |  |   56|   428k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 56, False: 427k]
  |  |  ------------------
  |  |   57|     56|      return ::wabt::Result::Error; \
  |  |   58|     56|    }                               \
  |  |   59|   428k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1485|   427k|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   48|   427k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|   427k|  do {                         \
  |  |  |  |   42|   427k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 43, False: 427k]
  |  |  |  |  ------------------
  |  |  |  |   43|     43|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     43|      return Result::Error;    \
  |  |  |  |   45|     43|    }                          \
  |  |  |  |   46|   427k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1486|   427k|                     "expected valid block signature type");
 1487|   427k|        CALLBACK(OnTryExpr, sig_type);
  ------------------
  |  |   61|   427k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   427k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   427k|  do {                         \
  |  |  |  |  |  |   42|   427k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 2, False: 427k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      2|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      2|      return Result::Error;    \
  |  |  |  |  |  |   45|      2|    }                          \
  |  |  |  |  |  |   46|   427k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   427k|               #member " callback failed")
  ------------------
 1488|   427k|        CALLBACK(OnOpcodeBlockSig, sig_type);
  ------------------
  |  |   61|   427k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   427k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   427k|  do {                         \
  |  |  |  |  |  |   42|   427k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 427k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   427k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   427k|               #member " callback failed")
  ------------------
 1489|   427k|        break;
 1490|   427k|      }
 1491|       |
 1492|   427k|      case Opcode::Catch: {
  ------------------
  |  Branch (1492:7): [True: 4.59k, False: 2.68M]
  ------------------
 1493|  4.59k|        Index index;
 1494|  4.59k|        CHECK_RESULT(ReadIndex(&index, "tag index"));
  ------------------
  |  |   55|  4.59k|  do {                              \
  |  |   56|  4.59k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 19, False: 4.57k]
  |  |  ------------------
  |  |   57|     19|      return ::wabt::Result::Error; \
  |  |   58|     19|    }                               \
  |  |   59|  4.59k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1495|  4.57k|        CALLBACK(OnCatchExpr, index);
  ------------------
  |  |   61|  4.57k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.57k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.57k|  do {                         \
  |  |  |  |  |  |   42|  4.57k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 48, False: 4.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|     48|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|     48|      return Result::Error;    \
  |  |  |  |  |  |   45|     48|    }                          \
  |  |  |  |  |  |   46|  4.57k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.57k|               #member " callback failed")
  ------------------
 1496|  4.53k|        CALLBACK(OnOpcodeIndex, 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")
  ------------------
 1497|  4.53k|        break;
 1498|  4.53k|      }
 1499|       |
 1500|  4.53k|      case Opcode::CatchAll: {
  ------------------
  |  Branch (1500:7): [True: 1.16k, False: 2.68M]
  ------------------
 1501|  1.16k|        CALLBACK(OnCatchAllExpr);
  ------------------
  |  |   61|  1.16k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.16k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.16k|  do {                         \
  |  |  |  |  |  |   42|  1.16k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 26, False: 1.13k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|     26|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|     26|      return Result::Error;    \
  |  |  |  |  |  |   45|     26|    }                          \
  |  |  |  |  |  |   46|  1.16k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.16k|               #member " callback failed")
  ------------------
 1502|  1.13k|        CALLBACK(OnOpcodeBare);
  ------------------
  |  |   61|  1.13k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.13k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.13k|  do {                         \
  |  |  |  |  |  |   42|  1.13k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.13k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.13k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.13k|               #member " callback failed")
  ------------------
 1503|  1.13k|        break;
 1504|  1.13k|      }
 1505|       |
 1506|  1.24k|      case Opcode::Delegate: {
  ------------------
  |  Branch (1506:7): [True: 1.24k, False: 2.68M]
  ------------------
 1507|  1.24k|        ERROR_IF(nested_blocks.empty() || (nested_blocks.top() != Opcode::Try),
  ------------------
  |  |   41|  1.24k|  do {                         \
  |  |   42|  3.72k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 16, False: 1.23k]
  |  |  |  Branch (42:9): [True: 14, False: 1.21k]
  |  |  ------------------
  |  |   43|     30|      PrintError(__VA_ARGS__); \
  |  |   44|     30|      return Result::Error;    \
  |  |   45|     30|    }                          \
  |  |   46|  1.24k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1508|  1.24k|                 "delegate outside try block");
 1509|  1.21k|        nested_blocks.pop();
 1510|  1.21k|        Index index;
 1511|  1.21k|        CHECK_RESULT(ReadIndex(&index, "depth"));
  ------------------
  |  |   55|  1.21k|  do {                              \
  |  |   56|  1.21k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 1.21k]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|  1.21k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1512|  1.21k|        CALLBACK(OnDelegateExpr, index);
  ------------------
  |  |   61|  1.21k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.21k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.21k|  do {                         \
  |  |  |  |  |  |   42|  1.21k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 6, False: 1.20k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      6|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      6|      return Result::Error;    \
  |  |  |  |  |  |   45|      6|    }                          \
  |  |  |  |  |  |   46|  1.21k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.21k|               #member " callback failed")
  ------------------
 1513|  1.20k|        CALLBACK(OnOpcodeIndex, index);
  ------------------
  |  |   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")
  ------------------
 1514|  1.20k|        break;
 1515|  1.20k|      }
 1516|       |
 1517|  15.2k|      case Opcode::Rethrow: {
  ------------------
  |  Branch (1517:7): [True: 15.2k, False: 2.67M]
  ------------------
 1518|  15.2k|        Index depth;
 1519|  15.2k|        CHECK_RESULT(ReadIndex(&depth, "catch depth"));
  ------------------
  |  |   55|  15.2k|  do {                              \
  |  |   56|  15.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 25, False: 15.2k]
  |  |  ------------------
  |  |   57|     25|      return ::wabt::Result::Error; \
  |  |   58|     25|    }                               \
  |  |   59|  15.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1520|  15.2k|        CALLBACK(OnRethrowExpr, depth);
  ------------------
  |  |   61|  15.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  15.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  15.2k|  do {                         \
  |  |  |  |  |  |   42|  15.2k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 15.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  15.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  15.2k|               #member " callback failed")
  ------------------
 1521|  15.2k|        CALLBACK(OnOpcodeIndex, depth);
  ------------------
  |  |   61|  15.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  15.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  15.2k|  do {                         \
  |  |  |  |  |  |   42|  15.2k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 15.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  15.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  15.2k|               #member " callback failed")
  ------------------
 1522|  15.2k|        break;
 1523|  15.2k|      }
 1524|       |
 1525|  15.2k|      case Opcode::Throw: {
  ------------------
  |  Branch (1525:7): [True: 8.88k, False: 2.67M]
  ------------------
 1526|  8.88k|        Index index;
 1527|  8.88k|        CHECK_RESULT(ReadIndex(&index, "tag index"));
  ------------------
  |  |   55|  8.88k|  do {                              \
  |  |   56|  8.88k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 19, False: 8.86k]
  |  |  ------------------
  |  |   57|     19|      return ::wabt::Result::Error; \
  |  |   58|     19|    }                               \
  |  |   59|  8.88k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1528|  8.86k|        CALLBACK(OnThrowExpr, index);
  ------------------
  |  |   61|  8.86k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  8.86k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  8.86k|  do {                         \
  |  |  |  |  |  |   42|  8.86k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 8.86k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  8.86k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  8.86k|               #member " callback failed")
  ------------------
 1529|  8.86k|        CALLBACK(OnOpcodeIndex, index);
  ------------------
  |  |   61|  8.86k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  8.86k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  8.86k|  do {                         \
  |  |  |  |  |  |   42|  8.86k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 8.86k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  8.86k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  8.86k|               #member " callback failed")
  ------------------
 1530|  8.86k|        break;
 1531|  8.86k|      }
 1532|       |
 1533|  8.86k|      case Opcode::I32Extend8S:
  ------------------
  |  Branch (1533:7): [True: 5.17k, False: 2.68M]
  ------------------
 1534|  9.70k|      case Opcode::I32Extend16S:
  ------------------
  |  Branch (1534:7): [True: 4.52k, False: 2.68M]
  ------------------
 1535|  11.8k|      case Opcode::I64Extend8S:
  ------------------
  |  Branch (1535:7): [True: 2.10k, False: 2.68M]
  ------------------
 1536|  15.2k|      case Opcode::I64Extend16S:
  ------------------
  |  Branch (1536:7): [True: 3.39k, False: 2.68M]
  ------------------
 1537|  17.1k|      case Opcode::I64Extend32S:
  ------------------
  |  Branch (1537:7): [True: 1.91k, False: 2.68M]
  ------------------
 1538|  17.1k|        CALLBACK(OnUnaryExpr, opcode);
  ------------------
  |  |   61|  17.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  17.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  17.1k|  do {                         \
  |  |  |  |  |  |   42|  17.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 17.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  17.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  17.1k|               #member " callback failed")
  ------------------
 1539|  17.1k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  17.1k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  17.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  17.1k|  do {                         \
  |  |  |  |  |  |   42|  17.1k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 17.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  17.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1540|  17.1k|        break;
 1541|       |
 1542|  17.1k|      case Opcode::I32TruncSatF32S:
  ------------------
  |  Branch (1542:7): [True: 2.42k, False: 2.68M]
  ------------------
 1543|  3.78k|      case Opcode::I32TruncSatF32U:
  ------------------
  |  Branch (1543:7): [True: 1.35k, False: 2.68M]
  ------------------
 1544|  3.93k|      case Opcode::I32TruncSatF64S:
  ------------------
  |  Branch (1544:7): [True: 158, False: 2.68M]
  ------------------
 1545|  4.61k|      case Opcode::I32TruncSatF64U:
  ------------------
  |  Branch (1545:7): [True: 675, False: 2.68M]
  ------------------
 1546|  5.86k|      case Opcode::I64TruncSatF32S:
  ------------------
  |  Branch (1546:7): [True: 1.25k, False: 2.68M]
  ------------------
 1547|  6.42k|      case Opcode::I64TruncSatF32U:
  ------------------
  |  Branch (1547:7): [True: 556, False: 2.68M]
  ------------------
 1548|  7.09k|      case Opcode::I64TruncSatF64S:
  ------------------
  |  Branch (1548:7): [True: 668, False: 2.68M]
  ------------------
 1549|  8.41k|      case Opcode::I64TruncSatF64U:
  ------------------
  |  Branch (1549:7): [True: 1.32k, False: 2.68M]
  ------------------
 1550|  8.41k|        CALLBACK(OnConvertExpr, opcode);
  ------------------
  |  |   61|  8.41k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  8.41k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  8.41k|  do {                         \
  |  |  |  |  |  |   42|  8.41k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 8.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  8.41k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  8.41k|               #member " callback failed")
  ------------------
 1551|  8.41k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   58|  8.41k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  8.41k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  8.41k|  do {                         \
  |  |  |  |  |  |   42|  8.41k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 8.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  8.41k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1552|  8.41k|        break;
 1553|       |
 1554|  8.41k|      case Opcode::MemoryAtomicNotify: {
  ------------------
  |  Branch (1554:7): [True: 4.89k, False: 2.68M]
  ------------------
 1555|  4.89k|        Address alignment_log2;
 1556|  4.89k|        Index memidx;
 1557|  4.89k|        Address offset;
 1558|  4.89k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  4.89k|  do {                              \
  |  |   56|  4.89k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 13, False: 4.88k]
  |  |  ------------------
  |  |   57|     13|      return ::wabt::Result::Error; \
  |  |   58|     13|    }                               \
  |  |   59|  4.89k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1559|  4.89k|                                     "notify alignment", "notify memidx",
 1560|  4.89k|                                     "notify offset"));
 1561|  4.88k|        CALLBACK(OnAtomicNotifyExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  4.88k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.88k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.88k|  do {                         \
  |  |  |  |  |  |   42|  4.88k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.88k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.88k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.88k|               #member " callback failed")
  ------------------
 1562|  4.88k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  4.88k|  do {                              \
  |  |   56|  4.88k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4.88k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  4.88k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1563|  4.88k|        break;
 1564|  4.88k|      }
 1565|       |
 1566|  4.88k|      case Opcode::MemoryAtomicWait32:
  ------------------
  |  Branch (1566:7): [True: 3.14k, False: 2.68M]
  ------------------
 1567|  4.94k|      case Opcode::MemoryAtomicWait64: {
  ------------------
  |  Branch (1567:7): [True: 1.79k, False: 2.68M]
  ------------------
 1568|  4.94k|        Address alignment_log2;
 1569|  4.94k|        Index memidx;
 1570|  4.94k|        Address offset;
 1571|  4.94k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  4.94k|  do {                              \
  |  |   56|  4.94k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 4.92k]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|  4.94k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1572|  4.94k|                                     "wait alignment", "wait memidx",
 1573|  4.94k|                                     "wait offset"));
 1574|  4.92k|        CALLBACK(OnAtomicWaitExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  4.92k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.92k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.92k|  do {                         \
  |  |  |  |  |  |   42|  4.92k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.92k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.92k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.92k|               #member " callback failed")
  ------------------
 1575|  4.92k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  4.92k|  do {                              \
  |  |   56|  4.92k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4.92k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  4.92k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1576|  4.92k|        break;
 1577|  4.92k|      }
 1578|       |
 1579|  4.92k|      case Opcode::AtomicFence: {
  ------------------
  |  Branch (1579:7): [True: 467, False: 2.68M]
  ------------------
 1580|    467|        uint8_t consistency_model;
 1581|    467|        CHECK_RESULT(ReadU8(&consistency_model, "consistency model"));
  ------------------
  |  |   55|    467|  do {                              \
  |  |   56|    467|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 464]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|    467|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1582|    464|        ERROR_UNLESS(consistency_model == 0,
  ------------------
  |  |   48|    464|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    464|  do {                         \
  |  |  |  |   42|    464|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 9, False: 455]
  |  |  |  |  ------------------
  |  |  |  |   43|      9|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      9|      return Result::Error;    \
  |  |  |  |   45|      9|    }                          \
  |  |  |  |   46|    464|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1583|    455|                     "atomic.fence consistency model must be 0");
 1584|    455|        CALLBACK(OnAtomicFenceExpr, consistency_model);
  ------------------
  |  |   61|    455|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    455|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    455|  do {                         \
  |  |  |  |  |  |   42|    455|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 455]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    455|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    455|               #member " callback failed")
  ------------------
 1585|    455|        CALLBACK(OnOpcodeUint32, consistency_model);
  ------------------
  |  |   61|    455|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    455|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    455|  do {                         \
  |  |  |  |  |  |   42|    455|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 455]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    455|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    455|               #member " callback failed")
  ------------------
 1586|    455|        break;
 1587|    455|      }
 1588|       |
 1589|    845|      case Opcode::I32AtomicLoad8U:
  ------------------
  |  Branch (1589:7): [True: 845, False: 2.68M]
  ------------------
 1590|  1.38k|      case Opcode::I32AtomicLoad16U:
  ------------------
  |  Branch (1590:7): [True: 541, False: 2.68M]
  ------------------
 1591|  3.67k|      case Opcode::I64AtomicLoad8U:
  ------------------
  |  Branch (1591:7): [True: 2.29k, False: 2.68M]
  ------------------
 1592|  4.37k|      case Opcode::I64AtomicLoad16U:
  ------------------
  |  Branch (1592:7): [True: 701, False: 2.68M]
  ------------------
 1593|  4.80k|      case Opcode::I64AtomicLoad32U:
  ------------------
  |  Branch (1593:7): [True: 429, False: 2.68M]
  ------------------
 1594|  5.71k|      case Opcode::I32AtomicLoad:
  ------------------
  |  Branch (1594:7): [True: 906, False: 2.68M]
  ------------------
 1595|  6.19k|      case Opcode::I64AtomicLoad: {
  ------------------
  |  Branch (1595:7): [True: 476, False: 2.68M]
  ------------------
 1596|  6.19k|        Address alignment_log2;
 1597|  6.19k|        Index memidx;
 1598|  6.19k|        Address offset;
 1599|  6.19k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  6.19k|  do {                              \
  |  |   56|  6.19k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 30, False: 6.16k]
  |  |  ------------------
  |  |   57|     30|      return ::wabt::Result::Error; \
  |  |   58|     30|    }                               \
  |  |   59|  6.19k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1600|  6.19k|                                     "load alignment", "load memidx",
 1601|  6.19k|                                     "load offset"));
 1602|  6.16k|        CALLBACK(OnAtomicLoadExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  6.16k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.16k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.16k|  do {                         \
  |  |  |  |  |  |   42|  6.16k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.16k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.16k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.16k|               #member " callback failed")
  ------------------
 1603|  6.16k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  6.16k|  do {                              \
  |  |   56|  6.16k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 6.16k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  6.16k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1604|  6.16k|        break;
 1605|  6.16k|      }
 1606|       |
 1607|  6.16k|      case Opcode::I32AtomicStore8:
  ------------------
  |  Branch (1607:7): [True: 325, False: 2.68M]
  ------------------
 1608|    815|      case Opcode::I32AtomicStore16:
  ------------------
  |  Branch (1608:7): [True: 490, False: 2.68M]
  ------------------
 1609|  1.23k|      case Opcode::I64AtomicStore8:
  ------------------
  |  Branch (1609:7): [True: 417, False: 2.68M]
  ------------------
 1610|  2.08k|      case Opcode::I64AtomicStore16:
  ------------------
  |  Branch (1610:7): [True: 856, False: 2.68M]
  ------------------
 1611|  3.03k|      case Opcode::I64AtomicStore32:
  ------------------
  |  Branch (1611:7): [True: 948, False: 2.68M]
  ------------------
 1612|  3.73k|      case Opcode::I32AtomicStore:
  ------------------
  |  Branch (1612:7): [True: 694, False: 2.68M]
  ------------------
 1613|  3.99k|      case Opcode::I64AtomicStore: {
  ------------------
  |  Branch (1613:7): [True: 264, False: 2.68M]
  ------------------
 1614|  3.99k|        Address alignment_log2;
 1615|  3.99k|        Index memidx;
 1616|  3.99k|        Address offset;
 1617|  3.99k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  3.99k|  do {                              \
  |  |   56|  3.99k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 21, False: 3.97k]
  |  |  ------------------
  |  |   57|     21|      return ::wabt::Result::Error; \
  |  |   58|     21|    }                               \
  |  |   59|  3.99k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1618|  3.99k|                                     "store alignment", "store memidx",
 1619|  3.99k|                                     "store offset"));
 1620|  3.97k|        CALLBACK(OnAtomicStoreExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  3.97k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.97k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.97k|  do {                         \
  |  |  |  |  |  |   42|  3.97k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.97k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.97k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.97k|               #member " callback failed")
  ------------------
 1621|  3.97k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  3.97k|  do {                              \
  |  |   56|  3.97k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 3.97k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  3.97k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1622|  3.97k|        break;
 1623|  3.97k|      }
 1624|       |
 1625|  3.97k|      case Opcode::I32AtomicRmwAdd:
  ------------------
  |  Branch (1625:7): [True: 100, False: 2.68M]
  ------------------
 1626|    271|      case Opcode::I64AtomicRmwAdd:
  ------------------
  |  Branch (1626:7): [True: 171, False: 2.68M]
  ------------------
 1627|    617|      case Opcode::I32AtomicRmw8AddU:
  ------------------
  |  Branch (1627:7): [True: 346, False: 2.68M]
  ------------------
 1628|  2.08k|      case Opcode::I32AtomicRmw16AddU:
  ------------------
  |  Branch (1628:7): [True: 1.47k, False: 2.68M]
  ------------------
 1629|  2.57k|      case Opcode::I64AtomicRmw8AddU:
  ------------------
  |  Branch (1629:7): [True: 484, False: 2.68M]
  ------------------
 1630|  3.39k|      case Opcode::I64AtomicRmw16AddU:
  ------------------
  |  Branch (1630:7): [True: 823, False: 2.68M]
  ------------------
 1631|  3.83k|      case Opcode::I64AtomicRmw32AddU:
  ------------------
  |  Branch (1631:7): [True: 441, False: 2.68M]
  ------------------
 1632|  4.10k|      case Opcode::I32AtomicRmwSub:
  ------------------
  |  Branch (1632:7): [True: 272, False: 2.68M]
  ------------------
 1633|  4.77k|      case Opcode::I64AtomicRmwSub:
  ------------------
  |  Branch (1633:7): [True: 662, False: 2.68M]
  ------------------
 1634|  5.19k|      case Opcode::I32AtomicRmw8SubU:
  ------------------
  |  Branch (1634:7): [True: 420, False: 2.68M]
  ------------------
 1635|  6.44k|      case Opcode::I32AtomicRmw16SubU:
  ------------------
  |  Branch (1635:7): [True: 1.25k, False: 2.68M]
  ------------------
 1636|  7.06k|      case Opcode::I64AtomicRmw8SubU:
  ------------------
  |  Branch (1636:7): [True: 619, False: 2.68M]
  ------------------
 1637|  7.46k|      case Opcode::I64AtomicRmw16SubU:
  ------------------
  |  Branch (1637:7): [True: 402, False: 2.68M]
  ------------------
 1638|  10.6k|      case Opcode::I64AtomicRmw32SubU:
  ------------------
  |  Branch (1638:7): [True: 3.13k, False: 2.68M]
  ------------------
 1639|  12.0k|      case Opcode::I32AtomicRmwAnd:
  ------------------
  |  Branch (1639:7): [True: 1.42k, False: 2.68M]
  ------------------
 1640|  12.3k|      case Opcode::I64AtomicRmwAnd:
  ------------------
  |  Branch (1640:7): [True: 329, False: 2.68M]
  ------------------
 1641|  12.6k|      case Opcode::I32AtomicRmw8AndU:
  ------------------
  |  Branch (1641:7): [True: 340, False: 2.68M]
  ------------------
 1642|  13.4k|      case Opcode::I32AtomicRmw16AndU:
  ------------------
  |  Branch (1642:7): [True: 794, False: 2.68M]
  ------------------
 1643|  13.8k|      case Opcode::I64AtomicRmw8AndU:
  ------------------
  |  Branch (1643:7): [True: 404, False: 2.68M]
  ------------------
 1644|  15.0k|      case Opcode::I64AtomicRmw16AndU:
  ------------------
  |  Branch (1644:7): [True: 1.14k, False: 2.68M]
  ------------------
 1645|  15.8k|      case Opcode::I64AtomicRmw32AndU:
  ------------------
  |  Branch (1645:7): [True: 845, False: 2.68M]
  ------------------
 1646|  16.6k|      case Opcode::I32AtomicRmwOr:
  ------------------
  |  Branch (1646:7): [True: 766, False: 2.68M]
  ------------------
 1647|  17.5k|      case Opcode::I64AtomicRmwOr:
  ------------------
  |  Branch (1647:7): [True: 931, False: 2.68M]
  ------------------
 1648|  18.9k|      case Opcode::I32AtomicRmw8OrU:
  ------------------
  |  Branch (1648:7): [True: 1.37k, False: 2.68M]
  ------------------
 1649|  19.7k|      case Opcode::I32AtomicRmw16OrU:
  ------------------
  |  Branch (1649:7): [True: 784, False: 2.68M]
  ------------------
 1650|  20.2k|      case Opcode::I64AtomicRmw8OrU:
  ------------------
  |  Branch (1650:7): [True: 537, False: 2.68M]
  ------------------
 1651|  20.8k|      case Opcode::I64AtomicRmw16OrU:
  ------------------
  |  Branch (1651:7): [True: 541, False: 2.68M]
  ------------------
 1652|  21.2k|      case Opcode::I64AtomicRmw32OrU:
  ------------------
  |  Branch (1652:7): [True: 398, False: 2.68M]
  ------------------
 1653|  21.6k|      case Opcode::I32AtomicRmwXor:
  ------------------
  |  Branch (1653:7): [True: 488, False: 2.68M]
  ------------------
 1654|  22.6k|      case Opcode::I64AtomicRmwXor:
  ------------------
  |  Branch (1654:7): [True: 919, False: 2.68M]
  ------------------
 1655|  24.5k|      case Opcode::I32AtomicRmw8XorU:
  ------------------
  |  Branch (1655:7): [True: 1.91k, False: 2.68M]
  ------------------
 1656|  25.3k|      case Opcode::I32AtomicRmw16XorU:
  ------------------
  |  Branch (1656:7): [True: 870, False: 2.68M]
  ------------------
 1657|  25.7k|      case Opcode::I64AtomicRmw8XorU:
  ------------------
  |  Branch (1657:7): [True: 357, False: 2.68M]
  ------------------
 1658|  27.3k|      case Opcode::I64AtomicRmw16XorU:
  ------------------
  |  Branch (1658:7): [True: 1.61k, False: 2.68M]
  ------------------
 1659|  27.8k|      case Opcode::I64AtomicRmw32XorU:
  ------------------
  |  Branch (1659:7): [True: 441, False: 2.68M]
  ------------------
 1660|  28.2k|      case Opcode::I32AtomicRmwXchg:
  ------------------
  |  Branch (1660:7): [True: 497, False: 2.68M]
  ------------------
 1661|  29.2k|      case Opcode::I64AtomicRmwXchg:
  ------------------
  |  Branch (1661:7): [True: 925, False: 2.68M]
  ------------------
 1662|  29.9k|      case Opcode::I32AtomicRmw8XchgU:
  ------------------
  |  Branch (1662:7): [True: 748, False: 2.68M]
  ------------------
 1663|  30.1k|      case Opcode::I32AtomicRmw16XchgU:
  ------------------
  |  Branch (1663:7): [True: 209, False: 2.68M]
  ------------------
 1664|  30.5k|      case Opcode::I64AtomicRmw8XchgU:
  ------------------
  |  Branch (1664:7): [True: 373, False: 2.68M]
  ------------------
 1665|  31.5k|      case Opcode::I64AtomicRmw16XchgU:
  ------------------
  |  Branch (1665:7): [True: 968, False: 2.68M]
  ------------------
 1666|  31.9k|      case Opcode::I64AtomicRmw32XchgU: {
  ------------------
  |  Branch (1666:7): [True: 432, False: 2.68M]
  ------------------
 1667|  31.9k|        Address alignment_log2;
 1668|  31.9k|        Index memidx;
 1669|  31.9k|        Address offset;
 1670|  31.9k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  31.9k|  do {                              \
  |  |   56|  31.9k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 153, False: 31.8k]
  |  |  ------------------
  |  |   57|    153|      return ::wabt::Result::Error; \
  |  |   58|    153|    }                               \
  |  |   59|  31.9k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1671|  31.9k|                                     "memory alignment", "memory memidx",
 1672|  31.9k|                                     "memory offset"));
 1673|  31.8k|        CALLBACK(OnAtomicRmwExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   61|  31.8k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   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: 0, False: 31.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  31.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  31.8k|               #member " callback failed")
  ------------------
 1674|  31.8k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  31.8k|  do {                              \
  |  |   56|  31.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 31.8k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  31.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1675|  31.8k|        break;
 1676|  31.8k|      }
 1677|       |
 1678|  31.8k|      case Opcode::I32AtomicRmwCmpxchg:
  ------------------
  |  Branch (1678:7): [True: 794, False: 2.68M]
  ------------------
 1679|  1.18k|      case Opcode::I64AtomicRmwCmpxchg:
  ------------------
  |  Branch (1679:7): [True: 386, False: 2.68M]
  ------------------
 1680|  3.45k|      case Opcode::I32AtomicRmw8CmpxchgU:
  ------------------
  |  Branch (1680:7): [True: 2.27k, False: 2.68M]
  ------------------
 1681|  3.89k|      case Opcode::I32AtomicRmw16CmpxchgU:
  ------------------
  |  Branch (1681:7): [True: 439, False: 2.68M]
  ------------------
 1682|  4.62k|      case Opcode::I64AtomicRmw8CmpxchgU:
  ------------------
  |  Branch (1682:7): [True: 735, False: 2.68M]
  ------------------
 1683|  5.86k|      case Opcode::I64AtomicRmw16CmpxchgU:
  ------------------
  |  Branch (1683:7): [True: 1.23k, False: 2.68M]
  ------------------
 1684|  6.60k|      case Opcode::I64AtomicRmw32CmpxchgU: {
  ------------------
  |  Branch (1684:7): [True: 746, False: 2.68M]
  ------------------
 1685|  6.60k|        Address alignment_log2;
 1686|  6.60k|        Index memidx;
 1687|  6.60k|        Address offset;
 1688|  6.60k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  6.60k|  do {                              \
  |  |   56|  6.60k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 24, False: 6.58k]
  |  |  ------------------
  |  |   57|     24|      return ::wabt::Result::Error; \
  |  |   58|     24|    }                               \
  |  |   59|  6.60k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1689|  6.60k|                                     "memory alignment", "memory memidx",
 1690|  6.60k|                                     "memory offset"));
 1691|  6.58k|        CALLBACK(OnAtomicRmwCmpxchgExpr, opcode, memidx, alignment_log2,
  ------------------
  |  |   61|  6.58k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.58k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.58k|  do {                         \
  |  |  |  |  |  |   42|  6.58k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.58k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.58k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.58k|               #member " callback failed")
  ------------------
 1692|  6.58k|                 offset);
 1693|  6.58k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  6.58k|  do {                              \
  |  |   56|  6.58k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 6.58k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  6.58k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1694|  6.58k|        break;
 1695|  6.58k|      }
 1696|       |
 1697|  6.58k|      case Opcode::TableInit: {
  ------------------
  |  Branch (1697:7): [True: 320, False: 2.68M]
  ------------------
 1698|    320|        Index segment;
 1699|    320|        CHECK_RESULT(ReadIndex(&segment, "elem segment index"));
  ------------------
  |  |   55|    320|  do {                              \
  |  |   56|    320|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4, False: 316]
  |  |  ------------------
  |  |   57|      4|      return ::wabt::Result::Error; \
  |  |   58|      4|    }                               \
  |  |   59|    320|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1700|    316|        Index table_index;
 1701|    316|        CHECK_RESULT(ReadIndex(&table_index, "reserved table index"));
  ------------------
  |  |   55|    316|  do {                              \
  |  |   56|    316|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 310]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|    316|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1702|    310|        CALLBACK(OnTableInitExpr, segment, table_index);
  ------------------
  |  |   61|    310|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    310|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    310|  do {                         \
  |  |  |  |  |  |   42|    310|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 310]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    310|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    310|               #member " callback failed")
  ------------------
 1703|    310|        CALLBACK(OnOpcodeUint32Uint32, segment, table_index);
  ------------------
  |  |   61|    310|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    310|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    310|  do {                         \
  |  |  |  |  |  |   42|    310|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 310]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    310|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    310|               #member " callback failed")
  ------------------
 1704|    310|        break;
 1705|    310|      }
 1706|       |
 1707|    310|      case Opcode::MemoryInit: {
  ------------------
  |  Branch (1707:7): [True: 82, False: 2.68M]
  ------------------
 1708|     82|        Index segment;
 1709|     82|        ERROR_IF(data_count_ == kInvalidIndex,
  ------------------
  |  |   41|     82|  do {                         \
  |  |   42|     82|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 3, False: 79]
  |  |  ------------------
  |  |   43|      3|      PrintError(__VA_ARGS__); \
  |  |   44|      3|      return Result::Error;    \
  |  |   45|      3|    }                          \
  |  |   46|     82|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1710|     82|                 "memory.init requires data count section");
 1711|     79|        CHECK_RESULT(ReadIndex(&segment, "elem segment index"));
  ------------------
  |  |   55|     79|  do {                              \
  |  |   56|     79|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 69]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|     79|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1712|     69|        Index memidx = 0;
 1713|     69|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1713:13): [True: 39, False: 30]
  ------------------
 1714|     39|          uint8_t reserved;
 1715|     39|          CHECK_RESULT(ReadU8(&reserved, "reserved memory index"));
  ------------------
  |  |   55|     39|  do {                              \
  |  |   56|     39|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 38]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|     39|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1716|     38|          ERROR_UNLESS(reserved == 0, "reserved value must be 0");
  ------------------
  |  |   48|     38|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|     38|  do {                         \
  |  |  |  |   42|     38|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 17, False: 21]
  |  |  |  |  ------------------
  |  |  |  |   43|     17|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     17|      return Result::Error;    \
  |  |  |  |   45|     17|    }                          \
  |  |  |  |   46|     38|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1717|     38|        } else {
 1718|     30|          CHECK_RESULT(ReadMemidx(&memidx, "memory.init memidx"));
  ------------------
  |  |   55|     30|  do {                              \
  |  |   56|     30|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 25]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|     30|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1719|     30|        }
 1720|     46|        CALLBACK(OnMemoryInitExpr, segment, memidx);
  ------------------
  |  |   61|     46|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|     46|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     46|  do {                         \
  |  |  |  |  |  |   42|     46|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 46]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     46|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|     46|               #member " callback failed")
  ------------------
 1721|     46|        CALLBACK(OnOpcodeUint32Uint32, segment, memidx);
  ------------------
  |  |   61|     46|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|     46|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     46|  do {                         \
  |  |  |  |  |  |   42|     46|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 46]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     46|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|     46|               #member " callback failed")
  ------------------
 1722|     46|        break;
 1723|     46|      }
 1724|       |
 1725|     46|      case Opcode::DataDrop:
  ------------------
  |  Branch (1725:7): [True: 34, False: 2.68M]
  ------------------
 1726|     34|        ERROR_IF(data_count_ == kInvalidIndex,
  ------------------
  |  |   41|     34|  do {                         \
  |  |   42|     34|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 3, False: 31]
  |  |  ------------------
  |  |   43|      3|      PrintError(__VA_ARGS__); \
  |  |   44|      3|      return Result::Error;    \
  |  |   45|      3|    }                          \
  |  |   46|     34|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1727|     34|                 "data.drop requires data count section");
 1728|     34|        [[fallthrough]];
 1729|    430|      case Opcode::ElemDrop: {
  ------------------
  |  Branch (1729:7): [True: 399, False: 2.68M]
  ------------------
 1730|    430|        Index segment;
 1731|    430|        CHECK_RESULT(ReadIndex(&segment, "segment index"));
  ------------------
  |  |   55|    430|  do {                              \
  |  |   56|    430|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 13, False: 417]
  |  |  ------------------
  |  |   57|     13|      return ::wabt::Result::Error; \
  |  |   58|     13|    }                               \
  |  |   59|    430|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1732|    417|        if (opcode == Opcode::DataDrop) {
  ------------------
  |  Branch (1732:13): [True: 22, False: 395]
  ------------------
 1733|     22|          CALLBACK(OnDataDropExpr, segment);
  ------------------
  |  |   61|     22|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|     22|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     22|  do {                         \
  |  |  |  |  |  |   42|     22|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 22]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     22|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|     22|               #member " callback failed")
  ------------------
 1734|    395|        } else {
 1735|    395|          CALLBACK(OnElemDropExpr, segment);
  ------------------
  |  |   61|    395|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    395|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    395|  do {                         \
  |  |  |  |  |  |   42|    395|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 395]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    395|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    395|               #member " callback failed")
  ------------------
 1736|    395|        }
 1737|    417|        CALLBACK(OnOpcodeUint32, segment);
  ------------------
  |  |   61|    417|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    417|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    417|  do {                         \
  |  |  |  |  |  |   42|    417|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 417]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    417|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    417|               #member " callback failed")
  ------------------
 1738|    417|        break;
 1739|    417|      }
 1740|       |
 1741|    587|      case Opcode::MemoryFill: {
  ------------------
  |  Branch (1741:7): [True: 587, False: 2.68M]
  ------------------
 1742|    587|        Index memidx = 0;
 1743|    587|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1743:13): [True: 115, False: 472]
  ------------------
 1744|    115|          uint8_t reserved;
 1745|    115|          CHECK_RESULT(ReadU8(&reserved, "memory.fill reserved"));
  ------------------
  |  |   55|    115|  do {                              \
  |  |   56|    115|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4, False: 111]
  |  |  ------------------
  |  |   57|      4|      return ::wabt::Result::Error; \
  |  |   58|      4|    }                               \
  |  |   59|    115|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1746|    111|          ERROR_UNLESS(reserved == 0, "memory.fill reserved value must be 0");
  ------------------
  |  |   48|    111|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    111|  do {                         \
  |  |  |  |   42|    111|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 5, False: 106]
  |  |  |  |  ------------------
  |  |  |  |   43|      5|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      5|      return Result::Error;    \
  |  |  |  |   45|      5|    }                          \
  |  |  |  |   46|    111|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1747|    472|        } else {
 1748|    472|          CHECK_RESULT(ReadMemidx(&memidx, "memory.fill memidx"));
  ------------------
  |  |   55|    472|  do {                              \
  |  |   56|    472|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 467]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|    472|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1749|    472|        }
 1750|    573|        CALLBACK(OnMemoryFillExpr, memidx);
  ------------------
  |  |   61|    573|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    573|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    573|  do {                         \
  |  |  |  |  |  |   42|    573|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 573]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    573|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    573|               #member " callback failed")
  ------------------
 1751|    573|        CALLBACK(OnOpcodeUint32, memidx);
  ------------------
  |  |   61|    573|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    573|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    573|  do {                         \
  |  |  |  |  |  |   42|    573|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 573]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    573|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    573|               #member " callback failed")
  ------------------
 1752|    573|        break;
 1753|    573|      }
 1754|       |
 1755|  1.22k|      case Opcode::MemoryCopy: {
  ------------------
  |  Branch (1755:7): [True: 1.22k, False: 2.68M]
  ------------------
 1756|  1.22k|        Index destmemidx = 0;
 1757|  1.22k|        Index srcmemidx = 0;
 1758|  1.22k|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1758:13): [True: 114, False: 1.10k]
  ------------------
 1759|    114|          uint8_t reserved;
 1760|    114|          CHECK_RESULT(ReadU8(&reserved, "reserved memory index"));
  ------------------
  |  |   55|    114|  do {                              \
  |  |   56|    114|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 108]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|    114|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1761|    108|          ERROR_UNLESS(reserved == 0, "reserved value must be 0");
  ------------------
  |  |   48|    108|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    108|  do {                         \
  |  |  |  |   42|    108|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 9, False: 99]
  |  |  |  |  ------------------
  |  |  |  |   43|      9|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      9|      return Result::Error;    \
  |  |  |  |   45|      9|    }                          \
  |  |  |  |   46|    108|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1762|     99|          CHECK_RESULT(ReadU8(&reserved, "reserved memory index"));
  ------------------
  |  |   55|     99|  do {                              \
  |  |   56|     99|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 96]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|     99|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1763|     96|          ERROR_UNLESS(reserved == 0, "reserved value must be 0");
  ------------------
  |  |   48|     96|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|     96|  do {                         \
  |  |  |  |   42|     96|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 4, False: 92]
  |  |  |  |  ------------------
  |  |  |  |   43|      4|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      4|      return Result::Error;    \
  |  |  |  |   45|      4|    }                          \
  |  |  |  |   46|     96|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1764|  1.10k|        } else {
 1765|  1.10k|          CHECK_RESULT(ReadMemidx(&destmemidx, "memory.copy destmemindex"));
  ------------------
  |  |   55|  1.10k|  do {                              \
  |  |   56|  1.10k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 1.10k]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|  1.10k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1766|  1.10k|          CHECK_RESULT(ReadMemidx(&srcmemidx, "memory.copy srcmemidx"));
  ------------------
  |  |   55|  1.10k|  do {                              \
  |  |   56|  1.10k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 1.09k]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|  1.10k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1767|  1.10k|        }
 1768|  1.18k|        CALLBACK(OnMemoryCopyExpr, destmemidx, srcmemidx);
  ------------------
  |  |   61|  1.18k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.18k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.18k|  do {                         \
  |  |  |  |  |  |   42|  1.18k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.18k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.18k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.18k|               #member " callback failed")
  ------------------
 1769|  1.18k|        CALLBACK(OnOpcodeUint32Uint32, destmemidx, srcmemidx);
  ------------------
  |  |   61|  1.18k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.18k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.18k|  do {                         \
  |  |  |  |  |  |   42|  1.18k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.18k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.18k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.18k|               #member " callback failed")
  ------------------
 1770|  1.18k|        break;
 1771|  1.18k|      }
 1772|       |
 1773|  1.18k|      case Opcode::TableCopy: {
  ------------------
  |  Branch (1773:7): [True: 886, False: 2.68M]
  ------------------
 1774|    886|        Index table_dst;
 1775|    886|        Index table_src;
 1776|    886|        CHECK_RESULT(ReadIndex(&table_dst, "reserved table index"));
  ------------------
  |  |   55|    886|  do {                              \
  |  |   56|    886|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 883]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|    886|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1777|    883|        CHECK_RESULT(ReadIndex(&table_src, "table src"));
  ------------------
  |  |   55|    883|  do {                              \
  |  |   56|    883|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4, False: 879]
  |  |  ------------------
  |  |   57|      4|      return ::wabt::Result::Error; \
  |  |   58|      4|    }                               \
  |  |   59|    883|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1778|    879|        CALLBACK(OnTableCopyExpr, table_dst, table_src);
  ------------------
  |  |   61|    879|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    879|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    879|  do {                         \
  |  |  |  |  |  |   42|    879|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 879]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    879|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    879|               #member " callback failed")
  ------------------
 1779|    879|        CALLBACK(OnOpcodeUint32Uint32, table_dst, table_src);
  ------------------
  |  |   61|    879|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    879|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    879|  do {                         \
  |  |  |  |  |  |   42|    879|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 879]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    879|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    879|               #member " callback failed")
  ------------------
 1780|    879|        break;
 1781|    879|      }
 1782|       |
 1783|  3.95k|      case Opcode::TableGet: {
  ------------------
  |  Branch (1783:7): [True: 3.95k, False: 2.68M]
  ------------------
 1784|  3.95k|        Index table;
 1785|  3.95k|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|  3.95k|  do {                              \
  |  |   56|  3.95k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 19, False: 3.93k]
  |  |  ------------------
  |  |   57|     19|      return ::wabt::Result::Error; \
  |  |   58|     19|    }                               \
  |  |   59|  3.95k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1786|  3.93k|        CALLBACK(OnTableGetExpr, table);
  ------------------
  |  |   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")
  ------------------
 1787|  3.93k|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   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")
  ------------------
 1788|  3.93k|        break;
 1789|  3.93k|      }
 1790|       |
 1791|  6.48k|      case Opcode::TableSet: {
  ------------------
  |  Branch (1791:7): [True: 6.48k, False: 2.68M]
  ------------------
 1792|  6.48k|        Index table;
 1793|  6.48k|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|  6.48k|  do {                              \
  |  |   56|  6.48k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 6.46k]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|  6.48k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1794|  6.46k|        CALLBACK(OnTableSetExpr, table);
  ------------------
  |  |   61|  6.46k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.46k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.46k|  do {                         \
  |  |  |  |  |  |   42|  6.46k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.46k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.46k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.46k|               #member " callback failed")
  ------------------
 1795|  6.46k|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   61|  6.46k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.46k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.46k|  do {                         \
  |  |  |  |  |  |   42|  6.46k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.46k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.46k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.46k|               #member " callback failed")
  ------------------
 1796|  6.46k|        break;
 1797|  6.46k|      }
 1798|       |
 1799|  6.46k|      case Opcode::TableGrow: {
  ------------------
  |  Branch (1799:7): [True: 623, False: 2.68M]
  ------------------
 1800|    623|        Index table;
 1801|    623|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|    623|  do {                              \
  |  |   56|    623|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 618]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|    623|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1802|    618|        CALLBACK(OnTableGrowExpr, table);
  ------------------
  |  |   61|    618|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    618|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    618|  do {                         \
  |  |  |  |  |  |   42|    618|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 618]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    618|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    618|               #member " callback failed")
  ------------------
 1803|    618|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   61|    618|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    618|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    618|  do {                         \
  |  |  |  |  |  |   42|    618|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 618]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    618|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    618|               #member " callback failed")
  ------------------
 1804|    618|        break;
 1805|    618|      }
 1806|       |
 1807|    712|      case Opcode::TableSize: {
  ------------------
  |  Branch (1807:7): [True: 712, False: 2.68M]
  ------------------
 1808|    712|        Index table;
 1809|    712|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|    712|  do {                              \
  |  |   56|    712|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 706]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|    712|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1810|    706|        CALLBACK(OnTableSizeExpr, table);
  ------------------
  |  |   61|    706|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    706|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    706|  do {                         \
  |  |  |  |  |  |   42|    706|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 706]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    706|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    706|               #member " callback failed")
  ------------------
 1811|    706|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   61|    706|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    706|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    706|  do {                         \
  |  |  |  |  |  |   42|    706|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 706]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    706|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    706|               #member " callback failed")
  ------------------
 1812|    706|        break;
 1813|    706|      }
 1814|       |
 1815|    706|      case Opcode::TableFill: {
  ------------------
  |  Branch (1815:7): [True: 605, False: 2.68M]
  ------------------
 1816|    605|        Index table;
 1817|    605|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|    605|  do {                              \
  |  |   56|    605|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 602]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|    605|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1818|    602|        CALLBACK(OnTableFillExpr, table);
  ------------------
  |  |   61|    602|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    602|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    602|  do {                         \
  |  |  |  |  |  |   42|    602|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 602]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    602|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    602|               #member " callback failed")
  ------------------
 1819|    602|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   61|    602|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    602|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    602|  do {                         \
  |  |  |  |  |  |   42|    602|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 602]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    602|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    602|               #member " callback failed")
  ------------------
 1820|    602|        break;
 1821|    602|      }
 1822|       |
 1823|  1.42k|      case Opcode::RefFunc: {
  ------------------
  |  Branch (1823:7): [True: 1.42k, False: 2.68M]
  ------------------
 1824|  1.42k|        Index func;
 1825|  1.42k|        CHECK_RESULT(ReadIndex(&func, "func index"));
  ------------------
  |  |   55|  1.42k|  do {                              \
  |  |   56|  1.42k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 16, False: 1.41k]
  |  |  ------------------
  |  |   57|     16|      return ::wabt::Result::Error; \
  |  |   58|     16|    }                               \
  |  |   59|  1.42k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1826|  1.41k|        CALLBACK(OnRefFuncExpr, func);
  ------------------
  |  |   61|  1.41k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.41k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.41k|  do {                         \
  |  |  |  |  |  |   42|  1.41k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.41k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.41k|               #member " callback failed")
  ------------------
 1827|  1.41k|        CALLBACK(OnOpcodeUint32, func);
  ------------------
  |  |   61|  1.41k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.41k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.41k|  do {                         \
  |  |  |  |  |  |   42|  1.41k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.41k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.41k|               #member " callback failed")
  ------------------
 1828|  1.41k|        break;
 1829|  1.41k|      }
 1830|       |
 1831|  3.47k|      case Opcode::RefNull: {
  ------------------
  |  Branch (1831:7): [True: 3.47k, False: 2.68M]
  ------------------
 1832|  3.47k|        Type type;
 1833|  3.47k|        CHECK_RESULT(ReadRefType(&type, "ref.null type"));
  ------------------
  |  |   55|  3.47k|  do {                              \
  |  |   56|  3.47k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 101, False: 3.37k]
  |  |  ------------------
  |  |   57|    101|      return ::wabt::Result::Error; \
  |  |   58|    101|    }                               \
  |  |   59|  3.47k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1834|  3.37k|        CALLBACK(OnRefNullExpr, type);
  ------------------
  |  |   61|  3.37k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.37k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.37k|  do {                         \
  |  |  |  |  |  |   42|  3.37k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.37k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.37k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.37k|               #member " callback failed")
  ------------------
 1835|  3.37k|        CALLBACK(OnOpcodeType, type);
  ------------------
  |  |   61|  3.37k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.37k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.37k|  do {                         \
  |  |  |  |  |  |   42|  3.37k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.37k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.37k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.37k|               #member " callback failed")
  ------------------
 1836|  3.37k|        break;
 1837|  3.37k|      }
 1838|       |
 1839|  3.37k|      case Opcode::RefIsNull:
  ------------------
  |  Branch (1839:7): [True: 1.38k, False: 2.68M]
  ------------------
 1840|  1.38k|        CALLBACK(OnRefIsNullExpr);
  ------------------
  |  |   61|  1.38k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.38k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.38k|  do {                         \
  |  |  |  |  |  |   42|  1.38k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.38k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.38k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.38k|               #member " callback failed")
  ------------------
 1841|  1.38k|        CALLBACK(OnOpcodeBare);
  ------------------
  |  |   61|  1.38k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.38k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.38k|  do {                         \
  |  |  |  |  |  |   42|  1.38k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.38k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.38k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.38k|               #member " callback failed")
  ------------------
 1842|  1.38k|        break;
 1843|       |
 1844|  5.36k|      case Opcode::CallRef:
  ------------------
  |  Branch (1844:7): [True: 5.36k, False: 2.68M]
  ------------------
 1845|  5.36k|        CALLBACK(OnCallRefExpr);
  ------------------
  |  |   61|  5.36k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.36k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.36k|  do {                         \
  |  |  |  |  |  |   42|  5.36k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.36k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.36k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.36k|               #member " callback failed")
  ------------------
 1846|  5.36k|        CALLBACK(OnOpcodeBare);
  ------------------
  |  |   61|  5.36k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.36k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.36k|  do {                         \
  |  |  |  |  |  |   42|  5.36k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.36k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.36k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.36k|               #member " callback failed")
  ------------------
 1847|  5.36k|        break;
 1848|       |
 1849|  5.36k|      default:
  ------------------
  |  Branch (1849:7): [True: 1.02k, False: 2.68M]
  ------------------
 1850|  1.02k|        return ReportUnexpectedOpcode(opcode);
 1851|  2.68M|    }
 1852|  2.68M|  }
 1853|       |
 1854|  3.15k|  PrintError("%s must end with END opcode", context);
 1855|  3.15k|  return Result::Error;
 1856|  11.6k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadOpcodeEPNS_6OpcodeEPKc:
  260|  2.68M|Result BinaryReader::ReadOpcode(Opcode* out_value, const char* desc) {
  261|  2.68M|  uint8_t value = 0;
  262|  2.68M|  CHECK_RESULT(ReadU8(&value, desc));
  ------------------
  |  |   55|  2.68M|  do {                              \
  |  |   56|  2.68M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 107, False: 2.68M]
  |  |  ------------------
  |  |   57|    107|      return ::wabt::Result::Error; \
  |  |   58|    107|    }                               \
  |  |   59|  2.68M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  263|       |
  264|  2.68M|  if (Opcode::IsPrefixByte(value)) {
  ------------------
  |  Branch (264:7): [True: 326k, False: 2.36M]
  ------------------
  265|   326k|    uint32_t code;
  266|   326k|    CHECK_RESULT(ReadU32Leb128(&code, desc));
  ------------------
  |  |   55|   326k|  do {                              \
  |  |   56|   326k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 209, False: 326k]
  |  |  ------------------
  |  |   57|    209|      return ::wabt::Result::Error; \
  |  |   58|    209|    }                               \
  |  |   59|   326k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  267|   326k|    *out_value = Opcode::FromCode(value, code);
  268|  2.36M|  } else {
  269|  2.36M|    *out_value = Opcode::FromCode(value);
  270|  2.36M|  }
  271|  2.68M|  return Result::Ok;
  272|  2.68M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader22ReportUnexpectedOpcodeENS_6OpcodeEPKc:
  240|  1.25k|Result BinaryReader::ReportUnexpectedOpcode(Opcode opcode, const char* where) {
  241|  1.25k|  std::string message = "unexpected opcode";
  242|  1.25k|  if (where) {
  ------------------
  |  Branch (242:7): [True: 0, False: 1.25k]
  ------------------
  243|      0|    message += ' ';
  244|      0|    message += where;
  245|      0|  }
  246|       |
  247|  1.25k|  message += ":";
  248|       |
  249|  1.25k|  std::vector<uint8_t> bytes = opcode.GetBytes();
  250|  1.25k|  assert(bytes.size() > 0);
  251|       |
  252|  1.81k|  for (uint8_t byte : bytes) {
  ------------------
  |  Branch (252:21): [True: 1.81k, False: 1.25k]
  ------------------
  253|  1.81k|    message += StringPrintf(" 0x%x", byte);
  254|  1.81k|  }
  255|       |
  256|  1.25k|  PrintError("%s", message.c_str());
  257|  1.25k|  return Result::Error;
  258|  1.25k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader11IsBlockTypeENS_4TypeE:
  551|   685k|bool BinaryReader::IsBlockType(Type type) {
  552|   685k|  if (IsConcreteType(type) || type == Type::Void) {
  ------------------
  |  Branch (552:7): [True: 10.3k, False: 674k]
  |  Branch (552:31): [True: 1.50k, False: 673k]
  ------------------
  553|  11.8k|    return true;
  554|  11.8k|  }
  555|       |
  556|   673k|  if (!(options_.features.multi_value_enabled() && type.IsIndex())) {
  ------------------
  |  Branch (556:9): [True: 673k, False: 0]
  |  Branch (556:52): [True: 673k, False: 154]
  ------------------
  557|    154|    return false;
  558|    154|  }
  559|       |
  560|   673k|  return true;
  561|   673k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadS64Leb128EPmPKc:
  341|  14.5k|Result BinaryReader::ReadS64Leb128(uint64_t* out_value, const char* desc) {
  342|  14.5k|  const uint8_t* p = state_.data + state_.offset;
  343|  14.5k|  const uint8_t* end = state_.data + read_end_;
  344|  14.5k|  size_t bytes_read = wabt::ReadS64Leb128(p, end, out_value);
  345|  14.5k|  ERROR_UNLESS(bytes_read > 0, "unable to read i64 leb128: %s", desc);
  ------------------
  |  |   48|  14.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  14.5k|  do {                         \
  |  |  |  |   42|  14.5k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 85, False: 14.4k]
  |  |  |  |  ------------------
  |  |  |  |   43|     85|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     85|      return Result::Error;    \
  |  |  |  |   45|     85|    }                          \
  |  |  |  |   46|  14.5k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  346|  14.4k|  state_.offset += bytes_read;
  347|  14.4k|  return Result::Ok;
  348|  14.5k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadF32EPjPKc:
  302|  1.88k|Result BinaryReader::ReadF32(uint32_t* out_value, const char* desc) {
  303|  1.88k|  return ReadT(out_value, "float", desc);
  304|  1.88k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadF64EPmPKc:
  306|  1.48k|Result BinaryReader::ReadF64(uint64_t* out_value, const char* desc) {
  307|  1.48k|  return ReadT(out_value, "double", desc);
  308|  1.48k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTImEENS_6ResultEPT_PKcS7_:
  277|  1.48k|                           const char* desc) {
  278|  1.48k|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (278:7): [True: 23, False: 1.45k]
  ------------------
  279|     23|    PrintError("unable to read %s: %s", type_name, desc);
  280|     23|    return Result::Error;
  281|     23|  }
  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|  1.45k|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  289|  1.45k|#endif
  290|  1.45k|  state_.offset += sizeof(T);
  291|  1.45k|  return Result::Ok;
  292|  1.48k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader8ReadV128EP4v128PKc:
  310|  1.43k|Result BinaryReader::ReadV128(v128* out_value, const char* desc) {
  311|  1.43k|  return ReadT(out_value, "v128", desc);
  312|  1.43k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTI4v128EENS_6ResultEPT_PKcS8_:
  277|  1.43k|                           const char* desc) {
  278|  1.43k|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (278:7): [True: 26, False: 1.41k]
  ------------------
  279|     26|    PrintError("unable to read %s: %s", type_name, desc);
  280|     26|    return Result::Error;
  281|     26|  }
  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|  1.41k|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  289|  1.41k|#endif
  290|  1.41k|  state_.offset += sizeof(T);
  291|  1.41k|  return Result::Ok;
  292|  1.43k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadMemLocationEPmPjS2_PKcS5_S5_Ph:
  455|   161k|                                     uint8_t* lane_val) {
  456|   161k|  CHECK_RESULT(ReadAlignment(alignment_log2, desc_align));
  ------------------
  |  |   55|   161k|  do {                              \
  |  |   56|   161k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 691, False: 161k]
  |  |  ------------------
  |  |   57|    691|      return ::wabt::Result::Error; \
  |  |   58|    691|    }                               \
  |  |   59|   161k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  457|   161k|  *memidx = 0;
  458|   161k|  if (*alignment_log2 >> 6) {
  ------------------
  |  Branch (458:7): [True: 32.1k, False: 129k]
  ------------------
  459|  32.1k|    ERROR_IF(!options_.features.multi_memory_enabled(),
  ------------------
  |  |   41|  32.1k|  do {                         \
  |  |   42|  32.1k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 0, False: 32.1k]
  |  |  ------------------
  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |   44|      0|      return Result::Error;    \
  |  |   45|      0|    }                          \
  |  |   46|  32.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  460|  32.1k|             "multi_memory not allowed");
  461|  32.1k|    *alignment_log2 = *alignment_log2 & ((1 << 6) - 1);
  462|  32.1k|    CHECK_RESULT(ReadMemidx(memidx, desc_memidx));
  ------------------
  |  |   55|  32.1k|  do {                              \
  |  |   56|  32.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 32, False: 32.0k]
  |  |  ------------------
  |  |   57|     32|      return ::wabt::Result::Error; \
  |  |   58|     32|    }                               \
  |  |   59|  32.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  463|  32.1k|  }
  464|   161k|  CHECK_RESULT(ReadAddress(offset, 0, desc_offset));
  ------------------
  |  |   55|   161k|  do {                              \
  |  |   56|   161k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 199, False: 160k]
  |  |  ------------------
  |  |   57|    199|      return ::wabt::Result::Error; \
  |  |   58|    199|    }                               \
  |  |   59|   161k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  465|       |
  466|   160k|  if (lane_val) {
  ------------------
  |  Branch (466:7): [True: 4.64k, False: 156k]
  ------------------
  467|  4.64k|    CHECK_RESULT(ReadU8(lane_val, "Lane idx"));
  ------------------
  |  |   55|  4.64k|  do {                              \
  |  |   56|  4.64k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 4.63k]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|  4.64k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  468|  4.64k|  }
  469|       |
  470|   160k|  return Result::Ok;
  471|   160k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader11ReadAddressEPmjPKc:
  656|   161k|                                 const char* desc) {
  657|   161k|  if (options_.features.memory64_enabled()) {
  ------------------
  |  Branch (657:7): [True: 139k, False: 21.3k]
  ------------------
  658|   139k|    return ReadU64Leb128(out_value, desc);
  659|   139k|  } else {
  660|  21.3k|    uint32_t val;
  661|  21.3k|    Result res = ReadU32Leb128(&val, desc);
  662|  21.3k|    *out_value = val;
  663|  21.3k|    return res;
  664|  21.3k|  }
  665|   161k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader19CallbackMemLocationEPKmPKjS3_PKh:
  476|   160k|                                         const uint8_t* lane_val) {
  477|   160k|  if (lane_val) {
  ------------------
  |  Branch (477:7): [True: 4.63k, False: 156k]
  ------------------
  478|  4.63k|    if (*memidx) {
  ------------------
  |  Branch (478:9): [True: 2.08k, False: 2.55k]
  ------------------
  479|  2.08k|      CALLBACK(OnOpcodeUint32Uint32Uint32Uint32, *alignment_log2, *memidx,
  ------------------
  |  |   61|  2.08k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.08k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.08k|  do {                         \
  |  |  |  |  |  |   42|  2.08k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.08k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.08k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.08k|               #member " callback failed")
  ------------------
  480|  2.08k|               *offset, *lane_val);
  481|  2.55k|    } else {
  482|  2.55k|      CALLBACK(OnOpcodeUint32Uint32Uint32, *alignment_log2, *offset, *lane_val);
  ------------------
  |  |   61|  2.55k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.55k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.55k|  do {                         \
  |  |  |  |  |  |   42|  2.55k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.55k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.55k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.55k|               #member " callback failed")
  ------------------
  483|  2.55k|    }
  484|   156k|  } else {
  485|   156k|    if (*memidx) {
  ------------------
  |  Branch (485:9): [True: 25.0k, False: 131k]
  ------------------
  486|  25.0k|      CALLBACK(OnOpcodeUint32Uint32Uint32, *alignment_log2, *memidx, *offset);
  ------------------
  |  |   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")
  ------------------
  487|   131k|    } else {
  488|   131k|      CALLBACK(OnOpcodeUint32Uint32, *alignment_log2, *offset);
  ------------------
  |  |   61|   131k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|   131k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   131k|  do {                         \
  |  |  |  |  |  |   42|   131k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 131k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|   131k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|   131k|               #member " callback failed")
  ------------------
  489|   131k|    }
  490|   156k|  }
  491|       |
  492|   160k|  return Result::Ok;
  493|   160k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadMemidxEPjPKc:
  444|  49.5k|Result BinaryReader::ReadMemidx(Index* memidx, const char* desc) {
  445|  49.5k|  CHECK_RESULT(ReadIndex(memidx, desc));
  ------------------
  |  |   55|  49.5k|  do {                              \
  |  |   56|  49.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 77, False: 49.4k]
  |  |  ------------------
  |  |   57|     77|      return ::wabt::Result::Error; \
  |  |   58|     77|    }                               \
  |  |   59|  49.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  446|  49.4k|  return Result::Ok;
  447|  49.5k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadExportSectionEm:
 2668|    637|Result BinaryReader::ReadExportSection(Offset section_size) {
 2669|    637|  CALLBACK(BeginExportSection, section_size);
  ------------------
  |  |   61|    637|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    637|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    637|  do {                         \
  |  |  |  |  |  |   42|    637|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 637]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    637|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    637|               #member " callback failed")
  ------------------
 2670|    637|  Index num_exports;
 2671|    637|  CHECK_RESULT(ReadCount(&num_exports, "export count"));
  ------------------
  |  |   55|    637|  do {                              \
  |  |   56|    637|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 66, False: 571]
  |  |  ------------------
  |  |   57|     66|      return ::wabt::Result::Error; \
  |  |   58|     66|    }                               \
  |  |   59|    637|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2672|    571|  CALLBACK(OnExportCount, num_exports);
  ------------------
  |  |   61|    571|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    571|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    571|  do {                         \
  |  |  |  |  |  |   42|    571|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 571]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    571|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    571|               #member " callback failed")
  ------------------
 2673|  21.6k|  for (Index i = 0; i < num_exports; ++i) {
  ------------------
  |  Branch (2673:21): [True: 21.5k, False: 64]
  ------------------
 2674|  21.5k|    std::string_view name;
 2675|  21.5k|    CHECK_RESULT(ReadStr(&name, "export item name"));
  ------------------
  |  |   55|  21.5k|  do {                              \
  |  |   56|  21.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 328, False: 21.2k]
  |  |  ------------------
  |  |   57|    328|      return ::wabt::Result::Error; \
  |  |   58|    328|    }                               \
  |  |   59|  21.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2676|       |
 2677|  21.2k|    ExternalKind kind;
 2678|  21.2k|    CHECK_RESULT(ReadExternalKind(&kind, "export kind"));
  ------------------
  |  |   55|  21.2k|  do {                              \
  |  |   56|  21.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 137, False: 21.1k]
  |  |  ------------------
  |  |   57|    137|      return ::wabt::Result::Error; \
  |  |   58|    137|    }                               \
  |  |   59|  21.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2679|       |
 2680|  21.1k|    Index item_index;
 2681|  21.1k|    CHECK_RESULT(ReadIndex(&item_index, "export item index"));
  ------------------
  |  |   55|  21.1k|  do {                              \
  |  |   56|  21.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 40, False: 21.0k]
  |  |  ------------------
  |  |   57|     40|      return ::wabt::Result::Error; \
  |  |   58|     40|    }                               \
  |  |   59|  21.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2682|  21.0k|    if (kind == ExternalKind::Tag) {
  ------------------
  |  Branch (2682:9): [True: 672, False: 20.4k]
  ------------------
 2683|    672|      ERROR_UNLESS(options_.features.exceptions_enabled(),
  ------------------
  |  |   48|    672|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    672|  do {                         \
  |  |  |  |   42|    672|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 2, False: 670]
  |  |  |  |  ------------------
  |  |  |  |   43|      2|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      2|      return Result::Error;    \
  |  |  |  |   45|      2|    }                          \
  |  |  |  |   46|    672|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2684|    672|                   "invalid export tag kind: exceptions not allowed");
 2685|    672|    }
 2686|       |
 2687|  21.0k|    CALLBACK(OnExport, i, static_cast<ExternalKind>(kind), item_index, name);
  ------------------
  |  |   61|  21.0k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  21.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  21.0k|  do {                         \
  |  |  |  |  |  |   42|  21.0k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 21.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  21.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  21.0k|               #member " callback failed")
  ------------------
 2688|  21.0k|  }
 2689|     64|  CALLBACK0(EndExportSection);
  ------------------
  |  |   58|     64|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|     64|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     64|  do {                         \
  |  |  |  |  |  |   42|     64|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 64]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     64|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2690|     64|  return Result::Ok;
 2691|     64|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadExternalKindEPNS_12ExternalKindEPKc:
  372|  22.2k|                                      const char* desc) {
  373|  22.2k|  uint8_t value = 0;
  374|  22.2k|  CHECK_RESULT(ReadU8(&value, desc));
  ------------------
  |  |   55|  22.2k|  do {                              \
  |  |   56|  22.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 68, False: 22.1k]
  |  |  ------------------
  |  |   57|     68|      return ::wabt::Result::Error; \
  |  |   58|     68|    }                               \
  |  |   59|  22.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  375|  22.1k|  ERROR_UNLESS(value < kExternalKindCount, "invalid export external kind: %d",
  ------------------
  |  |   48|  22.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  22.1k|  do {                         \
  |  |  |  |   42|  22.1k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 90, False: 22.0k]
  |  |  |  |  ------------------
  |  |  |  |   43|     90|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     90|      return Result::Error;    \
  |  |  |  |   45|     90|    }                          \
  |  |  |  |   46|  22.1k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  376|  22.0k|               value);
  377|  22.0k|  *out_value = static_cast<ExternalKind>(value);
  378|  22.0k|  return Result::Ok;
  379|  22.1k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadStartSectionEm:
 2693|     61|Result BinaryReader::ReadStartSection(Offset section_size) {
 2694|     61|  CALLBACK(BeginStartSection, section_size);
  ------------------
  |  |   61|     61|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|     61|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     61|  do {                         \
  |  |  |  |  |  |   42|     61|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 61]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     61|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|     61|               #member " callback failed")
  ------------------
 2695|     61|  Index func_index;
 2696|     61|  CHECK_RESULT(ReadIndex(&func_index, "start function index"));
  ------------------
  |  |   55|     61|  do {                              \
  |  |   56|     61|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 18, False: 43]
  |  |  ------------------
  |  |   57|     18|      return ::wabt::Result::Error; \
  |  |   58|     18|    }                               \
  |  |   59|     61|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2697|     43|  CALLBACK(OnStartFunction, func_index);
  ------------------
  |  |   61|     43|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|     43|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     43|  do {                         \
  |  |  |  |  |  |   42|     43|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 43]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     43|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|     43|               #member " callback failed")
  ------------------
 2698|     43|  CALLBACK0(EndStartSection);
  ------------------
  |  |   58|     43|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|     43|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     43|  do {                         \
  |  |  |  |  |  |   42|     43|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 43]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     43|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2699|     43|  return Result::Ok;
 2700|     43|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadElemSectionEm:
 2702|  3.93k|Result BinaryReader::ReadElemSection(Offset section_size) {
 2703|  3.93k|  CALLBACK(BeginElemSection, section_size);
  ------------------
  |  |   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")
  ------------------
 2704|  3.93k|  Index num_elem_segments;
 2705|  3.93k|  CHECK_RESULT(ReadCount(&num_elem_segments, "elem segment count"));
  ------------------
  |  |   55|  3.93k|  do {                              \
  |  |   56|  3.93k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 51, False: 3.88k]
  |  |  ------------------
  |  |   57|     51|      return ::wabt::Result::Error; \
  |  |   58|     51|    }                               \
  |  |   59|  3.93k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2706|  3.88k|  CALLBACK(OnElemSegmentCount, num_elem_segments);
  ------------------
  |  |   61|  3.88k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.88k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.88k|  do {                         \
  |  |  |  |  |  |   42|  3.88k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.88k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.88k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.88k|               #member " callback failed")
  ------------------
 2707|  6.33k|  for (Index i = 0; i < num_elem_segments; ++i) {
  ------------------
  |  Branch (2707:21): [True: 6.31k, False: 17]
  ------------------
 2708|  6.31k|    uint32_t flags;
 2709|  6.31k|    CHECK_RESULT(ReadU32Leb128(&flags, "elem segment flags"));
  ------------------
  |  |   55|  6.31k|  do {                              \
  |  |   56|  6.31k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 17, False: 6.29k]
  |  |  ------------------
  |  |   57|     17|      return ::wabt::Result::Error; \
  |  |   58|     17|    }                               \
  |  |   59|  6.31k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2710|  6.29k|    ERROR_IF(flags > SegFlagMax, "invalid elem segment flags: %#x", flags);
  ------------------
  |  |   41|  6.29k|  do {                         \
  |  |   42|  6.29k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 68, False: 6.23k]
  |  |  ------------------
  |  |   43|     68|      PrintError(__VA_ARGS__); \
  |  |   44|     68|      return Result::Error;    \
  |  |   45|     68|    }                          \
  |  |   46|  6.29k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2711|  6.23k|    Index table_index(0);
 2712|  6.23k|    if ((flags & (SegPassive | SegExplicitIndex)) == SegExplicitIndex) {
  ------------------
  |  Branch (2712:9): [True: 365, False: 5.86k]
  ------------------
 2713|    365|      CHECK_RESULT(ReadIndex(&table_index, "elem segment table index"));
  ------------------
  |  |   55|    365|  do {                              \
  |  |   56|    365|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 362]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|    365|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2714|    365|    }
 2715|  6.22k|    Type elem_type = Type::FuncRef;
 2716|       |
 2717|  6.22k|    CALLBACK(BeginElemSegment, i, table_index, flags);
  ------------------
  |  |   61|  6.22k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.22k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.22k|  do {                         \
  |  |  |  |  |  |   42|  6.22k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.22k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.22k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.22k|               #member " callback failed")
  ------------------
 2718|       |
 2719|  6.22k|    if (!(flags & SegPassive)) {
  ------------------
  |  Branch (2719:9): [True: 5.12k, False: 1.09k]
  ------------------
 2720|  5.12k|      CALLBACK(BeginElemSegmentInitExpr, i);
  ------------------
  |  |   61|  5.12k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.12k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.12k|  do {                         \
  |  |  |  |  |  |   42|  5.12k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.12k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.12k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.12k|               #member " callback failed")
  ------------------
 2721|  5.12k|      CHECK_RESULT(ReadInitExpr(i));
  ------------------
  |  |   55|  5.12k|  do {                              \
  |  |   56|  5.12k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3.44k, False: 1.68k]
  |  |  ------------------
  |  |   57|  3.44k|      return ::wabt::Result::Error; \
  |  |   58|  3.44k|    }                               \
  |  |   59|  5.12k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2722|  1.68k|      CALLBACK(EndElemSegmentInitExpr, i);
  ------------------
  |  |   61|  1.68k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.68k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.68k|  do {                         \
  |  |  |  |  |  |   42|  1.68k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 3, False: 1.68k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      3|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      3|      return Result::Error;    \
  |  |  |  |  |  |   45|      3|    }                          \
  |  |  |  |  |  |   46|  1.68k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.68k|               #member " callback failed")
  ------------------
 2723|  1.68k|    }
 2724|       |
 2725|       |    // For backwards compat we support not declaring the element kind.
 2726|  2.78k|    if (flags & (SegPassive | SegExplicitIndex)) {
  ------------------
  |  Branch (2726:9): [True: 1.11k, False: 1.66k]
  ------------------
 2727|  1.11k|      if (flags & SegUseElemExprs) {
  ------------------
  |  Branch (2727:11): [True: 167, False: 951]
  ------------------
 2728|    167|        CHECK_RESULT(ReadRefType(&elem_type, "table elem type"));
  ------------------
  |  |   55|    167|  do {                              \
  |  |   56|    167|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 72, False: 95]
  |  |  ------------------
  |  |   57|     72|      return ::wabt::Result::Error; \
  |  |   58|     72|    }                               \
  |  |   59|    167|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2729|    951|      } else {
 2730|    951|        ExternalKind kind;
 2731|    951|        CHECK_RESULT(ReadExternalKind(&kind, "export kind"));
  ------------------
  |  |   55|    951|  do {                              \
  |  |   56|    951|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 21, False: 930]
  |  |  ------------------
  |  |   57|     21|      return ::wabt::Result::Error; \
  |  |   58|     21|    }                               \
  |  |   59|    951|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2732|    930|        ERROR_UNLESS(kind == ExternalKind::Func,
  ------------------
  |  |   48|    930|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    930|  do {                         \
  |  |  |  |   42|    930|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 6, False: 924]
  |  |  |  |  ------------------
  |  |  |  |   43|      6|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      6|      return Result::Error;    \
  |  |  |  |   45|      6|    }                          \
  |  |  |  |   46|    930|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2733|    924|                     "segment elem type must be func (%s)",
 2734|    924|                     elem_type.GetName().c_str());
 2735|    924|        elem_type = Type::FuncRef;
 2736|    924|      }
 2737|  1.11k|    }
 2738|       |
 2739|  2.68k|    CALLBACK(OnElemSegmentElemType, i, elem_type);
  ------------------
  |  |   61|  2.68k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.68k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.68k|  do {                         \
  |  |  |  |  |  |   42|  2.68k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.68k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.68k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.68k|               #member " callback failed")
  ------------------
 2740|       |
 2741|  2.68k|    Index num_elem_exprs;
 2742|  2.68k|    CHECK_RESULT(ReadCount(&num_elem_exprs, "elem count"));
  ------------------
  |  |   55|  2.68k|  do {                              \
  |  |   56|  2.68k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 59, False: 2.62k]
  |  |  ------------------
  |  |   57|     59|      return ::wabt::Result::Error; \
  |  |   58|     59|    }                               \
  |  |   59|  2.68k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2743|       |
 2744|  2.62k|    CALLBACK(OnElemSegmentElemExprCount, i, num_elem_exprs);
  ------------------
  |  |   61|  2.62k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.62k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.62k|  do {                         \
  |  |  |  |  |  |   42|  2.62k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.62k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.62k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.62k|               #member " callback failed")
  ------------------
 2745|  9.16k|    for (Index j = 0; j < num_elem_exprs; ++j) {
  ------------------
  |  Branch (2745:23): [True: 6.70k, False: 2.45k]
  ------------------
 2746|  6.70k|      CALLBACK(BeginElemExpr, i, j);
  ------------------
  |  |   61|  6.70k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.70k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.70k|  do {                         \
  |  |  |  |  |  |   42|  6.70k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 6.70k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  6.70k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.70k|               #member " callback failed")
  ------------------
 2747|  6.70k|      if (flags & SegUseElemExprs) {
  ------------------
  |  Branch (2747:11): [True: 1.01k, False: 5.69k]
  ------------------
 2748|  1.01k|        CHECK_RESULT(ReadInitExpr(j));
  ------------------
  |  |   55|  1.01k|  do {                              \
  |  |   56|  1.01k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 151, False: 864]
  |  |  ------------------
  |  |   57|    151|      return ::wabt::Result::Error; \
  |  |   58|    151|    }                               \
  |  |   59|  1.01k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2749|  5.69k|      } else {
 2750|  5.69k|        Index func_index;
 2751|  5.69k|        CHECK_RESULT(ReadIndex(&func_index, "elem expr func index"));
  ------------------
  |  |   55|  5.69k|  do {                              \
  |  |   56|  5.69k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 19, False: 5.67k]
  |  |  ------------------
  |  |   57|     19|      return ::wabt::Result::Error; \
  |  |   58|     19|    }                               \
  |  |   59|  5.69k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2752|  5.67k|        CALLBACK(OnOpcode, Opcode::RefFunc);
  ------------------
  |  |   61|  5.67k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.67k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.67k|  do {                         \
  |  |  |  |  |  |   42|  5.67k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.67k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.67k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.67k|               #member " callback failed")
  ------------------
 2753|  5.67k|        CALLBACK(OnRefFuncExpr, func_index);
  ------------------
  |  |   61|  5.67k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.67k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.67k|  do {                         \
  |  |  |  |  |  |   42|  5.67k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.67k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.67k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.67k|               #member " callback failed")
  ------------------
 2754|  5.67k|        CALLBACK(OnOpcodeUint32, func_index);
  ------------------
  |  |   61|  5.67k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  5.67k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.67k|  do {                         \
  |  |  |  |  |  |   42|  5.67k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 5.67k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  5.67k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  5.67k|               #member " callback failed")
  ------------------
 2755|  5.67k|        CALLBACK0(OnEndExpr);
  ------------------
  |  |   58|  5.67k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|  5.67k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.67k|  do {                         \
  |  |  |  |  |  |   42|  5.67k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 2, False: 5.67k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      2|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      2|      return Result::Error;    \
  |  |  |  |  |  |   45|      2|    }                          \
  |  |  |  |  |  |   46|  5.67k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2756|  5.67k|      }
 2757|  6.53k|      CALLBACK(EndElemExpr, i, j);
  ------------------
  |  |   61|  6.53k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  6.53k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  6.53k|  do {                         \
  |  |  |  |  |  |   42|  6.53k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 1, False: 6.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      1|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      1|      return Result::Error;    \
  |  |  |  |  |  |   45|      1|    }                          \
  |  |  |  |  |  |   46|  6.53k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  6.53k|               #member " callback failed")
  ------------------
 2758|  6.53k|    }
 2759|  2.45k|    CALLBACK(EndElemSegment, i);
  ------------------
  |  |   61|  2.45k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.45k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.45k|  do {                         \
  |  |  |  |  |  |   42|  2.45k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.45k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.45k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.45k|               #member " callback failed")
  ------------------
 2760|  2.45k|  }
 2761|     17|  CALLBACK0(EndElemSection);
  ------------------
  |  |   58|     17|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|     17|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     17|  do {                         \
  |  |  |  |  |  |   42|     17|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 17]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     17|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2762|     17|  return Result::Ok;
 2763|     17|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadCodeSectionEm:
 2765|    680|Result BinaryReader::ReadCodeSection(Offset section_size) {
 2766|    680|  CALLBACK(BeginCodeSection, section_size);
  ------------------
  |  |   61|    680|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    680|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    680|  do {                         \
  |  |  |  |  |  |   42|    680|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 680]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    680|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    680|               #member " callback failed")
  ------------------
 2767|    680|  CHECK_RESULT(ReadCount(&num_function_bodies_, "function body count"));
  ------------------
  |  |   55|    680|  do {                              \
  |  |   56|    680|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 51, False: 629]
  |  |  ------------------
  |  |   57|     51|      return ::wabt::Result::Error; \
  |  |   58|     51|    }                               \
  |  |   59|    680|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2768|    629|  ERROR_UNLESS(num_function_signatures_ == num_function_bodies_,
  ------------------
  |  |   48|    629|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    629|  do {                         \
  |  |  |  |   42|    629|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 49, False: 580]
  |  |  |  |  ------------------
  |  |  |  |   43|     49|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     49|      return Result::Error;    \
  |  |  |  |   45|     49|    }                          \
  |  |  |  |   46|    629|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2769|    580|               "function signature count != function body count");
 2770|    580|  CALLBACK(OnFunctionBodyCount, num_function_bodies_);
  ------------------
  |  |   61|    580|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    580|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    580|  do {                         \
  |  |  |  |  |  |   42|    580|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 5, False: 575]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      5|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      5|      return Result::Error;    \
  |  |  |  |  |  |   45|      5|    }                          \
  |  |  |  |  |  |   46|    580|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    580|               #member " callback failed")
  ------------------
 2771|    866|  for (Index i = 0; i < num_function_bodies_; ++i) {
  ------------------
  |  Branch (2771:21): [True: 852, False: 14]
  ------------------
 2772|    852|    Index func_index = num_func_imports_ + i;
 2773|    852|    Offset func_offset = state_.offset;
 2774|    852|    state_.offset = func_offset;
 2775|    852|    uint32_t body_size;
 2776|    852|    CHECK_RESULT(ReadU32Leb128(&body_size, "function body size"));
  ------------------
  |  |   55|    852|  do {                              \
  |  |   56|    852|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 851]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    852|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2777|    851|    Offset body_start_offset = state_.offset;
 2778|    851|    Offset end_offset = body_start_offset + body_size;
 2779|    851|    CALLBACK(BeginFunctionBody, func_index, body_size);
  ------------------
  |  |   61|    851|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    851|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    851|  do {                         \
  |  |  |  |  |  |   42|    851|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 851]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    851|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    851|               #member " callback failed")
  ------------------
 2780|       |
 2781|    851|    uint64_t total_locals = 0;
 2782|    851|    Index num_local_decls;
 2783|    851|    CHECK_RESULT(ReadCount(&num_local_decls, "local declaration count"));
  ------------------
  |  |   55|    851|  do {                              \
  |  |   56|    851|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 32, False: 819]
  |  |  ------------------
  |  |   57|     32|      return ::wabt::Result::Error; \
  |  |   58|     32|    }                               \
  |  |   59|    851|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2784|    819|    CALLBACK(OnLocalDeclCount, num_local_decls);
  ------------------
  |  |   61|    819|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    819|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    819|  do {                         \
  |  |  |  |  |  |   42|    819|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 819]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    819|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    819|               #member " callback failed")
  ------------------
 2785|  2.24k|    for (Index k = 0; k < num_local_decls; ++k) {
  ------------------
  |  Branch (2785:23): [True: 1.60k, False: 635]
  ------------------
 2786|  1.60k|      Index num_local_types;
 2787|  1.60k|      CHECK_RESULT(ReadIndex(&num_local_types, "local type count"));
  ------------------
  |  |   55|  1.60k|  do {                              \
  |  |   56|  1.60k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 20, False: 1.58k]
  |  |  ------------------
  |  |   57|     20|      return ::wabt::Result::Error; \
  |  |   58|     20|    }                               \
  |  |   59|  1.60k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2788|  1.58k|      total_locals += num_local_types;
 2789|  1.58k|      ERROR_UNLESS(total_locals <= UINT32_MAX, "local count must be <= 0x%x",
  ------------------
  |  |   48|  1.58k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  1.58k|  do {                         \
  |  |  |  |   42|  1.58k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 1, False: 1.58k]
  |  |  |  |  ------------------
  |  |  |  |   43|      1|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      1|      return Result::Error;    \
  |  |  |  |   45|      1|    }                          \
  |  |  |  |   46|  1.58k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2790|  1.58k|                   UINT32_MAX);
 2791|  1.58k|      Type local_type;
 2792|  1.58k|      CHECK_RESULT(ReadType(&local_type, "local type"));
  ------------------
  |  |   55|  1.58k|  do {                              \
  |  |   56|  1.58k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 32, False: 1.55k]
  |  |  ------------------
  |  |   57|     32|      return ::wabt::Result::Error; \
  |  |   58|     32|    }                               \
  |  |   59|  1.58k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2793|  1.55k|      ERROR_UNLESS(IsConcreteType(local_type), "expected valid local type");
  ------------------
  |  |   48|  1.55k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  1.55k|  do {                         \
  |  |  |  |   42|  1.55k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 90, False: 1.46k]
  |  |  |  |  ------------------
  |  |  |  |   43|     90|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     90|      return Result::Error;    \
  |  |  |  |   45|     90|    }                          \
  |  |  |  |   46|  1.55k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2794|  1.46k|      CALLBACK(OnLocalDecl, k, num_local_types, local_type);
  ------------------
  |  |   61|  1.46k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.46k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.46k|  do {                         \
  |  |  |  |  |  |   42|  1.46k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 41, False: 1.42k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|     41|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|     41|      return Result::Error;    \
  |  |  |  |  |  |   45|     41|    }                          \
  |  |  |  |  |  |   46|  1.46k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.46k|               #member " callback failed")
  ------------------
 2795|  1.46k|    }
 2796|       |
 2797|    635|    if (options_.skip_function_bodies) {
  ------------------
  |  Branch (2797:9): [True: 0, False: 635]
  ------------------
 2798|      0|      state_.offset = end_offset;
 2799|    635|    } else {
 2800|    635|      CHECK_RESULT(ReadFunctionBody(end_offset));
  ------------------
  |  |   55|    635|  do {                              \
  |  |   56|    635|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 344, False: 291]
  |  |  ------------------
  |  |   57|    344|      return ::wabt::Result::Error; \
  |  |   58|    344|    }                               \
  |  |   59|    635|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2801|    635|    }
 2802|       |
 2803|    291|    CALLBACK(EndFunctionBody, func_index);
  ------------------
  |  |   61|    291|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    291|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    291|  do {                         \
  |  |  |  |  |  |   42|    291|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 291]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    291|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    291|               #member " callback failed")
  ------------------
 2804|    291|  }
 2805|     14|  CALLBACK0(EndCodeSection);
  ------------------
  |  |   58|     14|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|     14|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     14|  do {                         \
  |  |  |  |  |  |   42|     14|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 14]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     14|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2806|     14|  return Result::Ok;
 2807|     14|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadFunctionBodyEm:
  667|    635|Result BinaryReader::ReadFunctionBody(Offset end_offset) {
  668|    635|  CHECK_RESULT(ReadInstructions(end_offset, "function body"));
  ------------------
  |  |   55|    635|  do {                              \
  |  |   56|    635|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 338, False: 297]
  |  |  ------------------
  |  |   57|    338|      return ::wabt::Result::Error; \
  |  |   58|    338|    }                               \
  |  |   59|    635|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  669|    297|  ERROR_UNLESS(state_.offset == end_offset,
  ------------------
  |  |   48|    297|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|    297|  do {                         \
  |  |  |  |   42|    297|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 6, False: 291]
  |  |  |  |  ------------------
  |  |  |  |   43|      6|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|      6|      return Result::Error;    \
  |  |  |  |   45|      6|    }                          \
  |  |  |  |   46|    297|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  670|    291|               "function body shorter than given size");
  671|    291|  return Result::Ok;
  672|    297|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadDataSectionEm:
 2809|  3.05k|Result BinaryReader::ReadDataSection(Offset section_size) {
 2810|  3.05k|  CALLBACK(BeginDataSection, section_size);
  ------------------
  |  |   61|  3.05k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.05k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.05k|  do {                         \
  |  |  |  |  |  |   42|  3.05k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.05k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.05k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.05k|               #member " callback failed")
  ------------------
 2811|  3.05k|  Index num_data_segments;
 2812|  3.05k|  CHECK_RESULT(ReadCount(&num_data_segments, "data segment count"));
  ------------------
  |  |   55|  3.05k|  do {                              \
  |  |   56|  3.05k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 57, False: 2.99k]
  |  |  ------------------
  |  |   57|     57|      return ::wabt::Result::Error; \
  |  |   58|     57|    }                               \
  |  |   59|  3.05k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2813|  2.99k|  CALLBACK(OnDataSegmentCount, num_data_segments);
  ------------------
  |  |   61|  2.99k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  2.99k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.99k|  do {                         \
  |  |  |  |  |  |   42|  2.99k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 2.99k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  2.99k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  2.99k|               #member " callback failed")
  ------------------
 2814|       |  // If the DataCount section is not present, then data_count_ will be invalid.
 2815|  2.99k|  ERROR_UNLESS(data_count_ == kInvalidIndex || data_count_ == num_data_segments,
  ------------------
  |  |   48|  2.99k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   41|  2.99k|  do {                         \
  |  |  |  |   42|  6.06k|    if (expr) {                \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (42:9): [True: 2.92k, False: 73]
  |  |  |  |  |  Branch (42:9): [True: 27, False: 46]
  |  |  |  |  ------------------
  |  |  |  |   43|     46|      PrintError(__VA_ARGS__); \
  |  |  |  |   44|     46|      return Result::Error;    \
  |  |  |  |   45|     46|    }                          \
  |  |  |  |   46|  2.99k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2816|  2.94k|               "data segment count does not equal count in DataCount section");
 2817|  4.20k|  for (Index i = 0; i < num_data_segments; ++i) {
  ------------------
  |  Branch (2817:21): [True: 4.17k, False: 29]
  ------------------
 2818|  4.17k|    uint32_t flags;
 2819|  4.17k|    CHECK_RESULT(ReadU32Leb128(&flags, "data segment flags"));
  ------------------
  |  |   55|  4.17k|  do {                              \
  |  |   56|  4.17k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 8, False: 4.16k]
  |  |  ------------------
  |  |   57|      8|      return ::wabt::Result::Error; \
  |  |   58|      8|    }                               \
  |  |   59|  4.17k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2820|  4.16k|    ERROR_IF(flags != 0 && !options_.features.bulk_memory_enabled(),
  ------------------
  |  |   41|  4.16k|  do {                         \
  |  |   42|  9.96k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 1.63k, False: 2.52k]
  |  |  |  Branch (42:9): [True: 0, False: 1.63k]
  |  |  ------------------
  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |   44|      0|      return Result::Error;    \
  |  |   45|      0|    }                          \
  |  |   46|  4.16k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2821|  4.16k|             "invalid memory index %d: bulk memory not allowed", flags);
 2822|  4.16k|    ERROR_IF(flags > SegFlagMax, "invalid data segment flags: %#x", flags);
  ------------------
  |  |   41|  4.16k|  do {                         \
  |  |   42|  4.16k|    if (expr) {                \
  |  |  ------------------
  |  |  |  Branch (42:9): [True: 70, False: 4.09k]
  |  |  ------------------
  |  |   43|     70|      PrintError(__VA_ARGS__); \
  |  |   44|     70|      return Result::Error;    \
  |  |   45|     70|    }                          \
  |  |   46|  4.16k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2823|  4.09k|    Index memory_index(0);
 2824|  4.09k|    if (flags & SegExplicitIndex) {
  ------------------
  |  Branch (2824:9): [True: 559, False: 3.53k]
  ------------------
 2825|    559|      CHECK_RESULT(ReadIndex(&memory_index, "data segment memory index"));
  ------------------
  |  |   55|    559|  do {                              \
  |  |   56|    559|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 558]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    559|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2826|    559|    }
 2827|  4.09k|    CALLBACK(BeginDataSegment, i, memory_index, flags);
  ------------------
  |  |   61|  4.09k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  4.09k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.09k|  do {                         \
  |  |  |  |  |  |   42|  4.09k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 4.09k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  4.09k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  4.09k|               #member " callback failed")
  ------------------
 2828|  4.09k|    if (!(flags & SegPassive)) {
  ------------------
  |  Branch (2828:9): [True: 3.37k, False: 721]
  ------------------
 2829|  3.37k|      CALLBACK(BeginDataSegmentInitExpr, i);
  ------------------
  |  |   61|  3.37k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  3.37k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  3.37k|  do {                         \
  |  |  |  |  |  |   42|  3.37k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 3.37k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  3.37k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  3.37k|               #member " callback failed")
  ------------------
 2830|  3.37k|      CHECK_RESULT(ReadInitExpr(i));
  ------------------
  |  |   55|  3.37k|  do {                              \
  |  |   56|  3.37k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.75k, False: 622]
  |  |  ------------------
  |  |   57|  2.75k|      return ::wabt::Result::Error; \
  |  |   58|  2.75k|    }                               \
  |  |   59|  3.37k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2831|    622|      CALLBACK(EndDataSegmentInitExpr, i);
  ------------------
  |  |   61|    622|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    622|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    622|  do {                         \
  |  |  |  |  |  |   42|    622|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 6, False: 616]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      6|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      6|      return Result::Error;    \
  |  |  |  |  |  |   45|      6|    }                          \
  |  |  |  |  |  |   46|    622|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    622|               #member " callback failed")
  ------------------
 2832|    622|    }
 2833|       |
 2834|  1.33k|    Address data_size;
 2835|  1.33k|    const void* data;
 2836|  1.33k|    CHECK_RESULT(ReadBytes(&data, &data_size, "data segment data"));
  ------------------
  |  |   55|  1.33k|  do {                              \
  |  |   56|  1.33k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 85, False: 1.25k]
  |  |  ------------------
  |  |   57|     85|      return ::wabt::Result::Error; \
  |  |   58|     85|    }                               \
  |  |   59|  1.33k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2837|  1.25k|    CALLBACK(OnDataSegmentData, i, data, data_size);
  ------------------
  |  |   61|  1.25k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.25k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.25k|  do {                         \
  |  |  |  |  |  |   42|  1.25k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.25k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.25k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.25k|               #member " callback failed")
  ------------------
 2838|  1.25k|    CALLBACK(EndDataSegment, i);
  ------------------
  |  |   61|  1.25k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|  1.25k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.25k|  do {                         \
  |  |  |  |  |  |   42|  1.25k|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 1.25k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|  1.25k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|  1.25k|               #member " callback failed")
  ------------------
 2839|  1.25k|  }
 2840|     29|  CALLBACK0(EndDataSection);
  ------------------
  |  |   58|     29|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|     29|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     29|  do {                         \
  |  |  |  |  |  |   42|     29|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 29]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     29|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2841|     29|  return Result::Ok;
 2842|     29|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader14ReadTagSectionEm:
 2327|    131|Result BinaryReader::ReadTagSection(Offset section_size) {
 2328|    131|  CALLBACK(BeginTagSection, section_size);
  ------------------
  |  |   61|    131|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    131|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    131|  do {                         \
  |  |  |  |  |  |   42|    131|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 131]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    131|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    131|               #member " callback failed")
  ------------------
 2329|    131|  Index num_tags;
 2330|    131|  CHECK_RESULT(ReadCount(&num_tags, "tag count"));
  ------------------
  |  |   55|    131|  do {                              \
  |  |   56|    131|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 44, False: 87]
  |  |  ------------------
  |  |   57|     44|      return ::wabt::Result::Error; \
  |  |   58|     44|    }                               \
  |  |   59|    131|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2331|     87|  CALLBACK(OnTagCount, num_tags);
  ------------------
  |  |   61|     87|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|     87|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     87|  do {                         \
  |  |  |  |  |  |   42|     87|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 87]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     87|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|     87|               #member " callback failed")
  ------------------
 2332|       |
 2333|  3.66k|  for (Index i = 0; i < num_tags; ++i) {
  ------------------
  |  Branch (2333:21): [True: 3.63k, False: 24]
  ------------------
 2334|  3.63k|    Index tag_index = num_tag_imports_ + i;
 2335|  3.63k|    Index sig_index;
 2336|  3.63k|    CHECK_RESULT(ReadTagType(&sig_index));
  ------------------
  |  |   55|  3.63k|  do {                              \
  |  |   56|  3.63k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 63, False: 3.57k]
  |  |  ------------------
  |  |   57|     63|      return ::wabt::Result::Error; \
  |  |   58|     63|    }                               \
  |  |   59|  3.63k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2337|  3.57k|    CALLBACK(OnTagType, tag_index, sig_index);
  ------------------
  |  |   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")
  ------------------
 2338|  3.57k|  }
 2339|       |
 2340|     24|  CALLBACK(EndTagSection);
  ------------------
  |  |   61|     24|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|     24|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     24|  do {                         \
  |  |  |  |  |  |   42|     24|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 24]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|     24|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|     24|               #member " callback failed")
  ------------------
 2341|     24|  return Result::Ok;
 2342|     24|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader20ReadDataCountSectionEm:
 2844|    149|Result BinaryReader::ReadDataCountSection(Offset section_size) {
 2845|    149|  CALLBACK(BeginDataCountSection, section_size);
  ------------------
  |  |   61|    149|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    149|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    149|  do {                         \
  |  |  |  |  |  |   42|    149|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 149]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    149|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    149|               #member " callback failed")
  ------------------
 2846|    149|  Index data_count;
 2847|    149|  CHECK_RESULT(ReadIndex(&data_count, "data count"));
  ------------------
  |  |   55|    149|  do {                              \
  |  |   56|    149|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 12, False: 137]
  |  |  ------------------
  |  |   57|     12|      return ::wabt::Result::Error; \
  |  |   58|     12|    }                               \
  |  |   59|    149|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2848|    137|  CALLBACK(OnDataCount, data_count);
  ------------------
  |  |   61|    137|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   48|    137|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    137|  do {                         \
  |  |  |  |  |  |   42|    137|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 137]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    137|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   62|    137|               #member " callback failed")
  ------------------
 2849|    137|  CALLBACK0(EndDataCountSection);
  ------------------
  |  |   58|    137|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   48|    137|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    137|  do {                         \
  |  |  |  |  |  |   42|    137|    if (expr) {                \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:9): [True: 0, False: 137]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|      PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   44|      0|      return Result::Error;    \
  |  |  |  |  |  |   45|      0|    }                          \
  |  |  |  |  |  |   46|    137|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (46:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2850|    137|  data_count_ = data_count;
 2851|    137|  return Result::Ok;
 2852|    137|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardImXadL_ZNS1_9read_end_EEEED2Ev:
   86|  3.04M|    ~ValueRestoreGuard() { this_->*member = previous_value_; }

_ZN4wabt15GetSectionOrderENS_13BinarySectionE:
   21|  4.76k|BinarySectionOrder GetSectionOrder(BinarySection sec) {
   22|  4.76k|  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: 4.76k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|      0|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   41|    327|  V(Type, type, 1)                     \
  |  |  ------------------
  |  |  |  |   26|    327|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    327|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 327, False: 4.43k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    327|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   42|    327|  V(Import, import, 2)                 \
  |  |  ------------------
  |  |  |  |   26|    327|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    327|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 327, False: 4.43k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    327|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   43|    878|  V(Function, function, 3)             \
  |  |  ------------------
  |  |  |  |   26|    878|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    878|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 878, False: 3.88k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    878|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   44|    878|  V(Table, table, 4)                   \
  |  |  ------------------
  |  |  |  |   26|    159|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    159|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 159, False: 4.60k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    159|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   45|    480|  V(Memory, memory, 5)                 \
  |  |  ------------------
  |  |  |  |   26|    480|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    480|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 480, False: 4.28k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    480|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   46|    480|  V(Tag, tag, 13)                      \
  |  |  ------------------
  |  |  |  |   26|     23|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|     23|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 23, False: 4.74k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|     23|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   47|    370|  V(Global, global, 6)                 \
  |  |  ------------------
  |  |  |  |   26|    370|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    370|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 370, False: 4.39k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    370|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   48|    370|  V(Export, export, 7)                 \
  |  |  ------------------
  |  |  |  |   26|    129|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    129|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 129, False: 4.63k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    129|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   49|    129|  V(Start, start, 8)                   \
  |  |  ------------------
  |  |  |  |   26|     49|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|     49|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 49, False: 4.71k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|     49|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|    687|  V(Elem, elem, 9)                     \
  |  |  ------------------
  |  |  |  |   26|    687|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    687|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 687, False: 4.07k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    687|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   51|    687|  V(DataCount, data_count, 12)         \
  |  |  ------------------
  |  |  |  |   26|    197|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    197|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 197, False: 4.56k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    197|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   52|    693|  V(Code, code, 10)                    \
  |  |  ------------------
  |  |  |  |   26|    693|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    693|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 693, False: 4.07k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    693|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   53|    693|  V(Data, data, 11)
  |  |  ------------------
  |  |  |  |   26|    445|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    445|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 445, False: 4.31k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    445|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   27|      0|#undef V
   28|      0|    default:
  ------------------
  |  Branch (28:5): [True: 0, False: 4.76k]
  ------------------
   29|      0|      WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
   30|  4.76k|  }
   31|  4.76k|}
_ZN4wabt14GetSectionNameENS_13BinarySectionE:
   33|    410|const char* GetSectionName(BinarySection sec) {
   34|    410|  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|      0|  V(Custom, custom, 0)                 \
  |  |  ------------------
  |  |  |  |   38|      0|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      0|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 0, False: 410]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      0|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   41|    115|  V(Type, type, 1)                     \
  |  |  ------------------
  |  |  |  |   38|    115|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|    115|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 115, False: 295]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|    115|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   42|    115|  V(Import, import, 2)                 \
  |  |  ------------------
  |  |  |  |   38|     92|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|     92|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 92, False: 318]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|     92|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   43|     92|  V(Function, function, 3)             \
  |  |  ------------------
  |  |  |  |   38|     23|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|     23|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 23, False: 387]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|     23|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   44|     53|  V(Table, table, 4)                   \
  |  |  ------------------
  |  |  |  |   38|     53|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|     53|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 53, False: 357]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|     53|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   45|     53|  V(Memory, memory, 5)                 \
  |  |  ------------------
  |  |  |  |   38|     11|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|     11|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 11, False: 399]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|     11|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   46|     11|  V(Tag, tag, 13)                      \
  |  |  ------------------
  |  |  |  |   38|      2|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      2|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 2, False: 408]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      2|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   47|     64|  V(Global, global, 6)                 \
  |  |  ------------------
  |  |  |  |   38|     64|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|     64|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 64, False: 346]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|     64|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   48|     64|  V(Export, export, 7)                 \
  |  |  ------------------
  |  |  |  |   38|      7|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      7|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 7, False: 403]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      7|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   49|      7|  V(Start, start, 8)                   \
  |  |  ------------------
  |  |  |  |   38|      5|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      5|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 5, False: 405]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      5|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|     13|  V(Elem, elem, 9)                     \
  |  |  ------------------
  |  |  |  |   38|     13|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|     13|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 13, False: 397]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|     13|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   51|     13|  V(DataCount, data_count, 12)         \
  |  |  ------------------
  |  |  |  |   38|      4|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      4|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 4, False: 406]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      4|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   52|      5|  V(Code, code, 10)                    \
  |  |  ------------------
  |  |  |  |   38|      5|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      5|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 5, False: 405]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      5|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   53|     16|  V(Data, data, 11)
  |  |  ------------------
  |  |  |  |   38|     16|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|     16|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 16, False: 394]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|     16|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   39|      0|#undef V
   40|      0|    default:
  ------------------
  |  Branch (40:5): [True: 0, False: 410]
  ------------------
   41|      0|      WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
   42|    410|  }
   43|    410|}

_ZNK4wabt11BindingHash9FindIndexERKNS_3VarE:
   35|   780k|Index BindingHash::FindIndex(const Var& var) const {
   36|   780k|  if (var.is_name()) {
  ------------------
  |  Branch (36:7): [True: 0, False: 780k]
  ------------------
   37|      0|    return FindIndex(var.name());
   38|      0|  }
   39|   780k|  return var.index();
   40|   780k|}

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

_ZNK4wabt10LocalTypes4sizeEv:
  193|  1.46k|Index LocalTypes::size() const {
  194|  1.46k|  return std::accumulate(
  195|  1.46k|      decls_.begin(), decls_.end(), 0,
  196|  1.46k|      [](Index sum, const Decl& decl) { return sum + decl.second; });
  197|  1.46k|}
_ZN4wabt6Module11GetFuncTypeERKNS_3VarE:
  317|   780k|FuncType* Module::GetFuncType(const Var& var) {
  318|   780k|  Index index = type_bindings.FindIndex(var);
  319|   780k|  if (index >= types.size()) {
  ------------------
  |  Branch (319:7): [True: 726k, False: 53.6k]
  ------------------
  320|   726k|    return nullptr;
  321|   726k|  }
  322|  53.6k|  return dyn_cast<FuncType>(types[index]);
  323|   780k|}
_ZN4wabt6Module11AppendFieldENSt3__110unique_ptrINS_22DataSegmentModuleFieldENS1_14default_deleteIS3_EEEE:
  344|  4.09k|void Module::AppendField(std::unique_ptr<DataSegmentModuleField> field) {
  345|  4.09k|  DataSegment& data_segment = field->data_segment;
  346|  4.09k|  if (!data_segment.name.empty()) {
  ------------------
  |  Branch (346:7): [True: 0, False: 4.09k]
  ------------------
  347|      0|    data_segment_bindings.emplace(data_segment.name,
  348|      0|                                  Binding(field->loc, data_segments.size()));
  349|      0|  }
  350|  4.09k|  data_segments.push_back(&data_segment);
  351|  4.09k|  fields.push_back(std::move(field));
  352|  4.09k|}
_ZN4wabt6Module11AppendFieldENSt3__110unique_ptrINS_22ElemSegmentModuleFieldENS1_14default_deleteIS3_EEEE:
  354|  6.22k|void Module::AppendField(std::unique_ptr<ElemSegmentModuleField> field) {
  355|  6.22k|  ElemSegment& elem_segment = field->elem_segment;
  356|  6.22k|  if (!elem_segment.name.empty()) {
  ------------------
  |  Branch (356:7): [True: 0, False: 6.22k]
  ------------------
  357|      0|    elem_segment_bindings.emplace(elem_segment.name,
  358|      0|                                  Binding(field->loc, elem_segments.size()));
  359|      0|  }
  360|  6.22k|  elem_segments.push_back(&elem_segment);
  361|  6.22k|  fields.push_back(std::move(field));
  362|  6.22k|}
_ZN4wabt6Module11AppendFieldENSt3__110unique_ptrINS_14TagModuleFieldENS1_14default_deleteIS3_EEEE:
  364|  3.57k|void Module::AppendField(std::unique_ptr<TagModuleField> field) {
  365|  3.57k|  Tag& tag = field->tag;
  366|  3.57k|  if (!tag.name.empty()) {
  ------------------
  |  Branch (366:7): [True: 0, False: 3.57k]
  ------------------
  367|      0|    tag_bindings.emplace(tag.name, Binding(field->loc, tags.size()));
  368|      0|  }
  369|  3.57k|  tags.push_back(&tag);
  370|  3.57k|  fields.push_back(std::move(field));
  371|  3.57k|}
_ZN4wabt6Module11AppendFieldENSt3__110unique_ptrINS_17ExportModuleFieldENS1_14default_deleteIS3_EEEE:
  373|  21.0k|void Module::AppendField(std::unique_ptr<ExportModuleField> field) {
  374|       |  // Exported names are allowed to be empty.
  375|  21.0k|  Export& export_ = field->export_;
  376|  21.0k|  export_bindings.emplace(export_.name, Binding(field->loc, exports.size()));
  377|  21.0k|  exports.push_back(&export_);
  378|  21.0k|  fields.push_back(std::move(field));
  379|  21.0k|}
_ZN4wabt6Module11AppendFieldENSt3__110unique_ptrINS_15FuncModuleFieldENS1_14default_deleteIS3_EEEE:
  381|  35.7k|void Module::AppendField(std::unique_ptr<FuncModuleField> field) {
  382|  35.7k|  Func& func = field->func;
  383|  35.7k|  if (!func.name.empty()) {
  ------------------
  |  Branch (383:7): [True: 0, False: 35.7k]
  ------------------
  384|      0|    func_bindings.emplace(func.name, Binding(field->loc, funcs.size()));
  385|      0|  }
  386|  35.7k|  funcs.push_back(&func);
  387|  35.7k|  fields.push_back(std::move(field));
  388|  35.7k|}
_ZN4wabt6Module11AppendFieldENSt3__110unique_ptrINS_15TypeModuleFieldENS1_14default_deleteIS3_EEEE:
  390|  1.11k|void Module::AppendField(std::unique_ptr<TypeModuleField> field) {
  391|  1.11k|  TypeEntry& type = *field->type;
  392|  1.11k|  if (!type.name.empty()) {
  ------------------
  |  Branch (392:7): [True: 0, False: 1.11k]
  ------------------
  393|      0|    type_bindings.emplace(type.name, Binding(field->loc, types.size()));
  394|      0|  }
  395|  1.11k|  types.push_back(&type);
  396|  1.11k|  fields.push_back(std::move(field));
  397|  1.11k|}
_ZN4wabt6Module11AppendFieldENSt3__110unique_ptrINS_17GlobalModuleFieldENS1_14default_deleteIS3_EEEE:
  399|  1.53k|void Module::AppendField(std::unique_ptr<GlobalModuleField> field) {
  400|  1.53k|  Global& global = field->global;
  401|  1.53k|  if (!global.name.empty()) {
  ------------------
  |  Branch (401:7): [True: 0, False: 1.53k]
  ------------------
  402|      0|    global_bindings.emplace(global.name, Binding(field->loc, globals.size()));
  403|      0|  }
  404|  1.53k|  globals.push_back(&global);
  405|  1.53k|  fields.push_back(std::move(field));
  406|  1.53k|}
_ZN4wabt6Module11AppendFieldENSt3__110unique_ptrINS_17ImportModuleFieldENS1_14default_deleteIS3_EEEE:
  408|  61.1k|void Module::AppendField(std::unique_ptr<ImportModuleField> field) {
  409|  61.1k|  Import* import = field->import.get();
  410|  61.1k|  const std::string* name = nullptr;
  411|  61.1k|  BindingHash* bindings = nullptr;
  412|  61.1k|  Index index = kInvalidIndex;
  413|       |
  414|  61.1k|  switch (import->kind()) {
  ------------------
  |  Branch (414:11): [True: 0, False: 61.1k]
  ------------------
  415|  58.8k|    case ExternalKind::Func: {
  ------------------
  |  Branch (415:5): [True: 58.8k, False: 2.32k]
  ------------------
  416|  58.8k|      Func& func = cast<FuncImport>(import)->func;
  417|  58.8k|      name = &func.name;
  418|  58.8k|      bindings = &func_bindings;
  419|  58.8k|      index = funcs.size();
  420|  58.8k|      funcs.push_back(&func);
  421|  58.8k|      ++num_func_imports;
  422|  58.8k|      break;
  423|      0|    }
  424|       |
  425|    597|    case ExternalKind::Table: {
  ------------------
  |  Branch (425:5): [True: 597, False: 60.5k]
  ------------------
  426|    597|      Table& table = cast<TableImport>(import)->table;
  427|    597|      name = &table.name;
  428|    597|      bindings = &table_bindings;
  429|    597|      index = tables.size();
  430|    597|      tables.push_back(&table);
  431|    597|      ++num_table_imports;
  432|    597|      break;
  433|      0|    }
  434|       |
  435|    712|    case ExternalKind::Memory: {
  ------------------
  |  Branch (435:5): [True: 712, False: 60.4k]
  ------------------
  436|    712|      Memory& memory = cast<MemoryImport>(import)->memory;
  437|    712|      name = &memory.name;
  438|    712|      bindings = &memory_bindings;
  439|    712|      index = memories.size();
  440|    712|      memories.push_back(&memory);
  441|    712|      ++num_memory_imports;
  442|    712|      break;
  443|      0|    }
  444|       |
  445|    688|    case ExternalKind::Global: {
  ------------------
  |  Branch (445:5): [True: 688, False: 60.4k]
  ------------------
  446|    688|      Global& global = cast<GlobalImport>(import)->global;
  447|    688|      name = &global.name;
  448|    688|      bindings = &global_bindings;
  449|    688|      index = globals.size();
  450|    688|      globals.push_back(&global);
  451|    688|      ++num_global_imports;
  452|    688|      break;
  453|      0|    }
  454|       |
  455|    326|    case ExternalKind::Tag: {
  ------------------
  |  Branch (455:5): [True: 326, False: 60.8k]
  ------------------
  456|    326|      Tag& tag = cast<TagImport>(import)->tag;
  457|    326|      name = &tag.name;
  458|    326|      bindings = &tag_bindings;
  459|    326|      index = tags.size();
  460|    326|      tags.push_back(&tag);
  461|    326|      ++num_tag_imports;
  462|    326|      break;
  463|      0|    }
  464|  61.1k|  }
  465|       |
  466|  61.1k|  assert(name && bindings && index != kInvalidIndex);
  467|  61.1k|  if (!name->empty()) {
  ------------------
  |  Branch (467:7): [True: 0, False: 61.1k]
  ------------------
  468|      0|    bindings->emplace(*name, Binding(field->loc, index));
  469|      0|  }
  470|  61.1k|  imports.push_back(import);
  471|  61.1k|  fields.push_back(std::move(field));
  472|  61.1k|}
_ZN4wabt6Module11AppendFieldENSt3__110unique_ptrINS_17MemoryModuleFieldENS1_14default_deleteIS3_EEEE:
  474|  2.83k|void Module::AppendField(std::unique_ptr<MemoryModuleField> field) {
  475|  2.83k|  Memory& memory = field->memory;
  476|  2.83k|  if (!memory.name.empty()) {
  ------------------
  |  Branch (476:7): [True: 0, False: 2.83k]
  ------------------
  477|      0|    memory_bindings.emplace(memory.name, Binding(field->loc, memories.size()));
  478|      0|  }
  479|  2.83k|  memories.push_back(&memory);
  480|  2.83k|  fields.push_back(std::move(field));
  481|  2.83k|}
_ZN4wabt6Module11AppendFieldENSt3__110unique_ptrINS_16StartModuleFieldENS1_14default_deleteIS3_EEEE:
  483|     43|void Module::AppendField(std::unique_ptr<StartModuleField> field) {
  484|     43|  starts.push_back(&field->start);
  485|     43|  fields.push_back(std::move(field));
  486|     43|}
_ZN4wabt6Module11AppendFieldENSt3__110unique_ptrINS_16TableModuleFieldENS1_14default_deleteIS3_EEEE:
  488|    225|void Module::AppendField(std::unique_ptr<TableModuleField> field) {
  489|    225|  Table& table = field->table;
  490|    225|  if (!table.name.empty()) {
  ------------------
  |  Branch (490:7): [True: 0, False: 225]
  ------------------
  491|      0|    table_bindings.emplace(table.name, Binding(field->loc, tables.size()));
  492|      0|  }
  493|    225|  tables.push_back(&table);
  494|    225|  fields.push_back(std::move(field));
  495|    225|}
_ZN4wabt3VarC2Ev:
  589|  2.12M|Var::Var() : Var(kInvalidIndex, Location()) {}
_ZN4wabt3VarC2EjRKNS_8LocationE:
  592|  3.45M|    : loc(loc), type_(VarType::Index), index_(index) {}
_ZN4wabt3VarC2EOS0_:
  597|   188k|Var::Var(Var&& rhs) : Var() {
  598|   188k|  *this = std::move(rhs);
  599|   188k|}
_ZN4wabt3VarC2ERKS0_:
  601|   435k|Var::Var(const Var& rhs) : Var() {
  602|   435k|  *this = rhs;
  603|   435k|}
_ZN4wabt3VaraSEOS0_:
  605|   463k|Var& Var::operator=(Var&& rhs) {
  606|   463k|  loc = rhs.loc;
  607|   463k|  if (rhs.is_index()) {
  ------------------
  |  Branch (607:7): [True: 463k, False: 0]
  ------------------
  608|   463k|    set_index(rhs.index_);
  609|   463k|  } else {
  610|      0|    set_name(rhs.name_);
  611|      0|  }
  612|   463k|  return *this;
  613|   463k|}
_ZN4wabt3VaraSERKS0_:
  615|  1.21M|Var& Var::operator=(const Var& rhs) {
  616|  1.21M|  loc = rhs.loc;
  617|  1.21M|  if (rhs.is_index()) {
  ------------------
  |  Branch (617:7): [True: 1.21M, False: 0]
  ------------------
  618|  1.21M|    set_index(rhs.index_);
  619|  1.21M|  } else {
  620|      0|    set_name(rhs.name_);
  621|      0|  }
  622|  1.21M|  return *this;
  623|  1.21M|}
_ZN4wabt3VarD2Ev:
  625|  3.45M|Var::~Var() {
  626|  3.45M|  Destroy();
  627|  3.45M|}
_ZN4wabt3Var9set_indexEj:
  629|  1.67M|void Var::set_index(Index index) {
  630|  1.67M|  Destroy();
  631|  1.67M|  type_ = VarType::Index;
  632|  1.67M|  index_ = index;
  633|  1.67M|}
_ZN4wabt3Var7DestroyEv:
  645|  5.12M|void Var::Destroy() {
  646|  5.12M|  if (is_name()) {
  ------------------
  |  Branch (646:7): [True: 0, False: 5.12M]
  ------------------
  647|      0|    Destruct(name_);
  648|      0|  }
  649|  5.12M|}
ir.cc:_ZZNK4wabt10LocalTypes4sizeEvENK3$_0clEjRKNSt3__14pairINS_4TypeEjEE:
  196|  28.4k|      [](Index sum, const Decl& decl) { return sum + decl.second; });

_ZN4wabt17WriteU32Leb128RawEPhS0_j:
   86|    331|Offset WriteU32Leb128Raw(uint8_t* dest, uint8_t* dest_end, uint32_t value) {
   87|    331|  uint8_t data[MAX_U32_LEB128_BYTES];
   88|    331|  Offset length = 0;
   89|    331|  LEB128_LOOP_UNTIL(value == 0);
  ------------------
  |  |   38|    564|  do {                              \
  |  |   39|    564|    uint8_t byte = value & 0x7f;    \
  |  |   40|    564|    value >>= 7;                    \
  |  |   41|    564|    if (end_cond) {                 \
  |  |  ------------------
  |  |  |  Branch (41:9): [True: 331, False: 233]
  |  |  ------------------
  |  |   42|    331|      data[length++] = byte;        \
  |  |   43|    331|      break;                        \
  |  |   44|    331|    } else {                        \
  |  |   45|    233|      data[length++] = byte | 0x80; \
  |  |   46|    233|    }                               \
  |  |   47|    564|  } while (1)
  |  |  ------------------
  |  |  |  Branch (47:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
   90|    331|  if (static_cast<Offset>(dest_end - dest) < length) {
  ------------------
  |  Branch (90:7): [True: 0, False: 331]
  ------------------
   91|      0|    return 0;
   92|      0|  }
   93|    331|  memcpy(dest, data, length);
   94|    331|  return length;
   95|    331|}
_ZN4wabt13ReadU32Leb128EPKhS1_Pj:
  184|  9.48M|                     uint32_t* out_value) {
  185|  9.48M|  if (p < end && (p[0] & 0x80) == 0) {
  ------------------
  |  Branch (185:7): [True: 7.33M, False: 2.14M]
  |  Branch (185:18): [True: 6.96M, False: 370k]
  ------------------
  186|  6.96M|    *out_value = LEB128_1(uint32_t);
  ------------------
  |  |  166|  6.96M|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  ------------------
  |  |  |  |  164|  6.96M|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  ------------------
  187|  6.96M|    return 1;
  188|  6.96M|  } else if (p + 1 < end && (p[1] & 0x80) == 0) {
  ------------------
  |  Branch (188:14): [True: 368k, False: 2.15M]
  |  Branch (188:29): [True: 337k, False: 31.6k]
  ------------------
  189|   337k|    *out_value = LEB128_2(uint32_t);
  ------------------
  |  |  167|   337k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  164|   337k|#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|   337k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|   337k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  190|   337k|    return 2;
  191|  2.18M|  } else if (p + 2 < end && (p[2] & 0x80) == 0) {
  ------------------
  |  Branch (191:14): [True: 31.5k, False: 2.15M]
  |  Branch (191:29): [True: 23.3k, False: 8.13k]
  ------------------
  192|  23.3k|    *out_value = LEB128_3(uint32_t);
  ------------------
  |  |  168|  23.3k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  164|  23.3k|#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.3k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  23.3k|#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.3k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  23.3k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  193|  23.3k|    return 3;
  194|  2.15M|  } else if (p + 3 < end && (p[3] & 0x80) == 0) {
  ------------------
  |  Branch (194:14): [True: 8.05k, False: 2.15M]
  |  Branch (194:29): [True: 3.21k, False: 4.84k]
  ------------------
  195|  3.21k|    *out_value = LEB128_4(uint32_t);
  ------------------
  |  |  169|  3.21k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  164|  3.21k|#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|  3.21k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  3.21k|#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.21k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  3.21k|#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.21k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  3.21k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  196|  3.21k|    return 4;
  197|  2.15M|  } else if (p + 4 < end && (p[4] & 0x80) == 0) {
  ------------------
  |  Branch (197:14): [True: 4.71k, False: 2.15M]
  |  Branch (197:29): [True: 2.97k, False: 1.74k]
  ------------------
  198|       |    // The top bits set represent values > 32 bits.
  199|  2.97k|    if (p[4] & 0xf0) {
  ------------------
  |  Branch (199:9): [True: 644, False: 2.33k]
  ------------------
  200|    644|      return 0;
  201|    644|    }
  202|  2.33k|    *out_value = LEB128_5(uint32_t);
  ------------------
  |  |  170|  2.33k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  164|  2.33k|#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.33k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  2.33k|#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.33k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  2.33k|#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.33k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  2.33k|#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.33k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  2.33k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  203|  2.33k|    return 5;
  204|  2.15M|  } else {
  205|       |    // past the end.
  206|  2.15M|    *out_value = 0;
  207|  2.15M|    return 0;
  208|  2.15M|  }
  209|  9.48M|}
_ZN4wabt13ReadU64Leb128EPKhS1_Pm:
  213|   143k|                     uint64_t* out_value) {
  214|   143k|  if (p < end && (p[0] & 0x80) == 0) {
  ------------------
  |  Branch (214:7): [True: 143k, False: 107]
  |  Branch (214:18): [True: 110k, False: 32.6k]
  ------------------
  215|   110k|    *out_value = LEB128_1(uint64_t);
  ------------------
  |  |  166|   110k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  ------------------
  |  |  |  |  164|   110k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  ------------------
  216|   110k|    return 1;
  217|   110k|  } else if (p + 1 < end && (p[1] & 0x80) == 0) {
  ------------------
  |  Branch (217:14): [True: 32.6k, False: 130]
  |  Branch (217:29): [True: 17.9k, False: 14.6k]
  ------------------
  218|  17.9k|    *out_value = LEB128_2(uint64_t);
  ------------------
  |  |  167|  17.9k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  164|  17.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|  17.9k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  17.9k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  219|  17.9k|    return 2;
  220|  17.9k|  } else if (p + 2 < end && (p[2] & 0x80) == 0) {
  ------------------
  |  Branch (220:14): [True: 14.6k, False: 142]
  |  Branch (220:29): [True: 7.70k, False: 6.97k]
  ------------------
  221|  7.70k|    *out_value = LEB128_3(uint64_t);
  ------------------
  |  |  168|  7.70k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  164|  7.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|  7.70k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  7.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|  7.70k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  7.70k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  222|  7.70k|    return 3;
  223|  7.70k|  } else if (p + 3 < end && (p[3] & 0x80) == 0) {
  ------------------
  |  Branch (223:14): [True: 6.96k, False: 147]
  |  Branch (223:29): [True: 2.37k, False: 4.59k]
  ------------------
  224|  2.37k|    *out_value = LEB128_4(uint64_t);
  ------------------
  |  |  169|  2.37k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  164|  2.37k|#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.37k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  2.37k|#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.37k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  2.37k|#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.37k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  2.37k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  225|  2.37k|    return 4;
  226|  4.74k|  } else if (p + 4 < end && (p[4] & 0x80) == 0) {
  ------------------
  |  Branch (226:14): [True: 4.59k, False: 152]
  |  Branch (226:29): [True: 1.39k, False: 3.19k]
  ------------------
  227|  1.39k|    *out_value = LEB128_5(uint64_t);
  ------------------
  |  |  170|  1.39k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  164|  1.39k|#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.39k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.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|  1.39k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.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|  1.39k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  1.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|  1.39k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.39k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  228|  1.39k|    return 5;
  229|  3.34k|  } else if (p + 5 < end && (p[5] & 0x80) == 0) {
  ------------------
  |  Branch (229:14): [True: 3.18k, False: 158]
  |  Branch (229:29): [True: 1.53k, False: 1.65k]
  ------------------
  230|  1.53k|    *out_value = LEB128_6(uint64_t);
  ------------------
  |  |  171|  1.53k|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  ------------------
  |  |  |  |  164|  1.53k|#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.53k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.53k|#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.53k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.53k|#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.53k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  1.53k|#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.53k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.53k|#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.53k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.53k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  231|  1.53k|    return 6;
  232|  1.81k|  } else if (p + 6 < end && (p[6] & 0x80) == 0) {
  ------------------
  |  Branch (232:14): [True: 1.64k, False: 164]
  |  Branch (232:29): [True: 397, False: 1.25k]
  ------------------
  233|    397|    *out_value = LEB128_7(uint64_t);
  ------------------
  |  |  172|    397|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  ------------------
  |  |  |  |  164|    397|#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|    397|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    397|#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|    397|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    397|#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|    397|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    397|#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|    397|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    397|#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|    397|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    397|#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|    397|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    397|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  234|    397|    return 7;
  235|  1.41k|  } else if (p + 7 < end && (p[7] & 0x80) == 0) {
  ------------------
  |  Branch (235:14): [True: 1.24k, False: 168]
  |  Branch (235:29): [True: 361, False: 885]
  ------------------
  236|    361|    *out_value = LEB128_8(uint64_t);
  ------------------
  |  |  173|    361|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  ------------------
  |  |  |  |  164|    361|#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|    361|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    361|#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|    361|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    361|#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|    361|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    361|#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|    361|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    361|#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|    361|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    361|#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|    361|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    361|#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|    361|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    361|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  237|    361|    return 8;
  238|  1.05k|  } else if (p + 8 < end && (p[8] & 0x80) == 0) {
  ------------------
  |  Branch (238:14): [True: 885, False: 168]
  |  Branch (238:29): [True: 527, False: 358]
  ------------------
  239|    527|    *out_value = LEB128_9(uint64_t);
  ------------------
  |  |  174|    527|#define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  ------------------
  |  |  |  |  164|    527|#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|    527|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    527|#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|    527|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    527|#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|    527|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    527|#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|    527|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    527|#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|    527|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    527|#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|    527|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    527|#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|    527|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    527|#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|    527|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    527|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  240|    527|    return 9;
  241|    527|  } else if (p + 9 < end && (p[9] & 0x80) == 0) {
  ------------------
  |  Branch (241:14): [True: 355, False: 171]
  |  Branch (241:29): [True: 341, False: 14]
  ------------------
  242|       |    // The top bits set represent values > 64 bits.
  243|    341|    if (p[9] & 0xfe) {
  ------------------
  |  Branch (243:9): [True: 10, False: 331]
  ------------------
  244|     10|      return 0;
  245|     10|    }
  246|    331|    *out_value = LEB128_10(uint64_t);
  ------------------
  |  |  175|    331|#define LEB128_10(type) (BYTE_AT(type, 9, 63) | LEB128_9(type))
  |  |  ------------------
  |  |  |  |  164|    331|#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|    331|#define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    331|#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|    331|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    331|#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|    331|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    331|#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|    331|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    331|#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|    331|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    331|#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|    331|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    331|#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|    331|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    331|#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|    331|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    331|#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|    331|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    331|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  247|    331|    return 10;
  248|    341|  } else {
  249|       |    // past the end.
  250|    185|    *out_value = 0;
  251|    185|    return 0;
  252|    185|  }
  253|   143k|}
_ZN4wabt13ReadS32Leb128EPKhS1_Pj:
  257|   734k|                     uint32_t* out_value) {
  258|   734k|  if (p < end && (p[0] & 0x80) == 0) {
  ------------------
  |  Branch (258:7): [True: 733k, False: 607]
  |  Branch (258:18): [True: 713k, False: 19.7k]
  ------------------
  259|   713k|    uint32_t result = LEB128_1(uint32_t);
  ------------------
  |  |  166|   713k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  ------------------
  |  |  |  |  164|   713k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  ------------------
  260|   713k|    *out_value = SIGN_EXTEND(int32_t, result, 6);
  ------------------
  |  |  179|   713k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|   713k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|   713k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|   713k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  261|   713k|    return 1;
  262|   713k|  } else if (p + 1 < end && (p[1] & 0x80) == 0) {
  ------------------
  |  Branch (262:14): [True: 19.7k, False: 651]
  |  Branch (262:29): [True: 12.1k, False: 7.56k]
  ------------------
  263|  12.1k|    uint32_t result = LEB128_2(uint32_t);
  ------------------
  |  |  167|  12.1k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  164|  12.1k|#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|  12.1k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  12.1k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  264|  12.1k|    *out_value = SIGN_EXTEND(int32_t, result, 13);
  ------------------
  |  |  179|  12.1k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  12.1k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  12.1k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  12.1k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  265|  12.1k|    return 2;
  266|  12.1k|  } else if (p + 2 < end && (p[2] & 0x80) == 0) {
  ------------------
  |  Branch (266:14): [True: 7.55k, False: 666]
  |  Branch (266:29): [True: 3.84k, False: 3.71k]
  ------------------
  267|  3.84k|    uint32_t result = LEB128_3(uint32_t);
  ------------------
  |  |  168|  3.84k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  164|  3.84k|#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.84k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  3.84k|#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.84k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  3.84k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  268|  3.84k|    *out_value = SIGN_EXTEND(int32_t, result, 20);
  ------------------
  |  |  179|  3.84k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  3.84k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  3.84k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  3.84k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  269|  3.84k|    return 3;
  270|  4.37k|  } else if (p + 3 < end && (p[3] & 0x80) == 0) {
  ------------------
  |  Branch (270:14): [True: 3.70k, False: 677]
  |  Branch (270:29): [True: 1.43k, False: 2.26k]
  ------------------
  271|  1.43k|    uint32_t result = LEB128_4(uint32_t);
  ------------------
  |  |  169|  1.43k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  164|  1.43k|#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.43k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.43k|#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.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))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  272|  1.43k|    *out_value = SIGN_EXTEND(int32_t, result, 27);
  ------------------
  |  |  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))
  |  |  ------------------
  ------------------
  273|  1.43k|    return 4;
  274|  2.94k|  } else if (p + 4 < end && (p[4] & 0x80) == 0) {
  ------------------
  |  Branch (274:14): [True: 2.25k, False: 685]
  |  Branch (274:29): [True: 2.02k, False: 229]
  ------------------
  275|       |    // The top bits should be a sign-extension of the sign bit.
  276|  2.02k|    bool sign_bit_set = (p[4] & 0x8);
  277|  2.02k|    int top_bits = p[4] & 0xf0;
  278|  2.02k|    if ((sign_bit_set && top_bits != 0x70) ||
  ------------------
  |  Branch (278:10): [True: 758, False: 1.27k]
  |  Branch (278:26): [True: 41, False: 717]
  ------------------
  279|  2.02k|        (!sign_bit_set && top_bits != 0)) {
  ------------------
  |  Branch (279:10): [True: 1.27k, False: 717]
  |  Branch (279:27): [True: 88, False: 1.18k]
  ------------------
  280|    129|      return 0;
  281|    129|    }
  282|  1.90k|    uint32_t result = LEB128_5(uint32_t);
  ------------------
  |  |  170|  1.90k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  164|  1.90k|#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.90k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.90k|#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.90k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.90k|#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.90k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  1.90k|#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.90k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.90k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  283|  1.90k|    *out_value = result;
  284|  1.90k|    return 5;
  285|  2.02k|  } else {
  286|       |    // Past the end.
  287|    914|    return 0;
  288|    914|  }
  289|   734k|}
_ZN4wabt13ReadS64Leb128EPKhS1_Pm:
  293|  14.5k|                     uint64_t* out_value) {
  294|  14.5k|  if (p < end && (p[0] & 0x80) == 0) {
  ------------------
  |  Branch (294:7): [True: 14.5k, False: 11]
  |  Branch (294:18): [True: 6.01k, False: 8.53k]
  ------------------
  295|  6.01k|    uint64_t result = LEB128_1(uint64_t);
  ------------------
  |  |  166|  6.01k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  ------------------
  |  |  |  |  164|  6.01k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  ------------------
  296|  6.01k|    *out_value = SIGN_EXTEND(int64_t, result, 6);
  ------------------
  |  |  179|  6.01k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  6.01k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  6.01k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  6.01k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  297|  6.01k|    return 1;
  298|  8.54k|  } else if (p + 1 < end && (p[1] & 0x80) == 0) {
  ------------------
  |  Branch (298:14): [True: 8.52k, False: 19]
  |  Branch (298:29): [True: 1.65k, False: 6.86k]
  ------------------
  299|  1.65k|    uint64_t result = LEB128_2(uint64_t);
  ------------------
  |  |  167|  1.65k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  164|  1.65k|#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.65k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.65k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  300|  1.65k|    *out_value = SIGN_EXTEND(int64_t, result, 13);
  ------------------
  |  |  179|  1.65k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  1.65k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  1.65k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  1.65k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  301|  1.65k|    return 2;
  302|  6.88k|  } else if (p + 2 < end && (p[2] & 0x80) == 0) {
  ------------------
  |  Branch (302:14): [True: 6.86k, False: 25]
  |  Branch (302:29): [True: 1.17k, False: 5.69k]
  ------------------
  303|  1.17k|    uint64_t result = LEB128_3(uint64_t);
  ------------------
  |  |  168|  1.17k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  164|  1.17k|#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.17k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.17k|#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.17k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.17k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  304|  1.17k|    *out_value = SIGN_EXTEND(int64_t, result, 20);
  ------------------
  |  |  179|  1.17k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  1.17k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  1.17k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  1.17k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  305|  1.17k|    return 3;
  306|  5.71k|  } else if (p + 3 < end && (p[3] & 0x80) == 0) {
  ------------------
  |  Branch (306:14): [True: 5.68k, False: 32]
  |  Branch (306:29): [True: 981, False: 4.70k]
  ------------------
  307|    981|    uint64_t result = LEB128_4(uint64_t);
  ------------------
  |  |  169|    981|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  164|    981|#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|    981|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    981|#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|    981|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    981|#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|    981|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    981|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  308|    981|    *out_value = SIGN_EXTEND(int64_t, result, 27);
  ------------------
  |  |  179|    981|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|    981|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|    981|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|    981|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  309|    981|    return 4;
  310|  4.73k|  } else if (p + 4 < end && (p[4] & 0x80) == 0) {
  ------------------
  |  Branch (310:14): [True: 4.69k, False: 40]
  |  Branch (310:29): [True: 941, False: 3.75k]
  ------------------
  311|    941|    uint64_t result = LEB128_5(uint64_t);
  ------------------
  |  |  170|    941|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  164|    941|#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|    941|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    941|#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|    941|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    941|#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|    941|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    941|#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|    941|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    941|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  312|    941|    *out_value = SIGN_EXTEND(int64_t, result, 34);
  ------------------
  |  |  179|    941|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|    941|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|    941|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|    941|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  313|    941|    return 5;
  314|  3.79k|  } else if (p + 5 < end && (p[5] & 0x80) == 0) {
  ------------------
  |  Branch (314:14): [True: 3.75k, False: 42]
  |  Branch (314:29): [True: 920, False: 2.83k]
  ------------------
  315|    920|    uint64_t result = LEB128_6(uint64_t);
  ------------------
  |  |  171|    920|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  ------------------
  |  |  |  |  164|    920|#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|    920|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    920|#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|    920|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    920|#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|    920|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    920|#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|    920|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    920|#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|    920|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    920|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  316|    920|    *out_value = SIGN_EXTEND(int64_t, result, 41);
  ------------------
  |  |  179|    920|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|    920|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|    920|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|    920|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  317|    920|    return 6;
  318|  2.87k|  } else if (p + 6 < end && (p[6] & 0x80) == 0) {
  ------------------
  |  Branch (318:14): [True: 2.82k, False: 47]
  |  Branch (318:29): [True: 1.11k, False: 1.71k]
  ------------------
  319|  1.11k|    uint64_t result = LEB128_7(uint64_t);
  ------------------
  |  |  172|  1.11k|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  ------------------
  |  |  |  |  164|  1.11k|#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.11k|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.11k|#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.11k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.11k|#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.11k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  1.11k|#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.11k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.11k|#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.11k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.11k|#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.11k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.11k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  320|  1.11k|    *out_value = SIGN_EXTEND(int64_t, result, 48);
  ------------------
  |  |  179|  1.11k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  1.11k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  1.11k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  1.11k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  321|  1.11k|    return 7;
  322|  1.76k|  } else if (p + 7 < end && (p[7] & 0x80) == 0) {
  ------------------
  |  Branch (322:14): [True: 1.71k, False: 49]
  |  Branch (322:29): [True: 560, False: 1.15k]
  ------------------
  323|    560|    uint64_t result = LEB128_8(uint64_t);
  ------------------
  |  |  173|    560|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  ------------------
  |  |  |  |  164|    560|#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|    560|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    560|#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|    560|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    560|#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|    560|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    560|#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|    560|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    560|#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|    560|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    560|#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|    560|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    560|#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|    560|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    560|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  324|    560|    *out_value = SIGN_EXTEND(int64_t, result, 55);
  ------------------
  |  |  179|    560|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|    560|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|    560|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|    560|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  325|    560|    return 8;
  326|  1.20k|  } else if (p + 8 < end && (p[8] & 0x80) == 0) {
  ------------------
  |  Branch (326:14): [True: 1.15k, False: 49]
  |  Branch (326:29): [True: 519, False: 632]
  ------------------
  327|    519|    uint64_t result = LEB128_9(uint64_t);
  ------------------
  |  |  174|    519|#define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  ------------------
  |  |  |  |  164|    519|#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|    519|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    519|#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|    519|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    519|#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|    519|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    519|#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|    519|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    519|#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|    519|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    519|#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|    519|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    519|#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|    519|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    519|#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|    519|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    519|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  328|    519|    *out_value = SIGN_EXTEND(int64_t, result, 62);
  ------------------
  |  |  179|    519|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|    519|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|    519|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|    519|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  329|    519|    return 9;
  330|    681|  } else if (p + 9 < end && (p[9] & 0x80) == 0) {
  ------------------
  |  Branch (330:14): [True: 627, False: 54]
  |  Branch (330:29): [True: 611, False: 16]
  ------------------
  331|       |    // The top bits should be a sign-extension of the sign bit.
  332|    611|    bool sign_bit_set = (p[9] & 0x1);
  333|    611|    int top_bits = p[9] & 0xfe;
  334|    611|    if ((sign_bit_set && top_bits != 0x7e) ||
  ------------------
  |  Branch (334:10): [True: 315, False: 296]
  |  Branch (334:26): [True: 8, False: 307]
  ------------------
  335|    611|        (!sign_bit_set && top_bits != 0)) {
  ------------------
  |  Branch (335:10): [True: 296, False: 307]
  |  Branch (335:27): [True: 7, False: 289]
  ------------------
  336|     15|      return 0;
  337|     15|    }
  338|    596|    uint64_t result = LEB128_10(uint64_t);
  ------------------
  |  |  175|    596|#define LEB128_10(type) (BYTE_AT(type, 9, 63) | LEB128_9(type))
  |  |  ------------------
  |  |  |  |  164|    596|#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|    596|#define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    596|#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|    596|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    596|#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|    596|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    596|#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|    596|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|    596|#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|    596|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    596|#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|    596|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    596|#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|    596|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    596|#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|    596|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    596|#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|    596|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|    596|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  339|    596|    *out_value = result;
  340|    596|    return 10;
  341|    611|  } else {
  342|       |    // Past the end.
  343|     70|    return 0;
  344|     70|  }
  345|  14.5k|}

_ZNK4wabt6Opcode7GetInfoEv:
   41|  5.38M|Opcode::Info Opcode::GetInfo() const {
   42|  5.38M|  if (enum_ < Invalid) {
  ------------------
  |  Branch (42:7): [True: 5.38M, False: 4.32k]
  ------------------
   43|  5.38M|    return infos_[enum_];
   44|  5.38M|  }
   45|       |
   46|  4.32k|  Info invalid_info = infos_[Opcode::Invalid];
   47|  4.32k|  DecodeInvalidOpcode(enum_, &invalid_info.prefix, &invalid_info.code);
   48|  4.32k|  invalid_info.prefix_code = PrefixCode(invalid_info.prefix, invalid_info.code);
   49|  4.32k|  return invalid_info;
   50|  5.38M|}
_ZNK4wabt6Opcode9IsEnabledERKNS_8FeaturesE:
   64|  2.68M|bool Opcode::IsEnabled(const Features& features) const {
   65|  2.68M|  switch (enum_) {
   66|   428k|    case Opcode::Try:
  ------------------
  |  Branch (66:5): [True: 428k, False: 2.25M]
  ------------------
   67|   432k|    case Opcode::Catch:
  ------------------
  |  Branch (67:5): [True: 4.61k, False: 2.68M]
  ------------------
   68|   433k|    case Opcode::Delegate:
  ------------------
  |  Branch (68:5): [True: 1.25k, False: 2.68M]
  ------------------
   69|   442k|    case Opcode::Throw:
  ------------------
  |  Branch (69:5): [True: 8.92k, False: 2.67M]
  ------------------
   70|   458k|    case Opcode::Rethrow:
  ------------------
  |  Branch (70:5): [True: 15.2k, False: 2.67M]
  ------------------
   71|   458k|      return features.exceptions_enabled();
   72|       |
   73|  2.70k|    case Opcode::ReturnCallIndirect:
  ------------------
  |  Branch (73:5): [True: 2.70k, False: 2.68M]
  ------------------
   74|  5.10k|    case Opcode::ReturnCall:
  ------------------
  |  Branch (74:5): [True: 2.40k, False: 2.68M]
  ------------------
   75|  5.10k|      return features.tail_call_enabled();
   76|       |
   77|  2.42k|    case Opcode::I32TruncSatF32S:
  ------------------
  |  Branch (77:5): [True: 2.42k, False: 2.68M]
  ------------------
   78|  3.78k|    case Opcode::I32TruncSatF32U:
  ------------------
  |  Branch (78:5): [True: 1.35k, False: 2.68M]
  ------------------
   79|  3.93k|    case Opcode::I32TruncSatF64S:
  ------------------
  |  Branch (79:5): [True: 158, False: 2.68M]
  ------------------
   80|  4.61k|    case Opcode::I32TruncSatF64U:
  ------------------
  |  Branch (80:5): [True: 675, False: 2.68M]
  ------------------
   81|  5.86k|    case Opcode::I64TruncSatF32S:
  ------------------
  |  Branch (81:5): [True: 1.25k, False: 2.68M]
  ------------------
   82|  6.42k|    case Opcode::I64TruncSatF32U:
  ------------------
  |  Branch (82:5): [True: 556, False: 2.68M]
  ------------------
   83|  7.09k|    case Opcode::I64TruncSatF64S:
  ------------------
  |  Branch (83:5): [True: 668, False: 2.68M]
  ------------------
   84|  8.41k|    case Opcode::I64TruncSatF64U:
  ------------------
  |  Branch (84:5): [True: 1.32k, False: 2.68M]
  ------------------
   85|  8.41k|      return features.sat_float_to_int_enabled();
   86|       |
   87|  5.17k|    case Opcode::I32Extend8S:
  ------------------
  |  Branch (87:5): [True: 5.17k, False: 2.68M]
  ------------------
   88|  9.70k|    case Opcode::I32Extend16S:
  ------------------
  |  Branch (88:5): [True: 4.52k, False: 2.68M]
  ------------------
   89|  11.8k|    case Opcode::I64Extend8S:
  ------------------
  |  Branch (89:5): [True: 2.10k, False: 2.68M]
  ------------------
   90|  15.2k|    case Opcode::I64Extend16S:
  ------------------
  |  Branch (90:5): [True: 3.39k, False: 2.68M]
  ------------------
   91|  17.1k|    case Opcode::I64Extend32S:
  ------------------
  |  Branch (91:5): [True: 1.91k, False: 2.68M]
  ------------------
   92|  17.1k|      return features.sign_extension_enabled();
   93|       |
   94|  4.89k|    case Opcode::MemoryAtomicNotify:
  ------------------
  |  Branch (94:5): [True: 4.89k, False: 2.68M]
  ------------------
   95|  8.03k|    case Opcode::MemoryAtomicWait32:
  ------------------
  |  Branch (95:5): [True: 3.14k, False: 2.68M]
  ------------------
   96|  9.84k|    case Opcode::MemoryAtomicWait64:
  ------------------
  |  Branch (96:5): [True: 1.80k, False: 2.68M]
  ------------------
   97|  10.3k|    case Opcode::AtomicFence:
  ------------------
  |  Branch (97:5): [True: 468, False: 2.68M]
  ------------------
   98|  11.2k|    case Opcode::I32AtomicLoad:
  ------------------
  |  Branch (98:5): [True: 907, False: 2.68M]
  ------------------
   99|  11.6k|    case Opcode::I64AtomicLoad:
  ------------------
  |  Branch (99:5): [True: 476, False: 2.68M]
  ------------------
  100|  12.5k|    case Opcode::I32AtomicLoad8U:
  ------------------
  |  Branch (100:5): [True: 845, False: 2.68M]
  ------------------
  101|  13.0k|    case Opcode::I32AtomicLoad16U:
  ------------------
  |  Branch (101:5): [True: 542, False: 2.68M]
  ------------------
  102|  15.3k|    case Opcode::I64AtomicLoad8U:
  ------------------
  |  Branch (102:5): [True: 2.29k, False: 2.68M]
  ------------------
  103|  16.0k|    case Opcode::I64AtomicLoad16U:
  ------------------
  |  Branch (103:5): [True: 703, False: 2.68M]
  ------------------
  104|  16.5k|    case Opcode::I64AtomicLoad32U:
  ------------------
  |  Branch (104:5): [True: 430, False: 2.68M]
  ------------------
  105|  17.2k|    case Opcode::I32AtomicStore:
  ------------------
  |  Branch (105:5): [True: 696, False: 2.68M]
  ------------------
  106|  17.4k|    case Opcode::I64AtomicStore:
  ------------------
  |  Branch (106:5): [True: 264, False: 2.68M]
  ------------------
  107|  17.7k|    case Opcode::I32AtomicStore8:
  ------------------
  |  Branch (107:5): [True: 325, False: 2.68M]
  ------------------
  108|  18.2k|    case Opcode::I32AtomicStore16:
  ------------------
  |  Branch (108:5): [True: 490, False: 2.68M]
  ------------------
  109|  18.6k|    case Opcode::I64AtomicStore8:
  ------------------
  |  Branch (109:5): [True: 417, False: 2.68M]
  ------------------
  110|  19.5k|    case Opcode::I64AtomicStore16:
  ------------------
  |  Branch (110:5): [True: 856, False: 2.68M]
  ------------------
  111|  20.5k|    case Opcode::I64AtomicStore32:
  ------------------
  |  Branch (111:5): [True: 948, False: 2.68M]
  ------------------
  112|  20.6k|    case Opcode::I32AtomicRmwAdd:
  ------------------
  |  Branch (112:5): [True: 100, False: 2.68M]
  ------------------
  113|  20.7k|    case Opcode::I64AtomicRmwAdd:
  ------------------
  |  Branch (113:5): [True: 171, False: 2.68M]
  ------------------
  114|  21.1k|    case Opcode::I32AtomicRmw8AddU:
  ------------------
  |  Branch (114:5): [True: 346, False: 2.68M]
  ------------------
  115|  22.5k|    case Opcode::I32AtomicRmw16AddU:
  ------------------
  |  Branch (115:5): [True: 1.47k, False: 2.68M]
  ------------------
  116|  23.0k|    case Opcode::I64AtomicRmw8AddU:
  ------------------
  |  Branch (116:5): [True: 486, False: 2.68M]
  ------------------
  117|  23.9k|    case Opcode::I64AtomicRmw16AddU:
  ------------------
  |  Branch (117:5): [True: 824, False: 2.68M]
  ------------------
  118|  24.3k|    case Opcode::I64AtomicRmw32AddU:
  ------------------
  |  Branch (118:5): [True: 441, False: 2.68M]
  ------------------
  119|  24.6k|    case Opcode::I32AtomicRmwSub:
  ------------------
  |  Branch (119:5): [True: 273, False: 2.68M]
  ------------------
  120|  25.2k|    case Opcode::I64AtomicRmwSub:
  ------------------
  |  Branch (120:5): [True: 662, False: 2.68M]
  ------------------
  121|  25.6k|    case Opcode::I32AtomicRmw8SubU:
  ------------------
  |  Branch (121:5): [True: 421, False: 2.68M]
  ------------------
  122|  26.9k|    case Opcode::I32AtomicRmw16SubU:
  ------------------
  |  Branch (122:5): [True: 1.25k, False: 2.68M]
  ------------------
  123|  27.5k|    case Opcode::I64AtomicRmw8SubU:
  ------------------
  |  Branch (123:5): [True: 620, False: 2.68M]
  ------------------
  124|  27.9k|    case Opcode::I64AtomicRmw16SubU:
  ------------------
  |  Branch (124:5): [True: 403, False: 2.68M]
  ------------------
  125|  31.1k|    case Opcode::I64AtomicRmw32SubU:
  ------------------
  |  Branch (125:5): [True: 3.13k, False: 2.68M]
  ------------------
  126|  32.5k|    case Opcode::I32AtomicRmwAnd:
  ------------------
  |  Branch (126:5): [True: 1.42k, False: 2.68M]
  ------------------
  127|  32.8k|    case Opcode::I64AtomicRmwAnd:
  ------------------
  |  Branch (127:5): [True: 329, False: 2.68M]
  ------------------
  128|  33.2k|    case Opcode::I32AtomicRmw8AndU:
  ------------------
  |  Branch (128:5): [True: 340, False: 2.68M]
  ------------------
  129|  33.9k|    case Opcode::I32AtomicRmw16AndU:
  ------------------
  |  Branch (129:5): [True: 795, False: 2.68M]
  ------------------
  130|  34.4k|    case Opcode::I64AtomicRmw8AndU:
  ------------------
  |  Branch (130:5): [True: 405, False: 2.68M]
  ------------------
  131|  35.5k|    case Opcode::I64AtomicRmw16AndU:
  ------------------
  |  Branch (131:5): [True: 1.14k, False: 2.68M]
  ------------------
  132|  36.3k|    case Opcode::I64AtomicRmw32AndU:
  ------------------
  |  Branch (132:5): [True: 845, False: 2.68M]
  ------------------
  133|  37.1k|    case Opcode::I32AtomicRmwOr:
  ------------------
  |  Branch (133:5): [True: 766, False: 2.68M]
  ------------------
  134|  38.0k|    case Opcode::I64AtomicRmwOr:
  ------------------
  |  Branch (134:5): [True: 931, False: 2.68M]
  ------------------
  135|  39.4k|    case Opcode::I32AtomicRmw8OrU:
  ------------------
  |  Branch (135:5): [True: 1.37k, False: 2.68M]
  ------------------
  136|  40.2k|    case Opcode::I32AtomicRmw16OrU:
  ------------------
  |  Branch (136:5): [True: 785, False: 2.68M]
  ------------------
  137|  40.7k|    case Opcode::I64AtomicRmw8OrU:
  ------------------
  |  Branch (137:5): [True: 537, False: 2.68M]
  ------------------
  138|  41.3k|    case Opcode::I64AtomicRmw16OrU:
  ------------------
  |  Branch (138:5): [True: 541, False: 2.68M]
  ------------------
  139|  41.7k|    case Opcode::I64AtomicRmw32OrU:
  ------------------
  |  Branch (139:5): [True: 399, False: 2.68M]
  ------------------
  140|  42.2k|    case Opcode::I32AtomicRmwXor:
  ------------------
  |  Branch (140:5): [True: 488, False: 2.68M]
  ------------------
  141|  43.1k|    case Opcode::I64AtomicRmwXor:
  ------------------
  |  Branch (141:5): [True: 920, False: 2.68M]
  ------------------
  142|  45.0k|    case Opcode::I32AtomicRmw8XorU:
  ------------------
  |  Branch (142:5): [True: 1.91k, False: 2.68M]
  ------------------
  143|  45.9k|    case Opcode::I32AtomicRmw16XorU:
  ------------------
  |  Branch (143:5): [True: 870, False: 2.68M]
  ------------------
  144|  46.2k|    case Opcode::I64AtomicRmw8XorU:
  ------------------
  |  Branch (144:5): [True: 357, False: 2.68M]
  ------------------
  145|  47.8k|    case Opcode::I64AtomicRmw16XorU:
  ------------------
  |  Branch (145:5): [True: 1.61k, False: 2.68M]
  ------------------
  146|  48.3k|    case Opcode::I64AtomicRmw32XorU:
  ------------------
  |  Branch (146:5): [True: 442, False: 2.68M]
  ------------------
  147|  48.8k|    case Opcode::I32AtomicRmwXchg:
  ------------------
  |  Branch (147:5): [True: 497, False: 2.68M]
  ------------------
  148|  49.7k|    case Opcode::I64AtomicRmwXchg:
  ------------------
  |  Branch (148:5): [True: 925, False: 2.68M]
  ------------------
  149|  50.4k|    case Opcode::I32AtomicRmw8XchgU:
  ------------------
  |  Branch (149:5): [True: 748, False: 2.68M]
  ------------------
  150|  50.6k|    case Opcode::I32AtomicRmw16XchgU:
  ------------------
  |  Branch (150:5): [True: 209, False: 2.68M]
  ------------------
  151|  51.0k|    case Opcode::I64AtomicRmw8XchgU:
  ------------------
  |  Branch (151:5): [True: 374, False: 2.68M]
  ------------------
  152|  52.0k|    case Opcode::I64AtomicRmw16XchgU:
  ------------------
  |  Branch (152:5): [True: 968, False: 2.68M]
  ------------------
  153|  52.4k|    case Opcode::I64AtomicRmw32XchgU:
  ------------------
  |  Branch (153:5): [True: 433, False: 2.68M]
  ------------------
  154|  53.2k|    case Opcode::I32AtomicRmwCmpxchg:
  ------------------
  |  Branch (154:5): [True: 794, False: 2.68M]
  ------------------
  155|  53.6k|    case Opcode::I64AtomicRmwCmpxchg:
  ------------------
  |  Branch (155:5): [True: 387, False: 2.68M]
  ------------------
  156|  55.9k|    case Opcode::I32AtomicRmw8CmpxchgU:
  ------------------
  |  Branch (156:5): [True: 2.27k, False: 2.68M]
  ------------------
  157|  56.3k|    case Opcode::I32AtomicRmw16CmpxchgU:
  ------------------
  |  Branch (157:5): [True: 441, False: 2.68M]
  ------------------
  158|  57.1k|    case Opcode::I64AtomicRmw8CmpxchgU:
  ------------------
  |  Branch (158:5): [True: 736, False: 2.68M]
  ------------------
  159|  58.3k|    case Opcode::I64AtomicRmw16CmpxchgU:
  ------------------
  |  Branch (159:5): [True: 1.23k, False: 2.68M]
  ------------------
  160|  59.0k|    case Opcode::I64AtomicRmw32CmpxchgU:
  ------------------
  |  Branch (160:5): [True: 746, False: 2.68M]
  ------------------
  161|  59.0k|      return features.threads_enabled();
  162|       |
  163|    703|    case Opcode::V128Const:
  ------------------
  |  Branch (163:5): [True: 703, False: 2.68M]
  ------------------
  164|  7.77k|    case Opcode::V128Load:
  ------------------
  |  Branch (164:5): [True: 7.07k, False: 2.68M]
  ------------------
  165|  8.56k|    case Opcode::V128Store:
  ------------------
  |  Branch (165:5): [True: 787, False: 2.68M]
  ------------------
  166|  10.5k|    case Opcode::I8X16Splat:
  ------------------
  |  Branch (166:5): [True: 1.93k, False: 2.68M]
  ------------------
  167|  11.8k|    case Opcode::I16X8Splat:
  ------------------
  |  Branch (167:5): [True: 1.29k, False: 2.68M]
  ------------------
  168|  12.9k|    case Opcode::I32X4Splat:
  ------------------
  |  Branch (168:5): [True: 1.15k, False: 2.68M]
  ------------------
  169|  13.7k|    case Opcode::I64X2Splat:
  ------------------
  |  Branch (169:5): [True: 764, False: 2.68M]
  ------------------
  170|  14.5k|    case Opcode::F32X4Splat:
  ------------------
  |  Branch (170:5): [True: 776, False: 2.68M]
  ------------------
  171|  15.6k|    case Opcode::F64X2Splat:
  ------------------
  |  Branch (171:5): [True: 1.19k, False: 2.68M]
  ------------------
  172|  16.0k|    case Opcode::I8X16ExtractLaneS:
  ------------------
  |  Branch (172:5): [True: 395, False: 2.68M]
  ------------------
  173|  16.7k|    case Opcode::I8X16ExtractLaneU:
  ------------------
  |  Branch (173:5): [True: 616, False: 2.68M]
  ------------------
  174|  17.0k|    case Opcode::I16X8ExtractLaneS:
  ------------------
  |  Branch (174:5): [True: 317, False: 2.68M]
  ------------------
  175|  17.8k|    case Opcode::I16X8ExtractLaneU:
  ------------------
  |  Branch (175:5): [True: 818, False: 2.68M]
  ------------------
  176|  18.3k|    case Opcode::I32X4ExtractLane:
  ------------------
  |  Branch (176:5): [True: 517, False: 2.68M]
  ------------------
  177|  19.4k|    case Opcode::I64X2ExtractLane:
  ------------------
  |  Branch (177:5): [True: 1.05k, False: 2.68M]
  ------------------
  178|  20.0k|    case Opcode::F32X4ExtractLane:
  ------------------
  |  Branch (178:5): [True: 598, False: 2.68M]
  ------------------
  179|  21.6k|    case Opcode::F64X2ExtractLane:
  ------------------
  |  Branch (179:5): [True: 1.60k, False: 2.68M]
  ------------------
  180|  21.9k|    case Opcode::I8X16ReplaceLane:
  ------------------
  |  Branch (180:5): [True: 364, False: 2.68M]
  ------------------
  181|  23.1k|    case Opcode::I16X8ReplaceLane:
  ------------------
  |  Branch (181:5): [True: 1.15k, False: 2.68M]
  ------------------
  182|  24.0k|    case Opcode::I32X4ReplaceLane:
  ------------------
  |  Branch (182:5): [True: 909, False: 2.68M]
  ------------------
  183|  24.6k|    case Opcode::I64X2ReplaceLane:
  ------------------
  |  Branch (183:5): [True: 624, False: 2.68M]
  ------------------
  184|  25.3k|    case Opcode::F32X4ReplaceLane:
  ------------------
  |  Branch (184:5): [True: 680, False: 2.68M]
  ------------------
  185|  26.3k|    case Opcode::F64X2ReplaceLane:
  ------------------
  |  Branch (185:5): [True: 1.01k, False: 2.68M]
  ------------------
  186|  27.4k|    case Opcode::I8X16Add:
  ------------------
  |  Branch (186:5): [True: 1.10k, False: 2.68M]
  ------------------
  187|  28.1k|    case Opcode::I16X8Add:
  ------------------
  |  Branch (187:5): [True: 637, False: 2.68M]
  ------------------
  188|  28.5k|    case Opcode::I32X4Add:
  ------------------
  |  Branch (188:5): [True: 466, False: 2.68M]
  ------------------
  189|  29.5k|    case Opcode::I64X2Add:
  ------------------
  |  Branch (189:5): [True: 963, False: 2.68M]
  ------------------
  190|  30.3k|    case Opcode::I8X16Sub:
  ------------------
  |  Branch (190:5): [True: 823, False: 2.68M]
  ------------------
  191|  30.8k|    case Opcode::I16X8Sub:
  ------------------
  |  Branch (191:5): [True: 487, False: 2.68M]
  ------------------
  192|  31.3k|    case Opcode::I32X4Sub:
  ------------------
  |  Branch (192:5): [True: 487, False: 2.68M]
  ------------------
  193|  32.0k|    case Opcode::I64X2Sub:
  ------------------
  |  Branch (193:5): [True: 741, False: 2.68M]
  ------------------
  194|  32.6k|    case Opcode::I16X8Mul:
  ------------------
  |  Branch (194:5): [True: 554, False: 2.68M]
  ------------------
  195|  33.4k|    case Opcode::I32X4Mul:
  ------------------
  |  Branch (195:5): [True: 839, False: 2.68M]
  ------------------
  196|  34.4k|    case Opcode::I8X16Neg:
  ------------------
  |  Branch (196:5): [True: 1.02k, False: 2.68M]
  ------------------
  197|  34.7k|    case Opcode::I16X8Neg:
  ------------------
  |  Branch (197:5): [True: 261, False: 2.68M]
  ------------------
  198|  35.2k|    case Opcode::I32X4Neg:
  ------------------
  |  Branch (198:5): [True: 466, False: 2.68M]
  ------------------
  199|  36.4k|    case Opcode::I64X2Neg:
  ------------------
  |  Branch (199:5): [True: 1.26k, False: 2.68M]
  ------------------
  200|  37.1k|    case Opcode::I8X16AddSatS:
  ------------------
  |  Branch (200:5): [True: 622, False: 2.68M]
  ------------------
  201|  38.2k|    case Opcode::I8X16AddSatU:
  ------------------
  |  Branch (201:5): [True: 1.12k, False: 2.68M]
  ------------------
  202|  38.6k|    case Opcode::I16X8AddSatS:
  ------------------
  |  Branch (202:5): [True: 400, False: 2.68M]
  ------------------
  203|  38.8k|    case Opcode::I16X8AddSatU:
  ------------------
  |  Branch (203:5): [True: 176, False: 2.68M]
  ------------------
  204|  42.4k|    case Opcode::I8X16SubSatS:
  ------------------
  |  Branch (204:5): [True: 3.60k, False: 2.68M]
  ------------------
  205|  43.2k|    case Opcode::I8X16SubSatU:
  ------------------
  |  Branch (205:5): [True: 869, False: 2.68M]
  ------------------
  206|  44.1k|    case Opcode::I16X8SubSatS:
  ------------------
  |  Branch (206:5): [True: 894, False: 2.68M]
  ------------------
  207|  47.3k|    case Opcode::I16X8SubSatU:
  ------------------
  |  Branch (207:5): [True: 3.16k, False: 2.68M]
  ------------------
  208|  50.4k|    case Opcode::I8X16Shl:
  ------------------
  |  Branch (208:5): [True: 3.15k, False: 2.68M]
  ------------------
  209|  51.2k|    case Opcode::I16X8Shl:
  ------------------
  |  Branch (209:5): [True: 716, False: 2.68M]
  ------------------
  210|  52.0k|    case Opcode::I32X4Shl:
  ------------------
  |  Branch (210:5): [True: 817, False: 2.68M]
  ------------------
  211|  52.3k|    case Opcode::I64X2Shl:
  ------------------
  |  Branch (211:5): [True: 331, False: 2.68M]
  ------------------
  212|  53.3k|    case Opcode::I8X16ShrS:
  ------------------
  |  Branch (212:5): [True: 972, False: 2.68M]
  ------------------
  213|  55.6k|    case Opcode::I8X16ShrU:
  ------------------
  |  Branch (213:5): [True: 2.28k, False: 2.68M]
  ------------------
  214|  56.6k|    case Opcode::I16X8ShrS:
  ------------------
  |  Branch (214:5): [True: 1.04k, False: 2.68M]
  ------------------
  215|  57.2k|    case Opcode::I16X8ShrU:
  ------------------
  |  Branch (215:5): [True: 621, False: 2.68M]
  ------------------
  216|  57.4k|    case Opcode::I32X4ShrS:
  ------------------
  |  Branch (216:5): [True: 139, False: 2.68M]
  ------------------
  217|  58.2k|    case Opcode::I32X4ShrU:
  ------------------
  |  Branch (217:5): [True: 781, False: 2.68M]
  ------------------
  218|  59.3k|    case Opcode::I64X2ShrS:
  ------------------
  |  Branch (218:5): [True: 1.17k, False: 2.68M]
  ------------------
  219|  61.1k|    case Opcode::I64X2ShrU:
  ------------------
  |  Branch (219:5): [True: 1.79k, False: 2.68M]
  ------------------
  220|  62.3k|    case Opcode::V128And:
  ------------------
  |  Branch (220:5): [True: 1.16k, False: 2.68M]
  ------------------
  221|  63.1k|    case Opcode::V128Or:
  ------------------
  |  Branch (221:5): [True: 825, False: 2.68M]
  ------------------
  222|  63.8k|    case Opcode::V128Xor:
  ------------------
  |  Branch (222:5): [True: 697, False: 2.68M]
  ------------------
  223|  65.4k|    case Opcode::V128Not:
  ------------------
  |  Branch (223:5): [True: 1.61k, False: 2.68M]
  ------------------
  224|  66.6k|    case Opcode::V128BitSelect:
  ------------------
  |  Branch (224:5): [True: 1.13k, False: 2.68M]
  ------------------
  225|  67.2k|    case Opcode::V128AnyTrue:
  ------------------
  |  Branch (225:5): [True: 630, False: 2.68M]
  ------------------
  226|  68.4k|    case Opcode::I8X16Bitmask:
  ------------------
  |  Branch (226:5): [True: 1.17k, False: 2.68M]
  ------------------
  227|  68.9k|    case Opcode::I16X8Bitmask:
  ------------------
  |  Branch (227:5): [True: 515, False: 2.68M]
  ------------------
  228|  69.4k|    case Opcode::I32X4Bitmask:
  ------------------
  |  Branch (228:5): [True: 573, False: 2.68M]
  ------------------
  229|  70.5k|    case Opcode::I64X2Bitmask:
  ------------------
  |  Branch (229:5): [True: 1.02k, False: 2.68M]
  ------------------
  230|  71.1k|    case Opcode::I8X16AllTrue:
  ------------------
  |  Branch (230:5): [True: 578, False: 2.68M]
  ------------------
  231|  71.6k|    case Opcode::I16X8AllTrue:
  ------------------
  |  Branch (231:5): [True: 592, False: 2.68M]
  ------------------
  232|  72.0k|    case Opcode::I32X4AllTrue:
  ------------------
  |  Branch (232:5): [True: 350, False: 2.68M]
  ------------------
  233|  72.5k|    case Opcode::I64X2AllTrue:
  ------------------
  |  Branch (233:5): [True: 461, False: 2.68M]
  ------------------
  234|  74.0k|    case Opcode::I8X16Eq:
  ------------------
  |  Branch (234:5): [True: 1.59k, False: 2.68M]
  ------------------
  235|  75.6k|    case Opcode::I16X8Eq:
  ------------------
  |  Branch (235:5): [True: 1.59k, False: 2.68M]
  ------------------
  236|  76.6k|    case Opcode::I32X4Eq:
  ------------------
  |  Branch (236:5): [True: 957, False: 2.68M]
  ------------------
  237|  77.5k|    case Opcode::F32X4Eq:
  ------------------
  |  Branch (237:5): [True: 869, False: 2.68M]
  ------------------
  238|  78.2k|    case Opcode::F64X2Eq:
  ------------------
  |  Branch (238:5): [True: 766, False: 2.68M]
  ------------------
  239|  81.8k|    case Opcode::I8X16Ne:
  ------------------
  |  Branch (239:5): [True: 3.56k, False: 2.68M]
  ------------------
  240|  83.1k|    case Opcode::I16X8Ne:
  ------------------
  |  Branch (240:5): [True: 1.29k, False: 2.68M]
  ------------------
  241|  84.5k|    case Opcode::I32X4Ne:
  ------------------
  |  Branch (241:5): [True: 1.38k, False: 2.68M]
  ------------------
  242|  84.7k|    case Opcode::F32X4Ne:
  ------------------
  |  Branch (242:5): [True: 220, False: 2.68M]
  ------------------
  243|  87.0k|    case Opcode::F64X2Ne:
  ------------------
  |  Branch (243:5): [True: 2.30k, False: 2.68M]
  ------------------
  244|  90.6k|    case Opcode::I8X16LtS:
  ------------------
  |  Branch (244:5): [True: 3.59k, False: 2.68M]
  ------------------
  245|  91.8k|    case Opcode::I8X16LtU:
  ------------------
  |  Branch (245:5): [True: 1.19k, False: 2.68M]
  ------------------
  246|  92.5k|    case Opcode::I16X8LtS:
  ------------------
  |  Branch (246:5): [True: 675, False: 2.68M]
  ------------------
  247|  93.7k|    case Opcode::I16X8LtU:
  ------------------
  |  Branch (247:5): [True: 1.27k, False: 2.68M]
  ------------------
  248|  95.5k|    case Opcode::I32X4LtS:
  ------------------
  |  Branch (248:5): [True: 1.78k, False: 2.68M]
  ------------------
  249|  97.4k|    case Opcode::I32X4LtU:
  ------------------
  |  Branch (249:5): [True: 1.86k, False: 2.68M]
  ------------------
  250|  98.5k|    case Opcode::F32X4Lt:
  ------------------
  |  Branch (250:5): [True: 1.06k, False: 2.68M]
  ------------------
  251|  99.2k|    case Opcode::F64X2Lt:
  ------------------
  |  Branch (251:5): [True: 780, False: 2.68M]
  ------------------
  252|   100k|    case Opcode::I8X16LeS:
  ------------------
  |  Branch (252:5): [True: 1.09k, False: 2.68M]
  ------------------
  253|   101k|    case Opcode::I8X16LeU:
  ------------------
  |  Branch (253:5): [True: 1.00k, False: 2.68M]
  ------------------
  254|   102k|    case Opcode::I16X8LeS:
  ------------------
  |  Branch (254:5): [True: 857, False: 2.68M]
  ------------------
  255|   103k|    case Opcode::I16X8LeU:
  ------------------
  |  Branch (255:5): [True: 1.66k, False: 2.68M]
  ------------------
  256|   105k|    case Opcode::I32X4LeS:
  ------------------
  |  Branch (256:5): [True: 1.14k, False: 2.68M]
  ------------------
  257|   106k|    case Opcode::I32X4LeU:
  ------------------
  |  Branch (257:5): [True: 1.82k, False: 2.68M]
  ------------------
  258|   108k|    case Opcode::F32X4Le:
  ------------------
  |  Branch (258:5): [True: 1.75k, False: 2.68M]
  ------------------
  259|   109k|    case Opcode::F64X2Le:
  ------------------
  |  Branch (259:5): [True: 892, False: 2.68M]
  ------------------
  260|   110k|    case Opcode::I8X16GtS:
  ------------------
  |  Branch (260:5): [True: 1.00k, False: 2.68M]
  ------------------
  261|   111k|    case Opcode::I8X16GtU:
  ------------------
  |  Branch (261:5): [True: 1.32k, False: 2.68M]
  ------------------
  262|   112k|    case Opcode::I16X8GtS:
  ------------------
  |  Branch (262:5): [True: 1.05k, False: 2.68M]
  ------------------
  263|   114k|    case Opcode::I16X8GtU:
  ------------------
  |  Branch (263:5): [True: 1.69k, False: 2.68M]
  ------------------
  264|   115k|    case Opcode::I32X4GtS:
  ------------------
  |  Branch (264:5): [True: 1.32k, False: 2.68M]
  ------------------
  265|   118k|    case Opcode::I32X4GtU:
  ------------------
  |  Branch (265:5): [True: 2.49k, False: 2.68M]
  ------------------
  266|   120k|    case Opcode::F32X4Gt:
  ------------------
  |  Branch (266:5): [True: 1.66k, False: 2.68M]
  ------------------
  267|   120k|    case Opcode::F64X2Gt:
  ------------------
  |  Branch (267:5): [True: 843, False: 2.68M]
  ------------------
  268|   121k|    case Opcode::I8X16GeS:
  ------------------
  |  Branch (268:5): [True: 605, False: 2.68M]
  ------------------
  269|   123k|    case Opcode::I8X16GeU:
  ------------------
  |  Branch (269:5): [True: 2.18k, False: 2.68M]
  ------------------
  270|   124k|    case Opcode::I16X8GeS:
  ------------------
  |  Branch (270:5): [True: 841, False: 2.68M]
  ------------------
  271|   125k|    case Opcode::I16X8GeU:
  ------------------
  |  Branch (271:5): [True: 994, False: 2.68M]
  ------------------
  272|   126k|    case Opcode::I32X4GeS:
  ------------------
  |  Branch (272:5): [True: 1.41k, False: 2.68M]
  ------------------
  273|   127k|    case Opcode::I32X4GeU:
  ------------------
  |  Branch (273:5): [True: 739, False: 2.68M]
  ------------------
  274|   128k|    case Opcode::F32X4Ge:
  ------------------
  |  Branch (274:5): [True: 470, False: 2.68M]
  ------------------
  275|   129k|    case Opcode::F64X2Ge:
  ------------------
  |  Branch (275:5): [True: 941, False: 2.68M]
  ------------------
  276|   129k|    case Opcode::F32X4Neg:
  ------------------
  |  Branch (276:5): [True: 295, False: 2.68M]
  ------------------
  277|   129k|    case Opcode::F64X2Neg:
  ------------------
  |  Branch (277:5): [True: 587, False: 2.68M]
  ------------------
  278|   130k|    case Opcode::F32X4Abs:
  ------------------
  |  Branch (278:5): [True: 269, False: 2.68M]
  ------------------
  279|   132k|    case Opcode::F64X2Abs:
  ------------------
  |  Branch (279:5): [True: 2.46k, False: 2.68M]
  ------------------
  280|   134k|    case Opcode::F32X4Min:
  ------------------
  |  Branch (280:5): [True: 1.34k, False: 2.68M]
  ------------------
  281|   135k|    case Opcode::F32X4PMin:
  ------------------
  |  Branch (281:5): [True: 1.00k, False: 2.68M]
  ------------------
  282|   136k|    case Opcode::F64X2Min:
  ------------------
  |  Branch (282:5): [True: 1.15k, False: 2.68M]
  ------------------
  283|   137k|    case Opcode::F64X2PMin:
  ------------------
  |  Branch (283:5): [True: 790, False: 2.68M]
  ------------------
  284|   138k|    case Opcode::F32X4Max:
  ------------------
  |  Branch (284:5): [True: 1.83k, False: 2.68M]
  ------------------
  285|   139k|    case Opcode::F32X4PMax:
  ------------------
  |  Branch (285:5): [True: 426, False: 2.68M]
  ------------------
  286|   139k|    case Opcode::F64X2Max:
  ------------------
  |  Branch (286:5): [True: 492, False: 2.68M]
  ------------------
  287|   140k|    case Opcode::F64X2PMax:
  ------------------
  |  Branch (287:5): [True: 442, False: 2.68M]
  ------------------
  288|   140k|    case Opcode::F32X4Add:
  ------------------
  |  Branch (288:5): [True: 256, False: 2.68M]
  ------------------
  289|   141k|    case Opcode::F64X2Add:
  ------------------
  |  Branch (289:5): [True: 688, False: 2.68M]
  ------------------
  290|   141k|    case Opcode::F32X4Sub:
  ------------------
  |  Branch (290:5): [True: 680, False: 2.68M]
  ------------------
  291|   142k|    case Opcode::F64X2Sub:
  ------------------
  |  Branch (291:5): [True: 473, False: 2.68M]
  ------------------
  292|   142k|    case Opcode::F32X4Div:
  ------------------
  |  Branch (292:5): [True: 421, False: 2.68M]
  ------------------
  293|   143k|    case Opcode::F64X2Div:
  ------------------
  |  Branch (293:5): [True: 775, False: 2.68M]
  ------------------
  294|   144k|    case Opcode::F32X4Mul:
  ------------------
  |  Branch (294:5): [True: 1.47k, False: 2.68M]
  ------------------
  295|   146k|    case Opcode::F64X2Mul:
  ------------------
  |  Branch (295:5): [True: 1.19k, False: 2.68M]
  ------------------
  296|   147k|    case Opcode::F32X4Sqrt:
  ------------------
  |  Branch (296:5): [True: 909, False: 2.68M]
  ------------------
  297|   148k|    case Opcode::F64X2Sqrt:
  ------------------
  |  Branch (297:5): [True: 1.50k, False: 2.68M]
  ------------------
  298|   149k|    case Opcode::F32X4ConvertI32X4S:
  ------------------
  |  Branch (298:5): [True: 552, False: 2.68M]
  ------------------
  299|   150k|    case Opcode::F32X4ConvertI32X4U:
  ------------------
  |  Branch (299:5): [True: 1.63k, False: 2.68M]
  ------------------
  300|   151k|    case Opcode::I32X4TruncSatF32X4S:
  ------------------
  |  Branch (300:5): [True: 248, False: 2.68M]
  ------------------
  301|   151k|    case Opcode::I32X4TruncSatF32X4U:
  ------------------
  |  Branch (301:5): [True: 648, False: 2.68M]
  ------------------
  302|   154k|    case Opcode::I8X16Swizzle:
  ------------------
  |  Branch (302:5): [True: 2.82k, False: 2.68M]
  ------------------
  303|   155k|    case Opcode::I8X16Shuffle:
  ------------------
  |  Branch (303:5): [True: 733, False: 2.68M]
  ------------------
  304|   156k|    case Opcode::V128Load8Splat:
  ------------------
  |  Branch (304:5): [True: 1.01k, False: 2.68M]
  ------------------
  305|   157k|    case Opcode::V128Load16Splat:
  ------------------
  |  Branch (305:5): [True: 1.46k, False: 2.68M]
  ------------------
  306|   158k|    case Opcode::V128Load32Splat:
  ------------------
  |  Branch (306:5): [True: 1.04k, False: 2.68M]
  ------------------
  307|   159k|    case Opcode::V128Load64Splat:
  ------------------
  |  Branch (307:5): [True: 728, False: 2.68M]
  ------------------
  308|   160k|    case Opcode::V128Load8Lane:
  ------------------
  |  Branch (308:5): [True: 700, False: 2.68M]
  ------------------
  309|   160k|    case Opcode::V128Load16Lane:
  ------------------
  |  Branch (309:5): [True: 685, False: 2.68M]
  ------------------
  310|   161k|    case Opcode::V128Load32Lane:
  ------------------
  |  Branch (310:5): [True: 535, False: 2.68M]
  ------------------
  311|   161k|    case Opcode::V128Load64Lane:
  ------------------
  |  Branch (311:5): [True: 559, False: 2.68M]
  ------------------
  312|   162k|    case Opcode::V128Store8Lane:
  ------------------
  |  Branch (312:5): [True: 642, False: 2.68M]
  ------------------
  313|   163k|    case Opcode::V128Store16Lane:
  ------------------
  |  Branch (313:5): [True: 440, False: 2.68M]
  ------------------
  314|   163k|    case Opcode::V128Store32Lane:
  ------------------
  |  Branch (314:5): [True: 470, False: 2.68M]
  ------------------
  315|   164k|    case Opcode::V128Store64Lane:
  ------------------
  |  Branch (315:5): [True: 645, False: 2.68M]
  ------------------
  316|   166k|    case Opcode::I8X16Abs:
  ------------------
  |  Branch (316:5): [True: 2.23k, False: 2.68M]
  ------------------
  317|   166k|    case Opcode::I16X8Abs:
  ------------------
  |  Branch (317:5): [True: 482, False: 2.68M]
  ------------------
  318|   167k|    case Opcode::I32X4Abs:
  ------------------
  |  Branch (318:5): [True: 989, False: 2.68M]
  ------------------
  319|   167k|      return features.simd_enabled();
  320|       |
  321|    326|    case Opcode::I8X16RelaxedSwizzle:
  ------------------
  |  Branch (321:5): [True: 326, False: 2.68M]
  ------------------
  322|    766|    case Opcode::I32X4RelaxedTruncF32X4S:
  ------------------
  |  Branch (322:5): [True: 440, False: 2.68M]
  ------------------
  323|  1.25k|    case Opcode::I32X4RelaxedTruncF32X4U:
  ------------------
  |  Branch (323:5): [True: 486, False: 2.68M]
  ------------------
  324|  2.24k|    case Opcode::I32X4RelaxedTruncF64X2SZero:
  ------------------
  |  Branch (324:5): [True: 995, False: 2.68M]
  ------------------
  325|  2.66k|    case Opcode::I32X4RelaxedTruncF64X2UZero:
  ------------------
  |  Branch (325:5): [True: 420, False: 2.68M]
  ------------------
  326|  3.26k|    case Opcode::F32X4RelaxedMadd:
  ------------------
  |  Branch (326:5): [True: 596, False: 2.68M]
  ------------------
  327|  4.31k|    case Opcode::F32X4RelaxedNmadd:
  ------------------
  |  Branch (327:5): [True: 1.04k, False: 2.68M]
  ------------------
  328|  4.84k|    case Opcode::F64X2RelaxedMadd:
  ------------------
  |  Branch (328:5): [True: 538, False: 2.68M]
  ------------------
  329|  5.65k|    case Opcode::F64X2RelaxedNmadd:
  ------------------
  |  Branch (329:5): [True: 805, False: 2.68M]
  ------------------
  330|  6.54k|    case Opcode::I8X16RelaxedLaneSelect:
  ------------------
  |  Branch (330:5): [True: 893, False: 2.68M]
  ------------------
  331|  6.68k|    case Opcode::I16X8RelaxedLaneSelect:
  ------------------
  |  Branch (331:5): [True: 142, False: 2.68M]
  ------------------
  332|  7.00k|    case Opcode::I32X4RelaxedLaneSelect:
  ------------------
  |  Branch (332:5): [True: 319, False: 2.68M]
  ------------------
  333|  7.99k|    case Opcode::I64X2RelaxedLaneSelect:
  ------------------
  |  Branch (333:5): [True: 985, False: 2.68M]
  ------------------
  334|  8.16k|    case Opcode::F32X4RelaxedMin:
  ------------------
  |  Branch (334:5): [True: 176, False: 2.68M]
  ------------------
  335|  8.34k|    case Opcode::F32X4RelaxedMax:
  ------------------
  |  Branch (335:5): [True: 180, False: 2.68M]
  ------------------
  336|  8.85k|    case Opcode::F64X2RelaxedMin:
  ------------------
  |  Branch (336:5): [True: 511, False: 2.68M]
  ------------------
  337|  9.42k|    case Opcode::F64X2RelaxedMax:
  ------------------
  |  Branch (337:5): [True: 566, False: 2.68M]
  ------------------
  338|  10.0k|    case Opcode::I16X8RelaxedQ15mulrS:
  ------------------
  |  Branch (338:5): [True: 646, False: 2.68M]
  ------------------
  339|  12.4k|    case Opcode::I16X8DotI8X16I7X16S:
  ------------------
  |  Branch (339:5): [True: 2.39k, False: 2.68M]
  ------------------
  340|  13.7k|    case Opcode::I32X4DotI8X16I7X16AddS:
  ------------------
  |  Branch (340:5): [True: 1.25k, False: 2.68M]
  ------------------
  341|  13.7k|      return features.relaxed_simd_enabled();
  342|       |
  343|     82|    case Opcode::MemoryInit:
  ------------------
  |  Branch (343:5): [True: 82, False: 2.68M]
  ------------------
  344|    116|    case Opcode::DataDrop:
  ------------------
  |  Branch (344:5): [True: 34, False: 2.68M]
  ------------------
  345|  1.33k|    case Opcode::MemoryCopy:
  ------------------
  |  Branch (345:5): [True: 1.22k, False: 2.68M]
  ------------------
  346|  1.92k|    case Opcode::MemoryFill:
  ------------------
  |  Branch (346:5): [True: 587, False: 2.68M]
  ------------------
  347|  2.24k|    case Opcode::TableInit:
  ------------------
  |  Branch (347:5): [True: 320, False: 2.68M]
  ------------------
  348|  2.64k|    case Opcode::ElemDrop:
  ------------------
  |  Branch (348:5): [True: 399, False: 2.68M]
  ------------------
  349|  3.52k|    case Opcode::TableCopy:
  ------------------
  |  Branch (349:5): [True: 886, False: 2.68M]
  ------------------
  350|  3.52k|      return features.bulk_memory_enabled();
  351|       |
  352|  3.95k|    case Opcode::TableGet:
  ------------------
  |  Branch (352:5): [True: 3.95k, False: 2.68M]
  ------------------
  353|  10.4k|    case Opcode::TableSet:
  ------------------
  |  Branch (353:5): [True: 6.48k, False: 2.68M]
  ------------------
  354|  11.0k|    case Opcode::TableGrow:
  ------------------
  |  Branch (354:5): [True: 623, False: 2.68M]
  ------------------
  355|  11.7k|    case Opcode::TableSize:
  ------------------
  |  Branch (355:5): [True: 712, False: 2.68M]
  ------------------
  356|  15.2k|    case Opcode::RefNull:
  ------------------
  |  Branch (356:5): [True: 3.47k, False: 2.68M]
  ------------------
  357|  16.6k|    case Opcode::RefIsNull:
  ------------------
  |  Branch (357:5): [True: 1.38k, False: 2.68M]
  ------------------
  358|  16.6k|      return features.reference_types_enabled();
  359|       |
  360|  5.36k|    case Opcode::CallRef:
  ------------------
  |  Branch (360:5): [True: 5.36k, False: 2.68M]
  ------------------
  361|  5.36k|      return features.function_references_enabled();
  362|       |
  363|       |    // Interpreter opcodes are never "enabled".
  364|     11|    case Opcode::InterpAlloca:
  ------------------
  |  Branch (364:5): [True: 11, False: 2.68M]
  ------------------
  365|     19|    case Opcode::InterpBrUnless:
  ------------------
  |  Branch (365:5): [True: 8, False: 2.68M]
  ------------------
  366|     37|    case Opcode::InterpCallImport:
  ------------------
  |  Branch (366:5): [True: 18, False: 2.68M]
  ------------------
  367|     52|    case Opcode::InterpData:
  ------------------
  |  Branch (367:5): [True: 15, False: 2.68M]
  ------------------
  368|     61|    case Opcode::InterpDropKeep:
  ------------------
  |  Branch (368:5): [True: 9, False: 2.68M]
  ------------------
  369|     61|      return false;
  370|       |
  371|  1.93M|    default:
  ------------------
  |  Branch (371:5): [True: 1.93M, False: 755k]
  ------------------
  372|  1.93M|      return true;
  373|  2.68M|  }
  374|  2.68M|}
_ZNK4wabt6Opcode8GetBytesEv:
  414|  1.25k|std::vector<uint8_t> Opcode::GetBytes() const {
  415|  1.25k|  std::vector<uint8_t> result;
  416|  1.25k|  if (HasPrefix()) {
  ------------------
  |  Branch (416:7): [True: 331, False: 919]
  ------------------
  417|    331|    result.push_back(GetPrefix());
  418|    331|    uint8_t buffer[5];
  419|    331|    Offset length =
  420|    331|        WriteU32Leb128Raw(buffer, buffer + sizeof(buffer), GetCode());
  421|    331|    assert(length != 0);
  422|    331|    result.insert(result.end(), buffer, buffer + length);
  423|    919|  } else {
  424|    919|    result.push_back(GetCode());
  425|    919|  }
  426|  1.25k|  return result;
  427|  1.25k|}

_ZN4wabt11IsValidUtf8EPKcm:
   54|  1.05M|bool IsValidUtf8(const char* s, size_t s_length) {
   55|  1.05M|  const uint8_t* p = reinterpret_cast<const uint8_t*>(s);
   56|  1.05M|  const uint8_t* end = p + s_length;
   57|  7.03M|  while (p < end) {
  ------------------
  |  Branch (57:10): [True: 5.99M, False: 1.04M]
  ------------------
   58|  5.99M|    uint8_t cu0 = *p;
   59|  5.99M|    int length = s_utf8_length[cu0];
   60|  5.99M|    if (p + length > end) {
  ------------------
  |  Branch (60:9): [True: 369, False: 5.99M]
  ------------------
   61|    369|      return false;
   62|    369|    }
   63|       |
   64|  5.99M|    switch (length) {
  ------------------
  |  Branch (64:13): [True: 0, False: 5.99M]
  ------------------
   65|  6.98k|      case 0:
  ------------------
  |  Branch (65:7): [True: 6.98k, False: 5.99M]
  ------------------
   66|  6.98k|        return false;
   67|       |
   68|  5.98M|      case 1:
  ------------------
  |  Branch (68:7): [True: 5.98M, False: 15.0k]
  ------------------
   69|  5.98M|        p++;
   70|  5.98M|        break;
   71|       |
   72|    785|      case 2:
  ------------------
  |  Branch (72:7): [True: 785, False: 5.99M]
  ------------------
   73|    785|        p++;
   74|    785|        if (!IsCont(*p++)) {
  ------------------
  |  Branch (74:13): [True: 518, False: 267]
  ------------------
   75|    518|          return false;
   76|    518|        }
   77|    267|        break;
   78|       |
   79|  2.53k|      case 3: {
  ------------------
  |  Branch (79:7): [True: 2.53k, False: 5.99M]
  ------------------
   80|  2.53k|        p++;
   81|  2.53k|        uint8_t cu1 = *p++;
   82|  2.53k|        uint8_t cu2 = *p++;
   83|  2.53k|        if (!(IsCont(cu1) && IsCont(cu2)) ||
  ------------------
  |  Branch (83:15): [True: 1.82k, False: 711]
  |  Branch (83:30): [True: 1.57k, False: 253]
  ------------------
   84|  2.53k|            (cu0 == 0xe0 && cu1 < 0xa0) ||  // Overlong encoding.
  ------------------
  |  Branch (84:14): [True: 1.03k, False: 542]
  |  Branch (84:29): [True: 955, False: 76]
  ------------------
   85|  2.53k|            (cu0 == 0xed && cu1 >= 0xa0))   // UTF-16 surrogate halves.
  ------------------
  |  Branch (85:14): [True: 297, False: 321]
  |  Branch (85:29): [True: 196, False: 101]
  ------------------
   86|  2.11k|          return false;
   87|    422|        break;
   88|  2.53k|      }
   89|       |
   90|  4.71k|      case 4: {
  ------------------
  |  Branch (90:7): [True: 4.71k, False: 5.99M]
  ------------------
   91|  4.71k|        p++;
   92|  4.71k|        uint8_t cu1 = *p++;
   93|  4.71k|        uint8_t cu2 = *p++;
   94|  4.71k|        uint8_t cu3 = *p++;
   95|  4.71k|        if (!(IsCont(cu1) && IsCont(cu2) && IsCont(cu3)) ||
  ------------------
  |  Branch (95:15): [True: 3.24k, False: 1.46k]
  |  Branch (95:30): [True: 2.82k, False: 423]
  |  Branch (95:45): [True: 2.73k, False: 89]
  ------------------
   96|  4.71k|            (cu0 == 0xf0 && cu1 < 0x90) ||  // Overlong encoding.
  ------------------
  |  Branch (96:14): [True: 826, False: 1.90k]
  |  Branch (96:29): [True: 198, False: 628]
  ------------------
   97|  4.71k|            (cu0 == 0xf4 && cu1 >= 0x90))   // Code point >= 0x11000.
  ------------------
  |  Branch (97:14): [True: 1.26k, False: 1.27k]
  |  Branch (97:29): [True: 1.01k, False: 243]
  ------------------
   98|  3.19k|          return false;
   99|  1.51k|        break;
  100|  4.71k|      }
  101|  5.99M|    }
  102|  5.99M|  }
  103|  1.04M|  return true;
  104|  1.05M|}
utf8.cc:_ZN4wabt12_GLOBAL__N_16IsContEh:
   48|  15.9k|bool IsCont(uint8_t c) {
   49|  15.9k|  return (c & 0xc0) == 0x80;
   50|  15.9k|}

