LLVMFuzzerTestOneInput:
   26|  1.35k|extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   27|  1.35k|  wabt::Errors errors;
   28|  1.35k|  wabt::Features features;
   29|  1.35k|  wabt::interp::ModuleDesc module;
   30|  1.35k|  FuzzedDataProvider data_provider(data, size);
   31|       |
   32|  1.35k|#define WABT_FEATURE(variable, flag, default_, help) \
   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
   34|  1.35k|#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|  1.35k|WABT_FEATURE(exceptions,          "exceptions",              false,   "Experimental exception handling")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 641, False: 711]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   26|  1.35k|WABT_FEATURE(mutable_globals,     "mutable-globals",         true,    "Import/export mutable globals")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 635, False: 717]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   27|  1.35k|WABT_FEATURE(sat_float_to_int,    "saturating-float-to-int", true,    "Saturating float-to-int operators")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 657, False: 695]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   28|  1.35k|WABT_FEATURE(sign_extension,      "sign-extension",          true,    "Sign-extension operators")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 694, False: 658]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   29|  1.35k|WABT_FEATURE(simd,                "simd",                    true,    "SIMD support")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 666, False: 686]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   30|  1.35k|WABT_FEATURE(threads,             "threads",                 false,   "Threading support")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 677, False: 675]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   31|  1.35k|WABT_FEATURE(function_references, "function-references",     false,   "Typed function references")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 639, False: 713]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   32|  1.35k|WABT_FEATURE(multi_value,         "multi-value",             true,    "Multi-value")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 628, False: 724]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   33|  1.35k|WABT_FEATURE(tail_call,           "tail-call",               false,   "Tail-call support")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 703, False: 649]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   34|  1.35k|WABT_FEATURE(bulk_memory,         "bulk-memory",             true,    "Bulk-memory operations")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 676, False: 676]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   35|  1.35k|WABT_FEATURE(reference_types,     "reference-types",         true,    "Reference types (externref)")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 660, False: 692]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   36|  1.35k|WABT_FEATURE(annotations,         "annotations",             false,   "Custom annotation syntax")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 662, False: 690]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   37|  1.35k|WABT_FEATURE(code_metadata,       "code-metadata",           false,   "Code metadata")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 723, False: 629]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   38|  1.35k|WABT_FEATURE(gc,                  "gc",                      false,   "Garbage collection")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 620, False: 732]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   39|  1.35k|WABT_FEATURE(memory64,            "memory64",                false,   "64-bit memory")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 670, False: 682]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   40|  1.35k|WABT_FEATURE(multi_memory,        "multi-memory",            false,   "Multi-memory")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 646, False: 706]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   41|  1.35k|WABT_FEATURE(extended_const,      "extended-const",          false,   "Extended constant expressions")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 610, False: 742]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   42|  1.35k|WABT_FEATURE(relaxed_simd,        "relaxed-simd",            false,   "Relaxed SIMD")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 669, False: 683]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   43|  1.35k|WABT_FEATURE(custom_page_sizes,   "custom-page-sizes",       false,   "Custom page sizes")
  |  |  ------------------
  |  |  |  |   33|  1.35k|  if (data_provider.ConsumeBool()) { features.enable_##variable(); }
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (33:7): [True: 624, False: 728]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   35|  1.35k|#undef WABT_FEATURE
   36|       |  // Add only feature related options, but no logging, stop_on_first_error, etc.
   37|  1.35k|  wabt::ReadBinaryOptions options(features, nullptr, false, false, false);
   38|  1.35k|  std::vector<uint8_t> text = data_provider.ConsumeRemainingBytes<uint8_t>();
   39|  1.35k|  ReadBinaryInterp("<fuzzer>", text.data(), text.size(), options, &errors,
   40|  1.35k|                   &module);
   41|  1.35k|  return 0;
   42|  1.35k|}

_ZN4wabt15BinaryReaderNop11BeginModuleEj:
   29|  1.30k|  Result BeginModule(uint32_t version) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12BeginSectionEjNS_13BinarySectionEm:
   34|   988k|                      Offset size) override {
   35|   988k|    return Result::Ok;
   36|   988k|  }
_ZN4wabt15BinaryReaderNop18BeginCustomSectionEjmNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
   41|   214k|                            std::string_view section_name) override {
   42|   214k|    return Result::Ok;
   43|   214k|  }
_ZN4wabt15BinaryReaderNop16EndCustomSectionEv:
   44|   170k|  Result EndCustomSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginTypeSectionEm:
   47|    931|  Result BeginTypeSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndTypeSectionEv:
   62|    699|  Result EndTypeSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginImportSectionEm:
   65|    393|  Result BeginImportSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnImportCountEj:
   66|    378|  Result OnImportCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop8OnImportEjNS_12ExternalKindENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEES6_:
   70|  3.02k|                  std::string_view field_name) override {
   71|  3.02k|    return Result::Ok;
   72|  3.02k|  }
_ZN4wabt15BinaryReaderNop16EndImportSectionEv:
  111|    297|  Result EndImportSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop20BeginFunctionSectionEm:
  114|    876|  Result BeginFunctionSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18EndFunctionSectionEv:
  119|    763|  Result EndFunctionSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17BeginTableSectionEm:
  122|    333|  Result BeginTableSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15EndTableSectionEv:
  129|    285|  Result EndTableSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginMemorySectionEm:
  132|    443|  Result BeginMemorySection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16EndMemorySectionEv:
  139|    409|  Result EndMemorySection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginGlobalSectionEm:
  142|    373|  Result BeginGlobalSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop9EndGlobalEj:
  149|  3.83k|  Result EndGlobal(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16EndGlobalSectionEv:
  150|    274|  Result EndGlobalSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginExportSectionEm:
  153|    483|  Result BeginExportSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnExportCountEj:
  154|    473|  Result OnExportCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16EndExportSectionEv:
  161|    276|  Result EndExportSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17BeginStartSectionEm:
  164|     66|  Result BeginStartSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15EndStartSectionEv:
  166|     35|  Result EndStartSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginCodeSectionEm:
  169|    703|  Result BeginCodeSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19OnFunctionBodyCountEj:
  170|    697|  Result OnFunctionBodyCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnOpcodeBareEv:
  183|   566k|  Result OnOpcodeBare() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnOpcodeUint32Ej:
  188|  60.3k|  Result OnOpcodeUint32(uint32_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnOpcodeIndexEj:
  184|  45.9k|  Result OnOpcodeIndex(Index value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop20OnOpcodeUint32Uint32Ejj:
  189|  25.0k|  Result OnOpcodeUint32Uint32(uint32_t value, uint32_t value2) override {
  190|  25.0k|    return Result::Ok;
  191|  25.0k|  }
_ZN4wabt15BinaryReaderNop26OnOpcodeUint32Uint32Uint32Ejjj:
  194|    897|                                    uint32_t value3) override {
  195|    897|    return Result::Ok;
  196|    897|  }
_ZN4wabt15BinaryReaderNop14OnOpcodeUint64Em:
  203|  9.90k|  Result OnOpcodeUint64(uint64_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnOpcodeF32Ej:
  204|  18.9k|  Result OnOpcodeF32(uint32_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop11OnOpcodeF64Em:
  205|  2.45k|  Result OnOpcodeF64(uint64_t value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnOpcodeV128E4v128:
  206|  4.60k|  Result OnOpcodeV128(v128 value) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16OnOpcodeBlockSigENS_4TypeE:
  207|  26.5k|  Result OnOpcodeBlockSig(Type sig_type) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnOpcodeTypeENS_4TypeE:
  208|  5.03k|  Result OnOpcodeType(Type type) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnCallRefExprEv:
  253|    142|  Result OnCallRefExpr() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndCodeSectionEv:
  332|      6|  Result EndCodeSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginElemSectionEm:
  367|    185|  Result BeginElemSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndElemSegmentEj:
  388|  2.39k|  Result EndElemSegment(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndElemSectionEv:
  389|    115|  Result EndElemSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop16BeginDataSectionEm:
  392|     50|  Result BeginDataSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18OnDataSegmentCountEj:
  393|     32|  Result OnDataSegmentCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndDataSegmentEj:
  406|    253|  Result EndDataSegment(Index index) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14EndDataSectionEv:
  407|      4|  Result EndDataSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop21BeginDataCountSectionEm:
  410|    110|  Result BeginDataCountSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19EndDataCountSectionEv:
  412|    109|  Result EndDataCountSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop17BeginRelocSectionEm:
  466|  2.69k|  Result BeginRelocSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnRelocCountEjj:
  467|  2.40k|  Result OnRelocCount(Index count, Index section_code) override {
  468|  2.40k|    return Result::Ok;
  469|  2.40k|  }
_ZN4wabt15BinaryReaderNop7OnRelocENS_9RelocTypeEmjj:
  473|  7.31k|                 uint32_t addend) override {
  474|  7.31k|    return Result::Ok;
  475|  7.31k|  }
_ZN4wabt15BinaryReaderNop15EndRelocSectionEv:
  476|    318|  Result EndRelocSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop18BeginDylinkSectionEm:
  500|  24.7k|  Result BeginDylinkSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnDylinkInfoEjjjj:
  504|  5.93k|                      uint32_t table_align) override {
  505|  5.93k|    return Result::Ok;
  506|  5.93k|  }
_ZN4wabt15BinaryReaderNop19OnDylinkImportCountEj:
  511|  12.7k|  Result OnDylinkImportCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19OnDylinkExportCountEj:
  512|    352|  Result OnDylinkExportCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnDylinkImportENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEES5_j:
  515|  11.6k|                        uint32_t flags) override {
  516|  11.6k|    return Result::Ok;
  517|  11.6k|  }
_ZN4wabt15BinaryReaderNop14OnDylinkExportENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEj:
  518|     33|  Result OnDylinkExport(std::string_view name, uint32_t flags) override {
  519|     33|    return Result::Ok;
  520|     33|  }
_ZN4wabt15BinaryReaderNop19OnDylinkNeededCountEj:
  507|  3.96k|  Result OnDylinkNeededCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnDylinkNeededENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  508|  2.93k|  Result OnDylinkNeeded(std::string_view so_name) override {
  509|  2.93k|    return Result::Ok;
  510|  2.93k|  }
_ZN4wabt15BinaryReaderNop16EndDylinkSectionEv:
  521|  2.35k|  Result EndDylinkSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop26BeginTargetFeaturesSectionEm:
  524|  1.54k|  Result BeginTargetFeaturesSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnFeatureCountEj:
  525|  1.35k|  Result OnFeatureCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop9OnFeatureEhNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEE:
  526|  3.32k|  Result OnFeature(uint8_t prefix, std::string_view name) override {
  527|  3.32k|    return Result::Ok;
  528|  3.32k|  }
_ZN4wabt15BinaryReaderNop24EndTargetFeaturesSectionEv:
  529|    249|  Result EndTargetFeaturesSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop25BeginGenericCustomSectionEm:
  532|   214k|  Result BeginGenericCustomSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop22OnGenericCustomSectionENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEPKvm:
  535|   214k|                                Offset size) override {
  536|   214k|    return Result::Ok;
  537|   214k|  };
_ZN4wabt15BinaryReaderNop23EndGenericCustomSectionEv:
  538|   214k|  Result EndGenericCustomSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19BeginLinkingSectionEm:
  541|  8.22k|  Result BeginLinkingSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnSymbolCountEj:
  542|  2.94k|  Result OnSymbolCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop12OnDataSymbolEjjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEjjj:
  548|    995|                      uint32_t size) override {
  549|    995|    return Result::Ok;
  550|    995|  }
_ZN4wabt15BinaryReaderNop16OnFunctionSymbolEjjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEj:
  554|    580|                          Index func_index) override {
  555|    580|    return Result::Ok;
  556|    580|  }
_ZN4wabt15BinaryReaderNop14OnGlobalSymbolEjjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEj:
  560|     20|                        Index global_index) override {
  561|     20|    return Result::Ok;
  562|     20|  }
_ZN4wabt15BinaryReaderNop15OnSectionSymbolEjjj:
  565|     85|                         Index section_index) override {
  566|     85|    return Result::Ok;
  567|     85|  }
_ZN4wabt15BinaryReaderNop11OnTagSymbolEjjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEj:
  571|      3|                     Index tag_index) override {
  572|      3|    return Result::Ok;
  573|      3|  }
_ZN4wabt15BinaryReaderNop13OnTableSymbolEjjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEj:
  577|    566|                       Index table_index) override {
  578|    566|    return Result::Ok;
  579|    566|  }
_ZN4wabt15BinaryReaderNop18OnSegmentInfoCountEj:
  580|    973|  Result OnSegmentInfoCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnSegmentInfoEjNSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEmj:
  584|     34|                       uint32_t flags) override {
  585|     34|    return Result::Ok;
  586|     34|  }
_ZN4wabt15BinaryReaderNop19OnInitFunctionCountEj:
  587|    590|  Result OnInitFunctionCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop14OnInitFunctionEjj:
  588|    602|  Result OnInitFunction(uint32_t priority, Index symbol_index) override {
  589|    602|    return Result::Ok;
  590|    602|  }
_ZN4wabt15BinaryReaderNop13OnComdatCountEj:
  591|  3.19k|  Result OnComdatCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop13OnComdatBeginENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEjj:
  594|  9.41k|                       Index count) override {
  595|  9.41k|    return Result::Ok;
  596|  9.41k|  }
_ZN4wabt15BinaryReaderNop13OnComdatEntryENS_10ComdatTypeEj:
  597|  6.59k|  Result OnComdatEntry(ComdatType kind, Index index) override {
  598|  6.59k|    return Result::Ok;
  599|  6.59k|  }
_ZN4wabt15BinaryReaderNop17EndLinkingSectionEv:
  600|    815|  Result EndLinkingSection() override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop15BeginTagSectionEm:
  479|      2|  Result BeginTagSection(Offset size) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop24BeginCodeMetadataSectionENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEm:
  485|  43.7k|  Result BeginCodeMetadataSection(std::string_view name, Offset size) override {
  486|  43.7k|    return Result::Ok;
  487|  43.7k|  }
_ZN4wabt15BinaryReaderNop23OnCodeMetadataFuncCountEj:
  488|  43.5k|  Result OnCodeMetadataFuncCount(Index count) override { return Result::Ok; }
_ZN4wabt15BinaryReaderNop19OnCodeMetadataCountEjj:
  489|  98.0k|  Result OnCodeMetadataCount(Index function_index, Index count) override {
  490|  98.0k|    return Result::Ok;
  491|  98.0k|  }
_ZN4wabt15BinaryReaderNop14OnCodeMetadataEmPKvm:
  494|  8.61k|                        Address size) override {
  495|  8.61k|    return Result::Ok;
  496|  8.61k|  }
_ZN4wabt15BinaryReaderNop22EndCodeMetadataSectionEv:
  497|  33.4k|  Result EndCodeMetadataSection() override { return Result::Ok; }

_ZN4wabt17ReadBinaryOptionsC2ERKNS_8FeaturesEPNS_6StreamEbbb:
   41|  1.35k|      : features(features),
   42|  1.35k|        log_stream(log_stream),
   43|  1.35k|        read_debug_names(read_debug_names),
   44|  1.35k|        stop_on_first_error(stop_on_first_error),
   45|  1.35k|        fail_on_custom_section_error(fail_on_custom_section_error) {}
_ZN4wabt20BinaryReaderDelegate5StateC2EPKhm:
   73|  1.35k|        : data(data), size(size), offset(0) {}
_ZN4wabt20BinaryReaderDelegateD2Ev:
   80|  2.70k|  virtual ~BinaryReaderDelegate() {}
_ZN4wabt20BinaryReaderDelegate10OnSetStateEPKNS0_5StateE:
   83|  1.35k|  virtual void OnSetState(const State* s) { state = s; }

_Z23WABT_BYTES_TO_MIN_PAGESmj:
   50|    898|                                        uint32_t page_size) {
   51|    898|  if ((page_size == 0) ||
  ------------------
  |  Branch (51:7): [True: 0, False: 898]
  ------------------
   52|    898|      (page_size & (page_size - 1))) {  // malformed page sizes
  ------------------
  |  Branch (52:7): [True: 0, False: 898]
  ------------------
   53|      0|    WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
   54|      0|    return 0;
   55|      0|  }
   56|    898|  uint64_t num_pages = num_bytes / page_size;
   57|    898|  return (page_size * num_pages == num_bytes) ? num_pages : num_pages + 1;
  ------------------
  |  Branch (57:10): [True: 0, False: 898]
  ------------------
   58|    898|}
_ZN4wabt8LocationC2Ev:
  211|  1.28M|  Location() : line(0), first_column(0), last_column(0) {}
_ZN4wabt8LocationC2Em:
  220|   923k|  explicit Location(size_t offset) : offset(offset) {}
_ZNK4wabt6Limits9IndexTypeEv:
  392|  50.1k|  Type IndexType() const { return is_64 ? Type::I64 : Type::I32; }
  ------------------
  |  Branch (392:35): [True: 12, False: 50.1k]
  ------------------
binary-reader.cc:_ZN4wabtL16GetRelocTypeNameENS_9RelocTypeE:
  421|    551|static inline const char* GetRelocTypeName(RelocType reloc) {
  422|    551|  return static_cast<size_t>(reloc) < kRelocTypeCount
  ------------------
  |  Branch (422:10): [True: 0, False: 551]
  ------------------
  423|    551|             ? g_reloc_type_name[static_cast<size_t>(reloc)]
  424|    551|             : "<error_reloc_type>";
  425|    551|}
_ZN4wabt6LimitsC2Ev:
  380|  45.3k|  Limits() = default;
_ZN4wabt10ZeroMemoryI4v128EEvRT_:
  172|  4.60k|void ZeroMemory(T& v) {
  173|  4.60k|  WABT_STATIC_ASSERT(std::is_trivial<T>::value);
  ------------------
  |  |   89|  4.60k|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
  174|  4.60k|  memset(&v, 0, sizeof(v));
  175|  4.60k|}

_ZN4wabt5ErrorC2ENS_10ErrorLevelENS_8LocationENSt3__117basic_string_viewIcNS3_11char_traitsIcEEEE:
   47|   923k|      : error_level(error_level), loc(loc), message(message) {}

_ZN4wabt8Features17enable_exceptionsEv:
   38|    641|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features22set_exceptions_enabledEb:
   40|    641|  void set_##variable##_enabled(bool value) {                     \
   41|    641|    variable##_enabled_ = value;                                  \
   42|    641|    UpdateDependencies();                                         \
   43|    641|  }
_ZN4wabt8Features22enable_mutable_globalsEv:
   38|    635|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features27set_mutable_globals_enabledEb:
   40|    635|  void set_##variable##_enabled(bool value) {                     \
   41|    635|    variable##_enabled_ = value;                                  \
   42|    635|    UpdateDependencies();                                         \
   43|    635|  }
_ZN4wabt8Features23enable_sat_float_to_intEv:
   38|    657|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features28set_sat_float_to_int_enabledEb:
   40|    657|  void set_##variable##_enabled(bool value) {                     \
   41|    657|    variable##_enabled_ = value;                                  \
   42|    657|    UpdateDependencies();                                         \
   43|    657|  }
_ZN4wabt8Features21enable_sign_extensionEv:
   38|    694|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features26set_sign_extension_enabledEb:
   40|    694|  void set_##variable##_enabled(bool value) {                     \
   41|    694|    variable##_enabled_ = value;                                  \
   42|    694|    UpdateDependencies();                                         \
   43|    694|  }
_ZN4wabt8Features11enable_simdEv:
   38|    666|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features16set_simd_enabledEb:
   40|    666|  void set_##variable##_enabled(bool value) {                     \
   41|    666|    variable##_enabled_ = value;                                  \
   42|    666|    UpdateDependencies();                                         \
   43|    666|  }
_ZN4wabt8Features14enable_threadsEv:
   38|    677|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features19set_threads_enabledEb:
   40|    677|  void set_##variable##_enabled(bool value) {                     \
   41|    677|    variable##_enabled_ = value;                                  \
   42|    677|    UpdateDependencies();                                         \
   43|    677|  }
_ZN4wabt8Features26enable_function_referencesEv:
   38|    639|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features31set_function_references_enabledEb:
   40|    639|  void set_##variable##_enabled(bool value) {                     \
   41|    639|    variable##_enabled_ = value;                                  \
   42|    639|    UpdateDependencies();                                         \
   43|    639|  }
_ZN4wabt8Features18enable_multi_valueEv:
   38|    628|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features23set_multi_value_enabledEb:
   40|    628|  void set_##variable##_enabled(bool value) {                     \
   41|    628|    variable##_enabled_ = value;                                  \
   42|    628|    UpdateDependencies();                                         \
   43|    628|  }
_ZN4wabt8Features16enable_tail_callEv:
   38|    703|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features21set_tail_call_enabledEb:
   40|    703|  void set_##variable##_enabled(bool value) {                     \
   41|    703|    variable##_enabled_ = value;                                  \
   42|    703|    UpdateDependencies();                                         \
   43|    703|  }
_ZN4wabt8Features18enable_bulk_memoryEv:
   38|    676|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features23set_bulk_memory_enabledEb:
   40|    676|  void set_##variable##_enabled(bool value) {                     \
   41|    676|    variable##_enabled_ = value;                                  \
   42|    676|    UpdateDependencies();                                         \
   43|    676|  }
_ZN4wabt8Features22enable_reference_typesEv:
   38|    660|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features27set_reference_types_enabledEb:
   40|    660|  void set_##variable##_enabled(bool value) {                     \
   41|    660|    variable##_enabled_ = value;                                  \
   42|    660|    UpdateDependencies();                                         \
   43|    660|  }
_ZN4wabt8Features18enable_annotationsEv:
   38|    662|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features23set_annotations_enabledEb:
   40|    662|  void set_##variable##_enabled(bool value) {                     \
   41|    662|    variable##_enabled_ = value;                                  \
   42|    662|    UpdateDependencies();                                         \
   43|    662|  }
_ZN4wabt8Features20enable_code_metadataEv:
   38|    723|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features25set_code_metadata_enabledEb:
   40|    723|  void set_##variable##_enabled(bool value) {                     \
   41|    723|    variable##_enabled_ = value;                                  \
   42|    723|    UpdateDependencies();                                         \
   43|    723|  }
_ZN4wabt8Features9enable_gcEv:
   38|    620|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features14set_gc_enabledEb:
   40|    620|  void set_##variable##_enabled(bool value) {                     \
   41|    620|    variable##_enabled_ = value;                                  \
   42|    620|    UpdateDependencies();                                         \
   43|    620|  }
_ZN4wabt8Features15enable_memory64Ev:
   38|    670|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features20set_memory64_enabledEb:
   40|    670|  void set_##variable##_enabled(bool value) {                     \
   41|    670|    variable##_enabled_ = value;                                  \
   42|    670|    UpdateDependencies();                                         \
   43|    670|  }
_ZN4wabt8Features19enable_multi_memoryEv:
   38|    646|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features24set_multi_memory_enabledEb:
   40|    646|  void set_##variable##_enabled(bool value) {                     \
   41|    646|    variable##_enabled_ = value;                                  \
   42|    646|    UpdateDependencies();                                         \
   43|    646|  }
_ZN4wabt8Features21enable_extended_constEv:
   38|    610|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features26set_extended_const_enabledEb:
   40|    610|  void set_##variable##_enabled(bool value) {                     \
   41|    610|    variable##_enabled_ = value;                                  \
   42|    610|    UpdateDependencies();                                         \
   43|    610|  }
_ZN4wabt8Features19enable_relaxed_simdEv:
   38|    669|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features24set_relaxed_simd_enabledEb:
   40|    669|  void set_##variable##_enabled(bool value) {                     \
   41|    669|    variable##_enabled_ = value;                                  \
   42|    669|    UpdateDependencies();                                         \
   43|    669|  }
_ZN4wabt8Features24enable_custom_page_sizesEv:
   38|    624|  void enable_##variable() { set_##variable##_enabled(true); }    \
_ZN4wabt8Features29set_custom_page_sizes_enabledEb:
   40|    624|  void set_##variable##_enabled(bool value) {                     \
   41|    624|    variable##_enabled_ = value;                                  \
   42|    624|    UpdateDependencies();                                         \
   43|    624|  }
_ZNK4wabt8Features18exceptions_enabledEv:
   37|     97|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features23mutable_globals_enabledEv:
   37|    279|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features24sat_float_to_int_enabledEv:
   37|  6.93k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features22sign_extension_enabledEv:
   37|  9.43k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features12simd_enabledEv:
   37|  57.4k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features15threads_enabledEv:
   37|    389|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features27function_references_enabledEv:
   37|  7.28k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features19multi_value_enabledEv:
   37|  7.15k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features17tail_call_enabledEv:
   37|     50|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features19bulk_memory_enabledEv:
   37|  5.80k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features23reference_types_enabledEv:
   37|  24.7k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features21code_metadata_enabledEv:
   37|   177k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features10gc_enabledEv:
   37|  4.72k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features16memory64_enabledEv:
   37|  26.1k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features20multi_memory_enabledEv:
   37|  14.2k|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features22extended_const_enabledEv:
   37|    116|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features20relaxed_simd_enabledEv:
   37|     23|  bool variable##_enabled() const { return variable##_enabled_; } \
_ZNK4wabt8Features25custom_page_sizes_enabledEv:
   37|      1|  bool variable##_enabled() const { return variable##_enabled_; } \

_ZN4wabt6interp8FuncTypeC2ENSt3__16vectorINS_4TypeENS2_9allocatorIS4_EEEES7_:
   45|  21.7k|    : ExternType(ExternKind::Func), params(params), results(results) {}
_ZN4wabt6interp10ExternTypeC2ENS_12ExternalKindE:
   36|  28.1k|inline ExternType::ExternType(ExternKind kind) : kind(kind) {}
_ZN4wabt6interp10ImportTypeC2ERKS1_:
  101|  6.99k|    : module(other.module), name(other.name), type(other.type->Clone()) {}
_ZN4wabt6interp10ImportTypeC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_NS2_10unique_ptrINS0_10ExternTypeENS2_14default_deleteISA_EEEE:
   98|  2.99k|    : module(module), name(name), type(std::move(type)) {}
_ZN4wabt6interp9TableTypeC2ENS_4TypeENS_6LimitsE:
   54|  1.44k|    : ExternType(ExternKind::Table), element(element), limits(limits) {
   55|       |  // Always set max.
   56|  1.44k|  if (!limits.has_max) {
  ------------------
  |  Branch (56:7): [True: 155, False: 1.28k]
  ------------------
   57|    155|    this->limits.max = std::numeric_limits<u32>::max();
   58|    155|  }
   59|  1.44k|}
_ZN4wabt6interp10MemoryTypeC2ENS_6LimitsEj:
   68|    647|    : ExternType(ExternKind::Memory), limits(limits), page_size(page_size) {
   69|       |  // Always set max.
   70|    647|  if (!limits.has_max) {
  ------------------
  |  Branch (70:7): [True: 245, False: 402]
  ------------------
   71|    245|    this->limits.max = WABT_BYTES_TO_MIN_PAGES(
   72|    245|        (limits.is_64 ? UINT64_MAX : UINT32_MAX), page_size);
  ------------------
  |  Branch (72:10): [True: 13, False: 232]
  ------------------
   73|    245|  }
   74|    647|}
_ZN4wabt6interp10GlobalTypeC2ENS_4TypeENS0_10MutabilityE:
   83|  4.30k|    : ExternType(ExternKind::Global), type(type), mut(mut) {}
_ZN4wabt6interp10ExportTypeC2ERKS1_:
  118|  12.1k|    : name(other.name), type(other.type->Clone()) {}
_ZN4wabt6interp10ExportTypeC2ENSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS2_10unique_ptrINS0_10ExternTypeENS2_14default_deleteISA_EEEE:
  115|  5.26k|    : name(name), type(std::move(type)) {}
_ZN4wabt6interp3RefC2Em:
   25|      2|inline Ref::Ref(size_t index) : index(index) {}

_ZN4wabt6interp10ExternTypeD2Ev:
  167|   166k|  virtual ~ExternType() {}

_ZNK4wabt3Var8is_indexEv:
   55|   525k|  bool is_index() const { return type_ == VarType::Index; }
_ZNK4wabt3Var7is_nameEv:
   56|   722k|  bool is_name() const { return type_ == VarType::Name; }
_ZNK4wabt3Var5indexEv:
   58|   228k|  Index index() const {
   59|   228k|    assert(is_index());
   60|   228k|    return index_;
   61|   228k|  }

_ZN4wabt6OpcodeC2ENS0_4EnumE:
   52|  1.28M|  Opcode(Enum e) : enum_(e) {}
_ZNK4wabt6OpcodecvNS0_4EnumEEv:
   53|  1.14M|  operator Enum() const { return enum_; }
_ZNK4wabt6Opcode9HasPrefixEv:
   57|    150|  bool HasPrefix() const { return GetInfo().prefix != 0; }
_ZNK4wabt6Opcode9GetPrefixEv:
   58|     34|  uint8_t GetPrefix() const { return GetInfo().prefix; }
_ZNK4wabt6Opcode7GetCodeEv:
   59|    150|  uint32_t GetCode() const { return GetInfo().code; }
_ZNK4wabt6Opcode7GetNameEv:
   61|   272k|  const char* GetName() const { return GetInfo().name; }
_ZNK4wabt6Opcode13GetResultTypeEv:
   65|   272k|  Type GetResultType() const { return GetInfo().result_type; }
_ZNK4wabt6Opcode13GetParamType1Ev:
   66|   272k|  Type GetParamType1() const { return GetInfo().param_types[0]; }
_ZNK4wabt6Opcode13GetParamType2Ev:
   67|  59.9k|  Type GetParamType2() const { return GetInfo().param_types[1]; }
_ZNK4wabt6Opcode13GetParamType3Ev:
   68|    604|  Type GetParamType3() const { return GetInfo().param_types[2]; }
_ZNK4wabt6Opcode13GetMemorySizeEv:
   70|  25.4k|  Address GetMemorySize() const { return GetInfo().memory_size; }
_ZN4wabt6Opcode12IsPrefixByteEh:
   86|   793k|  static bool IsPrefixByte(uint8_t byte) {
   87|   793k|    return byte == kMathPrefix || byte == kThreadsPrefix || byte == kSimdPrefix;
  ------------------
  |  Branch (87:12): [True: 12.7k, False: 781k]
  |  Branch (87:35): [True: 392, False: 780k]
  |  Branch (87:61): [True: 104k, False: 676k]
  ------------------
   88|   793k|  }
_ZN4wabt6Opcode10PrefixCodeEhj:
  109|   795k|  static uint32_t PrefixCode(uint8_t prefix, uint32_t code) {
  110|   795k|    if (code >= (1 << MAX_OPCODE_BITS)) {
  ------------------
  |  |   32|   795k|#define MAX_OPCODE_BITS 9
  ------------------
  |  Branch (110:9): [True: 24, False: 795k]
  ------------------
  111|       |      // Clamp to (2^bits - 1), since we know that it is an invalid code.
  112|     24|      code = (1 << MAX_OPCODE_BITS) - 1;
  ------------------
  |  |   32|     24|#define MAX_OPCODE_BITS 9
  ------------------
  113|     24|    }
  114|   795k|    return (prefix << MAX_OPCODE_BITS) | code;
  ------------------
  |  |   32|   795k|#define MAX_OPCODE_BITS 9
  ------------------
  115|   795k|  }
_ZN4wabt6Opcode19EncodeInvalidOpcodeEj:
  129|    127|  static Enum EncodeInvalidOpcode(uint32_t prefix_code) {
  130|    127|    Enum result = static_cast<Enum>(~prefix_code + 1);
  131|    127|    assert(result >= Invalid);
  132|    127|    return result;
  133|    127|  }
_ZN4wabt6Opcode19DecodeInvalidOpcodeENS0_4EnumEPhPj:
  137|    286|                                  uint32_t* out_code) {
  138|    286|    uint32_t prefix_code = ~static_cast<uint32_t>(e) + 1;
  139|    286|    *out_prefix = prefix_code >> MAX_OPCODE_BITS;
  ------------------
  |  |   32|    286|#define MAX_OPCODE_BITS 9
  ------------------
  140|    286|    *out_code = prefix_code & 0xff;
  141|    286|  }
_ZN4wabt6Opcode8FromCodeEj:
  150|   676k|inline Opcode Opcode::FromCode(uint32_t code) {
  151|   676k|  return FromCode(0, code);
  152|   676k|}
_ZN4wabt6Opcode8FromCodeEhj:
  155|   793k|inline Opcode Opcode::FromCode(uint8_t prefix, uint32_t code) {
  156|   793k|  uint32_t prefix_code = PrefixCode(prefix, code);
  157|       |
  158|   793k|  if (WABT_LIKELY(prefix_code < WABT_ARRAY_SIZE(WabtOpcodeCodeTable))) {
  ------------------
  |  |   73|   793k|#define WABT_LIKELY(x) __builtin_expect(!!(x), 1)
  |  |  ------------------
  |  |  |  Branch (73:24): [True: 793k, False: 0]
  |  |  ------------------
  ------------------
  159|   793k|    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|   793k|    if (WABT_LIKELY(value != 0 || code == 0)) {
  ------------------
  |  |   73|  1.05M|#define WABT_LIKELY(x) __builtin_expect(!!(x), 1)
  |  |  ------------------
  |  |  |  Branch (73:24): [True: 793k, False: 127]
  |  |  |  Branch (73:44): [True: 530k, False: 263k]
  |  |  |  Branch (73:44): [True: 263k, False: 127]
  |  |  ------------------
  ------------------
  163|   793k|      return Opcode(static_cast<Enum>(value));
  164|   793k|    }
  165|   793k|  }
  166|       |
  167|    127|  return Opcode(EncodeInvalidOpcode(prefix_code));
  168|   793k|}

_ZN4wabt6ResultC2ENS0_4EnumE:
   29|  23.3M|  Result(Enum e) : enum_(e) {}
_ZNK4wabt6ResultcvNS0_4EnumEEv:
   30|  25.6M|  operator Enum() const { return enum_; }
_ZN4wabtorENS_6ResultES0_:
   37|  2.35M|inline Result operator|(Result lhs, Result rhs) {
   38|  2.35M|  return (lhs == Result::Error || rhs == Result::Error) ? Result::Error
  ------------------
  |  Branch (38:11): [True: 36.3k, False: 2.32M]
  |  Branch (38:35): [True: 2.10k, False: 2.32M]
  ------------------
   39|  2.35M|                                                        : Result::Ok;
   40|  2.35M|}
_ZN4wabt6ResultoRES0_:
   42|  1.94M|inline Result& Result::operator|=(Result rhs) {
   43|  1.94M|  enum_ = *this | rhs;
   44|  1.94M|  return *this;
   45|  1.94M|}
_ZN4wabt9SucceededENS_6ResultE:
   47|  6.04M|inline bool Succeeded(Result result) {
   48|  6.04M|  return result == Result::Ok;
   49|  6.04M|}
_ZN4wabt6FailedENS_6ResultE:
   50|  12.9M|inline bool Failed(Result result) {
   51|  12.9M|  return result == Result::Error;
   52|  12.9M|}

_ZN4wabt15ValidateOptionsC2ERKNS_8FeaturesE:
   38|  1.35k|  ValidateOptions(const Features& features) : features(features) {}
_ZN4wabt15SharedValidator8GetLabelEjPPNS_11TypeChecker5LabelE:
   51|  34.1k|  Result GetLabel(Index depth, Label** out_label) {
   52|  34.1k|    return typechecker_.GetLabel(depth, out_label);
   53|  34.1k|  }
_ZNK4wabt15SharedValidator15type_stack_sizeEv:
   50|  49.7k|  size_t type_stack_size() const { return typechecker_.type_stack_size(); }
_ZN4wabt15SharedValidator13GetCatchCountEjPj:
   54|  11.3k|  Result GetCatchCount(Index depth, Index* out_count) {
   55|  11.3k|    return typechecker_.GetCatchCount(depth, out_count);
   56|  11.3k|  }
_ZN4wabt15SharedValidator8FuncTypeC2ERKNSt3__16vectorINS_4TypeENS2_9allocatorIS4_EEEES9_j:
  229|  4.52k|        : params(params), results(results), type_index(type_index) {}
_ZN4wabt15SharedValidator9TableTypeC2ENS_4TypeENS_6LimitsE:
  252|  1.44k|    TableType(Type element, Limits limits) : element(element), limits(limits) {}
_ZN4wabt15SharedValidator10MemoryTypeC2ENS_6LimitsE:
  260|    653|    MemoryType(Limits limits) : limits(limits) {}
_ZN4wabt15SharedValidator10GlobalTypeC2ENS_4TypeEb:
  267|  4.30k|    GlobalType(Type type, bool mutable_) : type(type), mutable_(mutable_) {}
_ZN4wabt15SharedValidator8ElemTypeC2ENS_4TypeEbS2_:
  280|  2.44k|        : element(element), is_active(is_active), table_type(table_type) {}
_ZN4wabt15SharedValidator8FuncTypeC2Ev:
  225|  18.8k|    FuncType() = default;
_ZN4wabt15SharedValidator9TableTypeC2Ev:
  251|  3.56k|    TableType() = default;
_ZN4wabt15SharedValidator10MemoryTypeC2Ev:
  259|  39.6k|    MemoryType() = default;
_ZN4wabt15SharedValidator10GlobalTypeC2Ev:
  266|  18.6k|    GlobalType() = default;

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

_ZN4wabt11TypeChecker5Label8br_typesEv:
   40|  22.7k|    TypeVector& br_types() {
   41|  22.7k|      return label_type == LabelType::Loop ? param_types : result_types;
  ------------------
  |  Branch (41:14): [True: 4.28k, False: 18.4k]
  ------------------
   42|  22.7k|    }
_ZNK4wabt11TypeChecker15type_stack_sizeEv:
   57|  49.7k|  size_t type_stack_size() const { return type_stack_.size(); }
_ZN4wabt11TypeCheckerC2ERKNS_8FeaturesE:
   51|  1.35k|  explicit TypeChecker(const Features& features) : features_(features) {}
_ZN4wabt11TypeChecker18set_error_callbackERKNSt3__18functionIFvPKcEEE:
   53|  1.35k|  void set_error_callback(const ErrorCallback& error_callback) {
   54|  1.35k|    error_callback_ = error_callback;
   55|  1.35k|  }
_ZN4wabt11TypeChecker18PrintStackIfFailedIJNS_4TypeEEEEvNS_6ResultEPKcDpT_:
  190|   240k|  void PrintStackIfFailed(Result result, const char* desc, Args... args) {
  191|       |    // Assert all args are Type or Type::Enum. If it's a TypeVector then
  192|       |    // PrintStackIfFailedV() should be used instead.
  193|   240k|    static_assert((std::is_constructible_v<Type, Args> && ...));
  194|       |    // Minor optimization, check result before constructing the vector to pass
  195|       |    // to the other overload of PrintStackIfFailed.
  196|   240k|    if (Failed(result)) {
  ------------------
  |  Branch (196:9): [True: 88, False: 240k]
  ------------------
  197|     88|      PrintStackIfFailedV(result, desc, {args...}, /*is_end=*/false);
  198|     88|    }
  199|   240k|  }
_ZN4wabt11TypeChecker18PrintStackIfFailedIJNS_4TypeES2_EEEvNS_6ResultEPKcDpT_:
  190|  59.3k|  void PrintStackIfFailed(Result result, const char* desc, Args... args) {
  191|       |    // Assert all args are Type or Type::Enum. If it's a TypeVector then
  192|       |    // PrintStackIfFailedV() should be used instead.
  193|  59.3k|    static_assert((std::is_constructible_v<Type, Args> && ...));
  194|       |    // Minor optimization, check result before constructing the vector to pass
  195|       |    // to the other overload of PrintStackIfFailed.
  196|  59.3k|    if (Failed(result)) {
  ------------------
  |  Branch (196:9): [True: 94, False: 59.2k]
  ------------------
  197|     94|      PrintStackIfFailedV(result, desc, {args...}, /*is_end=*/false);
  198|     94|    }
  199|  59.3k|  }
_ZN4wabt11TypeChecker18PrintStackIfFailedIJNS_4TypeES2_S2_EEEvNS_6ResultEPKcDpT_:
  190|    714|  void PrintStackIfFailed(Result result, const char* desc, Args... args) {
  191|       |    // Assert all args are Type or Type::Enum. If it's a TypeVector then
  192|       |    // PrintStackIfFailedV() should be used instead.
  193|    714|    static_assert((std::is_constructible_v<Type, Args> && ...));
  194|       |    // Minor optimization, check result before constructing the vector to pass
  195|       |    // to the other overload of PrintStackIfFailed.
  196|    714|    if (Failed(result)) {
  ------------------
  |  Branch (196:9): [True: 1, False: 713]
  ------------------
  197|      1|      PrintStackIfFailedV(result, desc, {args...}, /*is_end=*/false);
  198|      1|    }
  199|    714|  }
_ZN4wabt11TypeChecker18PrintStackIfFailedIJNS_4Type4EnumEEEEvNS_6ResultEPKcDpT_:
  190|  1.55k|  void PrintStackIfFailed(Result result, const char* desc, Args... args) {
  191|       |    // Assert all args are Type or Type::Enum. If it's a TypeVector then
  192|       |    // PrintStackIfFailedV() should be used instead.
  193|  1.55k|    static_assert((std::is_constructible_v<Type, Args> && ...));
  194|       |    // Minor optimization, check result before constructing the vector to pass
  195|       |    // to the other overload of PrintStackIfFailed.
  196|  1.55k|    if (Failed(result)) {
  ------------------
  |  Branch (196:9): [True: 2, False: 1.55k]
  ------------------
  197|      2|      PrintStackIfFailedV(result, desc, {args...}, /*is_end=*/false);
  198|      2|    }
  199|  1.55k|  }
_ZN4wabt11TypeChecker18PrintStackIfFailedIJNS_4TypeES2_NS2_4EnumEEEEvNS_6ResultEPKcDpT_:
  190|  1.62k|  void PrintStackIfFailed(Result result, const char* desc, Args... args) {
  191|       |    // Assert all args are Type or Type::Enum. If it's a TypeVector then
  192|       |    // PrintStackIfFailedV() should be used instead.
  193|  1.62k|    static_assert((std::is_constructible_v<Type, Args> && ...));
  194|       |    // Minor optimization, check result before constructing the vector to pass
  195|       |    // to the other overload of PrintStackIfFailed.
  196|  1.62k|    if (Failed(result)) {
  ------------------
  |  Branch (196:9): [True: 2, False: 1.61k]
  ------------------
  197|      2|      PrintStackIfFailedV(result, desc, {args...}, /*is_end=*/false);
  198|      2|    }
  199|  1.62k|  }

_ZN4wabt4TypeC2Ei:
   63|  93.8k|      : enum_(static_cast<Enum>(code)), type_index_(0) {
   64|  93.8k|    assert(!EnumIsReferenceWithIndex(enum_));
   65|  93.8k|  }
_ZN4wabt4TypeC2ENS0_4EnumE:
   66|   767k|  Type(Enum e) : enum_(e), type_index_(0) {
   67|   767k|    assert(!EnumIsReferenceWithIndex(enum_));
   68|   767k|  }
_ZN4wabt4TypeC2ENS0_4EnumEj:
   69|    342|  Type(Enum e, Index type_index) : enum_(e), type_index_(type_index) {
   70|    342|    assert(EnumIsReferenceWithIndex(e));
   71|    342|  }
_ZNK4wabt4TypecvNS0_4EnumEEv:
   72|  87.6k|  constexpr operator Enum() const { return enum_; }
_ZN4wabteqENS_4TypeES0_:
   74|   273k|  friend constexpr bool operator==(const Type a, const Type b) {
   75|   273k|    return a.enum_ == b.enum_ && a.type_index_ == b.type_index_;
  ------------------
  |  Branch (75:12): [True: 273k, False: 316]
  |  Branch (75:34): [True: 273k, False: 0]
  ------------------
   76|   273k|  }
_ZN4wabtneENS_4TypeES0_:
   77|   273k|  friend constexpr bool operator!=(const Type a, const Type b) {
   78|   273k|    return !(a == b);
   79|   273k|  }
_ZN4wabteqENS_4TypeENS0_4EnumE:
   80|  1.31M|  friend constexpr bool operator==(const Type ty, const Enum code) {
   81|  1.31M|    return ty.enum_ == code;
   82|  1.31M|  }
_ZN4wabtneENS_4TypeENS0_4EnumE:
   83|   445k|  friend constexpr bool operator!=(const Type ty, const Enum code) {
   84|   445k|    return !(ty == code);
   85|   445k|  }
_ZNK4wabt4Type5IsRefEv:
   91|   108k|  bool IsRef() const {
   92|   108k|    return enum_ == Type::ExternRef || enum_ == Type::FuncRef ||
  ------------------
  |  Branch (92:12): [True: 28.5k, False: 80.1k]
  |  Branch (92:40): [True: 5.35k, False: 74.8k]
  ------------------
   93|   108k|           enum_ == Type::Reference || enum_ == Type::ExnRef;
  ------------------
  |  Branch (93:12): [True: 16, False: 74.8k]
  |  Branch (93:40): [True: 0, False: 74.8k]
  ------------------
   94|   108k|  }
_ZNK4wabt4Type20IsReferenceWithIndexEv:
   96|  13.2k|  bool IsReferenceWithIndex() const { return EnumIsReferenceWithIndex(enum_); }
_ZNK4wabt4Type7GetNameEv:
  103|  1.29k|  std::string GetName() const {
  104|  1.29k|    switch (enum_) {
  105|    301|      case Type::I32:       return "i32";
  ------------------
  |  Branch (105:7): [True: 301, False: 998]
  ------------------
  106|    234|      case Type::I64:       return "i64";
  ------------------
  |  Branch (106:7): [True: 234, False: 1.06k]
  ------------------
  107|    237|      case Type::F32:       return "f32";
  ------------------
  |  Branch (107:7): [True: 237, False: 1.06k]
  ------------------
  108|     81|      case Type::F64:       return "f64";
  ------------------
  |  Branch (108:7): [True: 81, False: 1.21k]
  ------------------
  109|    274|      case Type::V128:      return "v128";
  ------------------
  |  Branch (109:7): [True: 274, False: 1.02k]
  ------------------
  110|      0|      case Type::I8:        return "i8";
  ------------------
  |  Branch (110:7): [True: 0, False: 1.29k]
  ------------------
  111|      0|      case Type::I16:       return "i16";
  ------------------
  |  Branch (111:7): [True: 0, False: 1.29k]
  ------------------
  112|      3|      case Type::ExnRef:    return "exnref";
  ------------------
  |  Branch (112:7): [True: 3, False: 1.29k]
  ------------------
  113|    128|      case Type::FuncRef:   return "funcref";
  ------------------
  |  Branch (113:7): [True: 128, False: 1.17k]
  ------------------
  114|      0|      case Type::Func:      return "func";
  ------------------
  |  Branch (114:7): [True: 0, False: 1.29k]
  ------------------
  115|      0|      case Type::Void:      return "void";
  ------------------
  |  Branch (115:7): [True: 0, False: 1.29k]
  ------------------
  116|      6|      case Type::Any:       return "any";
  ------------------
  |  Branch (116:7): [True: 6, False: 1.29k]
  ------------------
  117|     33|      case Type::ExternRef: return "externref";
  ------------------
  |  Branch (117:7): [True: 33, False: 1.26k]
  ------------------
  118|      2|      case Type::Reference:
  ------------------
  |  Branch (118:7): [True: 2, False: 1.29k]
  ------------------
  119|      2|        return StringPrintf("(ref %d)", type_index_);
  120|      0|      default:
  ------------------
  |  Branch (120:7): [True: 0, False: 1.29k]
  ------------------
  121|      0|        return StringPrintf("<type_index[%d]>", enum_);
  122|  1.29k|    }
  123|  1.29k|  }
_ZNK4wabt4Type7IsIndexEv:
  148|  55.2k|  bool IsIndex() const { return static_cast<int32_t>(enum_) >= 0; }
_ZNK4wabt4Type8GetIndexEv:
  150|  2.12k|  Index GetIndex() const {
  151|  2.12k|    assert(IsIndex());
  152|  2.12k|    return static_cast<Index>(enum_);
  153|  2.12k|  }
_ZNK4wabt4Type17GetReferenceIndexEv:
  155|      4|  Index GetReferenceIndex() const {
  156|      4|    assert(enum_ == Enum::Reference);
  157|      4|    return type_index_;
  158|      4|  }
_ZNK4wabt4Type15GetInlineVectorEv:
  160|  24.4k|  TypeVector GetInlineVector() const {
  161|  24.4k|    assert(!IsIndex());
  162|  24.4k|    switch (enum_) {
  163|  18.8k|      case Type::Void:
  ------------------
  |  Branch (163:7): [True: 18.8k, False: 5.61k]
  ------------------
  164|  18.8k|        return TypeVector();
  165|       |
  166|  4.11k|      case Type::I32:
  ------------------
  |  Branch (166:7): [True: 4.11k, False: 20.3k]
  ------------------
  167|  4.44k|      case Type::I64:
  ------------------
  |  Branch (167:7): [True: 326, False: 24.1k]
  ------------------
  168|  4.69k|      case Type::F32:
  ------------------
  |  Branch (168:7): [True: 252, False: 24.1k]
  ------------------
  169|  4.75k|      case Type::F64:
  ------------------
  |  Branch (169:7): [True: 57, False: 24.3k]
  ------------------
  170|  5.03k|      case Type::V128:
  ------------------
  |  Branch (170:7): [True: 285, False: 24.1k]
  ------------------
  171|  5.11k|      case Type::FuncRef:
  ------------------
  |  Branch (171:7): [True: 76, False: 24.3k]
  ------------------
  172|  5.11k|      case Type::ExnRef:
  ------------------
  |  Branch (172:7): [True: 1, False: 24.4k]
  ------------------
  173|  5.61k|      case Type::ExternRef:
  ------------------
  |  Branch (173:7): [True: 506, False: 23.9k]
  ------------------
  174|  5.61k|      case Type::Reference:
  ------------------
  |  Branch (174:7): [True: 0, False: 24.4k]
  ------------------
  175|  5.61k|        return TypeVector(this, this + 1);
  176|       |
  177|      0|      default:
  ------------------
  |  Branch (177:7): [True: 0, False: 24.4k]
  ------------------
  178|      0|        WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
  179|  24.4k|    }
  180|  24.4k|  }
_ZN4wabt4Type24EnumIsReferenceWithIndexENS0_4EnumE:
  183|   874k|  static bool EnumIsReferenceWithIndex(Enum value) {
  184|   874k|    return value == Type::Reference;
  185|   874k|  }

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

_ZN4wabt10ReadBinaryEPKvmPNS_20BinaryReaderDelegateERKNS_17ReadBinaryOptionsE:
 3137|  1.35k|                  const ReadBinaryOptions& options) {
 3138|  1.35k|  BinaryReader reader(data, size, delegate, options);
 3139|  1.35k|  return reader.ReadModule(
 3140|  1.35k|      BinaryReader::ReadModuleOptions{options.stop_on_first_error});
 3141|  1.35k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReaderC2EPKvmPNS_20BinaryReaderDelegateERKNS_17ReadBinaryOptionsE:
  224|  1.35k|    : read_end_(size),
  225|  1.35k|      state_(static_cast<const uint8_t*>(data), size),
  226|  1.35k|      logging_delegate_(options.log_stream, delegate),
  227|  1.35k|      delegate_(options.log_stream ? &logging_delegate_ : delegate),
  ------------------
  |  Branch (227:17): [True: 0, False: 1.35k]
  ------------------
  228|  1.35k|      options_(options),
  229|  1.35k|      last_known_section_(BinarySection::Invalid) {
  230|  1.35k|  delegate->OnSetState(&state_);
  231|  1.35k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadModuleERKNS1_17ReadModuleOptionsE:
 3093|  1.35k|Result BinaryReader::ReadModule(const ReadModuleOptions& options) {
 3094|  1.35k|  uint32_t magic = 0;
 3095|  1.35k|  CHECK_RESULT(ReadU32(&magic, "magic"));
  ------------------
  |  |   55|  1.35k|  do {                              \
  |  |   56|  1.35k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.35k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.35k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3096|  1.35k|  ERROR_UNLESS(magic == WABT_BINARY_MAGIC, "bad magic value");
  ------------------
  |  |   53|  1.35k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  1.35k|  do {                      \
  |  |  |  |   48|  1.35k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 51, False: 1.30k]
  |  |  |  |  ------------------
  |  |  |  |   49|     51|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     51|  do {                       \
  |  |  |  |  |  |   42|     51|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|     51|    return Result::Error;    \
  |  |  |  |  |  |   44|     51|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|     51|    }                       \
  |  |  |  |   51|  1.35k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3097|       |
 3098|  1.30k|  uint16_t version = 0, layer = 0;
 3099|  1.30k|  CHECK_RESULT(ReadU16(&version, "version"));
  ------------------
  |  |   55|  1.30k|  do {                              \
  |  |   56|  1.30k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.30k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.30k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3100|  1.30k|  CHECK_RESULT(ReadU16(&layer, "layer"));
  ------------------
  |  |   55|  1.30k|  do {                              \
  |  |   56|  1.30k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.30k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.30k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3101|       |
 3102|  1.30k|  switch (layer) {
 3103|  1.30k|    case WABT_BINARY_LAYER_MODULE:
  ------------------
  |  |   24|  1.30k|#define WABT_BINARY_LAYER_MODULE 0
  ------------------
  |  Branch (3103:5): [True: 1.30k, False: 0]
  ------------------
 3104|  1.30k|      ERROR_UNLESS(version == WABT_BINARY_VERSION,
  ------------------
  |  |   53|  1.30k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  1.30k|  do {                      \
  |  |  |  |   48|  1.30k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.30k]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|  1.30k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3105|  1.30k|                   "bad wasm file version: %#x (expected %#x)", version,
 3106|  1.30k|                   WABT_BINARY_VERSION);
 3107|  1.30k|      break;
 3108|  1.30k|    case WABT_BINARY_LAYER_COMPONENT:
  ------------------
  |  |   25|      0|#define WABT_BINARY_LAYER_COMPONENT 1
  ------------------
  |  Branch (3108:5): [True: 0, False: 1.30k]
  ------------------
 3109|      0|      ERROR("wasm components are not yet supported in this tool");
  ------------------
  |  |   41|      0|  do {                       \
  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |   43|      0|    return Result::Error;    \
  |  |   44|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3110|      0|      break;
 3111|      0|    default:
  ------------------
  |  Branch (3111:5): [True: 0, False: 1.30k]
  ------------------
 3112|      0|      ERROR("unsupported wasm layer: %#x", layer);
  ------------------
  |  |   41|      0|  do {                       \
  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |   43|      0|    return Result::Error;    \
  |  |   44|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3113|      0|      break;
 3114|  1.30k|  }
 3115|       |
 3116|  1.30k|  CALLBACK(BeginModule, version);
  ------------------
  |  |   66|  1.30k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.30k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.30k|  do {                      \
  |  |  |  |  |  |   48|  1.30k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.30k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  1.30k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.30k|               #member " callback failed")
  ------------------
 3117|  1.30k|  CHECK_RESULT(ReadSections(ReadSectionsOptions{options.stop_on_first_error}));
  ------------------
  |  |   55|  1.30k|  do {                              \
  |  |   56|  1.30k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.29k, False: 9]
  |  |  ------------------
  |  |   57|  1.29k|      return ::wabt::Result::Error; \
  |  |   58|  1.29k|    }                               \
  |  |   59|  1.30k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3118|       |  // This is checked in ReadCodeSection, but it must be checked at the end too,
 3119|       |  // in case the code section was omitted.
 3120|      9|  ERROR_UNLESS(num_function_signatures_ == num_function_bodies_,
  ------------------
  |  |   53|      9|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      9|  do {                      \
  |  |  |  |   48|      9|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 9]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|      9|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3121|      9|               "function signature count != function body count");
 3122|       |  // This is checked in ReadDataSection, but it must be checked at the end too,
 3123|       |  // in case the data section was omitted.
 3124|      9|  ERROR_IF(num_data_segments_ == 0 && data_count_ != kInvalidIndex &&
  ------------------
  |  |   47|      9|  do {                      \
  |  |   48|     36|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 9, False: 0]
  |  |  |  Branch (48:9): [True: 0, False: 9]
  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      0|  do {                       \
  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      0|    }                       \
  |  |   51|      9|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 3125|      9|               data_count_ != 0,
 3126|      9|           "Data section missing but DataCount non-zero");
 3127|      9|  CALLBACK0(EndModule);
  ------------------
  |  |   63|      9|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|      9|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      9|  do {                      \
  |  |  |  |  |  |   48|      9|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 9]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      9|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3128|       |
 3129|      9|  return Result::Ok;
 3130|      9|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadU32EPjPKc:
  313|  1.35k|Result BinaryReader::ReadU32(uint32_t* out_value, const char* desc) {
  314|  1.35k|  return ReadT(out_value, "uint32_t", desc);
  315|  1.35k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTIjEENS_6ResultEPT_PKcS7_:
  288|  20.2k|                           const char* desc) {
  289|  20.2k|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (289:7): [True: 0, False: 20.2k]
  ------------------
  290|      0|    PrintError("unable to read %s: %s", type_name, desc);
  291|      0|    return Result::Error;
  292|      0|  }
  293|       |#if WABT_BIG_ENDIAN
  294|       |  uint8_t tmp[sizeof(T)];
  295|       |  memcpy(tmp, state_.data + state_.offset, sizeof(tmp));
  296|       |  SwapBytesSized(tmp, sizeof(tmp));
  297|       |  memcpy(out_value, tmp, sizeof(T));
  298|       |#else
  299|  20.2k|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  300|  20.2k|#endif
  301|  20.2k|  state_.offset += sizeof(T);
  302|  20.2k|  return Result::Ok;
  303|  20.2k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10PrintErrorEPKcz:
  234|   922k|                                                       ...) {
  235|   922k|  ErrorLevel error_level =
  236|   922k|      reading_custom_section_ && !options_.fail_on_custom_section_error
  ------------------
  |  Branch (236:7): [True: 43.8k, False: 878k]
  |  Branch (236:34): [True: 43.8k, False: 0]
  ------------------
  237|   922k|          ? ErrorLevel::Warning
  238|   922k|          : ErrorLevel::Error;
  239|       |
  240|   922k|  WABT_SNPRINTF_ALLOCA(buffer, length, format);
  ------------------
  |  |   36|   922k|  va_list args;                                                            \
  |  |   37|   922k|  va_list args_copy;                                                       \
  |  |   38|   922k|  va_start(args, format);                                                  \
  |  |   39|   922k|  va_copy(args_copy, args);                                                \
  |  |   40|   922k|  char fixed_buf[WABT_DEFAULT_SNPRINTF_ALLOCA_BUFSIZE];                    \
  |  |   41|   922k|  char* buffer = fixed_buf;                                                \
  |  |   42|   922k|  size_t len = wabt_vsnprintf(fixed_buf, sizeof(fixed_buf), format, args); \
  |  |  ------------------
  |  |  |  |  288|   922k|#define wabt_vsnprintf vsnprintf
  |  |  ------------------
  |  |   43|   922k|  va_end(args);                                                            \
  |  |   44|   922k|  if (len + 1 > sizeof(fixed_buf)) {                                       \
  |  |  ------------------
  |  |  |  Branch (44:7): [True: 0, False: 922k]
  |  |  ------------------
  |  |   45|      0|    buffer = static_cast<char*>(alloca(len + 1));                          \
  |  |   46|      0|    len = wabt_vsnprintf(buffer, len + 1, format, args_copy);              \
  |  |  ------------------
  |  |  |  |  288|      0|#define wabt_vsnprintf vsnprintf
  |  |  ------------------
  |  |   47|      0|  }                                                                        \
  |  |   48|   922k|  va_end(args_copy)
  ------------------
  241|   922k|  Error error(error_level, Location(state_.offset), buffer);
  242|   922k|  bool handled = delegate_->OnError(error);
  243|       |
  244|   922k|  if (!handled) {
  ------------------
  |  Branch (244:7): [True: 0, False: 922k]
  ------------------
  245|       |    // Not great to just print, but we don't want to eat the error either.
  246|      0|    fprintf(stderr, "%07" PRIzx ": %s: %s\n", state_.offset,
  247|      0|            GetErrorLevelName(error_level), buffer);
  248|      0|  }
  249|   922k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadU16EPtPKc:
  309|  2.60k|Result BinaryReader::ReadU16(uint16_t* out_value, const char* desc) {
  310|  2.60k|  return ReadT(out_value, "uint16_t", desc);
  311|  2.60k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTItEENS_6ResultEPT_PKcS7_:
  288|  2.60k|                           const char* desc) {
  289|  2.60k|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (289:7): [True: 0, False: 2.60k]
  ------------------
  290|      0|    PrintError("unable to read %s: %s", type_name, desc);
  291|      0|    return Result::Error;
  292|      0|  }
  293|       |#if WABT_BIG_ENDIAN
  294|       |  uint8_t tmp[sizeof(T)];
  295|       |  memcpy(tmp, state_.data + state_.offset, sizeof(tmp));
  296|       |  SwapBytesSized(tmp, sizeof(tmp));
  297|       |  memcpy(out_value, tmp, sizeof(T));
  298|       |#else
  299|  2.60k|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  300|  2.60k|#endif
  301|  2.60k|  state_.offset += sizeof(T);
  302|  2.60k|  return Result::Ok;
  303|  2.60k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader12ReadSectionsERKNS1_19ReadSectionsOptionsE:
 2944|  1.30k|Result BinaryReader::ReadSections(const ReadSectionsOptions& options) {
 2945|  1.30k|  Result result = Result::Ok;
 2946|  1.30k|  Index section_index = 0;
 2947|  1.30k|  bool seen_section_code[static_cast<int>(BinarySection::Last) + 1] = {false};
 2948|       |
 2949|  1.06M|  for (; state_.offset < state_.size; ++section_index) {
  ------------------
  |  Branch (2949:10): [True: 1.06M, False: 526]
  ------------------
 2950|  1.06M|    uint8_t section_code;
 2951|  1.06M|    Offset section_size;
 2952|  1.06M|    CHECK_RESULT(ReadU8(&section_code, "section code"));
  ------------------
  |  |   55|  1.06M|  do {                              \
  |  |   56|  1.06M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.06M]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.06M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2953|  1.06M|    CHECK_RESULT(ReadOffset(&section_size, "section size"));
  ------------------
  |  |   55|  1.06M|  do {                              \
  |  |   56|  1.06M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 195, False: 1.06M]
  |  |  ------------------
  |  |   57|    195|      return ::wabt::Result::Error; \
  |  |   58|    195|    }                               \
  |  |   59|  1.06M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2954|  1.06M|    ReadEndRestoreGuard guard(this);
 2955|  1.06M|    read_end_ = state_.offset + section_size;
 2956|  1.06M|    if (section_code >= kBinarySectionCount) {
  ------------------
  |  Branch (2956:9): [True: 72.9k, False: 989k]
  ------------------
 2957|  72.9k|      PrintError("invalid section code: %u", section_code);
 2958|  72.9k|      if (options.stop_on_first_error) {
  ------------------
  |  Branch (2958:11): [True: 0, False: 72.9k]
  ------------------
 2959|      0|        return Result::Error;
 2960|      0|      }
 2961|       |      // If we don't have to stop on first error, continue reading
 2962|       |      // sections, because although we could not understand the
 2963|       |      // current section, we can continue and correctly parse
 2964|       |      // subsequent sections, so we can give back as much information
 2965|       |      // as we can understand.
 2966|  72.9k|      result = Result::Error;
 2967|  72.9k|      state_.offset = read_end_;
 2968|  72.9k|      continue;
 2969|  72.9k|    }
 2970|       |
 2971|   989k|    BinarySection section = static_cast<BinarySection>(section_code);
 2972|   989k|    if (section != BinarySection::Custom) {
  ------------------
  |  Branch (2972:9): [True: 5.25k, False: 984k]
  ------------------
 2973|  5.25k|      if (seen_section_code[section_code]) {
  ------------------
  |  Branch (2973:11): [True: 197, False: 5.05k]
  ------------------
 2974|    197|        PrintError("multiple %s sections", GetSectionName(section));
 2975|    197|        return Result::Error;
 2976|    197|      }
 2977|  5.05k|      seen_section_code[section_code] = true;
 2978|  5.05k|    }
 2979|       |
 2980|   989k|    ERROR_UNLESS(read_end_ <= state_.size,
  ------------------
  |  |   53|   989k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|   989k|  do {                      \
  |  |  |  |   48|   989k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 325, False: 988k]
  |  |  |  |  ------------------
  |  |  |  |   49|    325|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    325|  do {                       \
  |  |  |  |  |  |   42|    325|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|    325|    return Result::Error;    \
  |  |  |  |  |  |   44|    325|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|    325|    }                       \
  |  |  |  |   51|   989k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2981|   988k|                 "invalid section size: extends past end");
 2982|       |
 2983|   988k|    ERROR_UNLESS(
  ------------------
  |  |   53|   988k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|   988k|  do {                      \
  |  |  |  |   48|  3.51M|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 445k, False: 543k]
  |  |  |  |  |  Branch (48:9): [True: 539k, False: 3.87k]
  |  |  |  |  |  Branch (48:9): [True: 3.81k, False: 56]
  |  |  |  |  ------------------
  |  |  |  |   49|     56|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     56|  do {                       \
  |  |  |  |  |  |   42|     56|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|     56|    return Result::Error;    \
  |  |  |  |  |  |   44|     56|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|     56|    }                       \
  |  |  |  |   51|   988k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2984|   988k|        last_known_section_ == BinarySection::Invalid ||
 2985|   988k|            section == BinarySection::Custom ||
 2986|   988k|            GetSectionOrder(section) > GetSectionOrder(last_known_section_),
 2987|   988k|        "section %s out of order", GetSectionName(section));
 2988|       |
 2989|   988k|    ERROR_UNLESS(!did_read_names_section_ || section == BinarySection::Custom,
  ------------------
  |  |   53|   988k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|   988k|  do {                      \
  |  |  |  |   48|  1.97M|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 988k, False: 0]
  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|   988k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2990|   988k|                 "%s section can not occur after Name section",
 2991|   988k|                 GetSectionName(section));
 2992|       |
 2993|   988k|    CALLBACK(BeginSection, section_index, section, section_size);
  ------------------
  |  |   66|   988k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|   988k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   988k|  do {                      \
  |  |  |  |  |  |   48|   988k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 988k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|   988k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|   988k|               #member " callback failed")
  ------------------
 2994|       |
 2995|   988k|    bool stop_on_first_error = options_.stop_on_first_error;
 2996|   988k|    Result section_result = Result::Error;
 2997|   988k|    switch (section) {
  ------------------
  |  Branch (2997:13): [True: 0, False: 988k]
  ------------------
 2998|   983k|      case BinarySection::Custom:
  ------------------
  |  Branch (2998:7): [True: 983k, False: 4.95k]
  ------------------
 2999|   983k|        section_result = ReadCustomSection(section_index, section_size);
 3000|   983k|        if (options_.fail_on_custom_section_error) {
  ------------------
  |  Branch (3000:13): [True: 0, False: 983k]
  ------------------
 3001|      0|          result |= section_result;
 3002|   983k|        } else {
 3003|   983k|          stop_on_first_error = false;
 3004|   983k|        }
 3005|   983k|        break;
 3006|    931|      case BinarySection::Type:
  ------------------
  |  Branch (3006:7): [True: 931, False: 987k]
  ------------------
 3007|    931|        section_result = ReadTypeSection(section_size);
 3008|    931|        result |= section_result;
 3009|    931|        break;
 3010|    393|      case BinarySection::Import:
  ------------------
  |  Branch (3010:7): [True: 393, False: 988k]
  ------------------
 3011|    393|        section_result = ReadImportSection(section_size);
 3012|    393|        result |= section_result;
 3013|    393|        break;
 3014|    876|      case BinarySection::Function:
  ------------------
  |  Branch (3014:7): [True: 876, False: 987k]
  ------------------
 3015|    876|        section_result = ReadFunctionSection(section_size);
 3016|    876|        result |= section_result;
 3017|    876|        break;
 3018|    333|      case BinarySection::Table:
  ------------------
  |  Branch (3018:7): [True: 333, False: 988k]
  ------------------
 3019|    333|        section_result = ReadTableSection(section_size);
 3020|    333|        result |= section_result;
 3021|    333|        break;
 3022|    443|      case BinarySection::Memory:
  ------------------
  |  Branch (3022:7): [True: 443, False: 988k]
  ------------------
 3023|    443|        section_result = ReadMemorySection(section_size);
 3024|    443|        result |= section_result;
 3025|    443|        break;
 3026|    373|      case BinarySection::Global:
  ------------------
  |  Branch (3026:7): [True: 373, False: 988k]
  ------------------
 3027|    373|        section_result = ReadGlobalSection(section_size);
 3028|    373|        result |= section_result;
 3029|    373|        break;
 3030|    483|      case BinarySection::Export:
  ------------------
  |  Branch (3030:7): [True: 483, False: 988k]
  ------------------
 3031|    483|        section_result = ReadExportSection(section_size);
 3032|    483|        result |= section_result;
 3033|    483|        break;
 3034|     66|      case BinarySection::Start:
  ------------------
  |  Branch (3034:7): [True: 66, False: 988k]
  ------------------
 3035|     66|        section_result = ReadStartSection(section_size);
 3036|     66|        result |= section_result;
 3037|     66|        break;
 3038|    185|      case BinarySection::Elem:
  ------------------
  |  Branch (3038:7): [True: 185, False: 988k]
  ------------------
 3039|    185|        section_result = ReadElemSection(section_size);
 3040|    185|        result |= section_result;
 3041|    185|        break;
 3042|    703|      case BinarySection::Code:
  ------------------
  |  Branch (3042:7): [True: 703, False: 988k]
  ------------------
 3043|    703|        section_result = ReadCodeSection(section_size);
 3044|    703|        result |= section_result;
 3045|    703|        break;
 3046|     50|      case BinarySection::Data:
  ------------------
  |  Branch (3046:7): [True: 50, False: 988k]
  ------------------
 3047|     50|        section_result = ReadDataSection(section_size);
 3048|     50|        result |= section_result;
 3049|     50|        break;
 3050|      4|      case BinarySection::Tag:
  ------------------
  |  Branch (3050:7): [True: 4, False: 988k]
  ------------------
 3051|      4|        ERROR_UNLESS(options_.features.exceptions_enabled(),
  ------------------
  |  |   53|      4|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      4|  do {                      \
  |  |  |  |   48|      4|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 2, False: 2]
  |  |  |  |  ------------------
  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      2|    }                       \
  |  |  |  |   51|      4|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3052|      2|                     "invalid section code: %u",
 3053|      2|                     static_cast<unsigned int>(section));
 3054|      2|        section_result = ReadTagSection(section_size);
 3055|      2|        result |= section_result;
 3056|      2|        break;
 3057|    110|      case BinarySection::DataCount:
  ------------------
  |  Branch (3057:7): [True: 110, False: 988k]
  ------------------
 3058|    110|        ERROR_UNLESS(options_.features.bulk_memory_enabled(),
  ------------------
  |  |   53|    110|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|    110|  do {                      \
  |  |  |  |   48|    110|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 110]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|    110|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3059|    110|                     "invalid section code: %u",
 3060|    110|                     static_cast<unsigned int>(section));
 3061|    110|        section_result = ReadDataCountSection(section_size);
 3062|    110|        result |= section_result;
 3063|    110|        break;
 3064|      0|      case BinarySection::Invalid:
  ------------------
  |  Branch (3064:7): [True: 0, False: 988k]
  ------------------
 3065|      0|        WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
 3066|   988k|    }
 3067|       |
 3068|   988k|    if (Succeeded(section_result) && state_.offset != read_end_) {
  ------------------
  |  Branch (3068:9): [True: 173k, False: 815k]
  |  Branch (3068:38): [True: 33.7k, False: 140k]
  ------------------
 3069|  33.7k|      PrintError("unfinished section (expected end: 0x%" PRIzx ")", read_end_);
 3070|  33.7k|      section_result = Result::Error;
 3071|  33.7k|      result |= section_result;
 3072|  33.7k|    }
 3073|       |
 3074|   988k|    if (Failed(section_result)) {
  ------------------
  |  Branch (3074:9): [True: 848k, False: 140k]
  ------------------
 3075|   848k|      if (stop_on_first_error) {
  ------------------
  |  Branch (3075:11): [True: 0, False: 848k]
  ------------------
 3076|      0|        return Result::Error;
 3077|      0|      }
 3078|       |
 3079|       |      // If we're continuing after failing to read this section, move the
 3080|       |      // offset to the expected section end. This way we may be able to read
 3081|       |      // further sections.
 3082|   848k|      state_.offset = read_end_;
 3083|   848k|    }
 3084|       |
 3085|   988k|    if (section != BinarySection::Custom) {
  ------------------
  |  Branch (3085:9): [True: 4.94k, False: 983k]
  ------------------
 3086|  4.94k|      last_known_section_ = section;
 3087|  4.94k|    }
 3088|   988k|  }
 3089|       |
 3090|    526|  return result;
 3091|  1.30k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader6ReadU8EPhPKc:
  305|  1.88M|Result BinaryReader::ReadU8(uint8_t* out_value, const char* desc) {
  306|  1.88M|  return ReadT(out_value, "uint8_t", desc);
  307|  1.88M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTIhEENS_6ResultEPT_PKcS7_:
  288|  1.88M|                           const char* desc) {
  289|  1.88M|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (289:7): [True: 946, False: 1.88M]
  ------------------
  290|    946|    PrintError("unable to read %s: %s", type_name, desc);
  291|    946|    return Result::Error;
  292|    946|  }
  293|       |#if WABT_BIG_ENDIAN
  294|       |  uint8_t tmp[sizeof(T)];
  295|       |  memcpy(tmp, state_.data + state_.offset, sizeof(tmp));
  296|       |  SwapBytesSized(tmp, sizeof(tmp));
  297|       |  memcpy(out_value, tmp, sizeof(T));
  298|       |#else
  299|  1.88M|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  300|  1.88M|#endif
  301|  1.88M|  state_.offset += sizeof(T);
  302|  1.88M|  return Result::Ok;
  303|  1.88M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadOffsetEPmPKc:
  438|  1.13M|Result BinaryReader::ReadOffset(Offset* offset, const char* desc) {
  439|  1.13M|  uint32_t value;
  440|  1.13M|  CHECK_RESULT(ReadU32Leb128(&value, desc));
  ------------------
  |  |   55|  1.13M|  do {                              \
  |  |   56|  1.13M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 12.2k, False: 1.12M]
  |  |  ------------------
  |  |   57|  12.2k|      return ::wabt::Result::Error; \
  |  |   58|  12.2k|    }                               \
  |  |   59|  1.13M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  441|  1.12M|  *offset = value;
  442|  1.12M|  return Result::Ok;
  443|  1.13M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadU32Leb128EPjPKc:
  329|  2.93M|Result BinaryReader::ReadU32Leb128(uint32_t* out_value, const char* desc) {
  330|  2.93M|  const uint8_t* p = state_.data + state_.offset;
  331|  2.93M|  const uint8_t* end = state_.data + read_end_;
  332|  2.93M|  size_t bytes_read = wabt::ReadU32Leb128(p, end, out_value);
  333|  2.93M|  ERROR_UNLESS(bytes_read > 0, "unable to read u32 leb128: %s", desc);
  ------------------
  |  |   53|  2.93M|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  2.93M|  do {                      \
  |  |  |  |   48|  2.93M|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 766k, False: 2.16M]
  |  |  |  |  ------------------
  |  |  |  |   49|   766k|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|   766k|  do {                       \
  |  |  |  |  |  |   42|   766k|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|   766k|    return Result::Error;    \
  |  |  |  |  |  |   44|   766k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|   766k|    }                       \
  |  |  |  |   51|  2.93M|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  334|  2.16M|  state_.offset += bytes_read;
  335|  2.16M|  return Result::Ok;
  336|  2.93M|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardImXadL_ZNS1_9read_end_EEEEC2EPS1_:
   90|  1.10M|        : this_(this_), previous_value_(this_->*member) {}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadCustomSectionEjm:
 2483|   983k|                                       Offset section_size) {
 2484|   983k|  std::string_view section_name;
 2485|   983k|  CHECK_RESULT(ReadStr(&section_name, "section name"));
  ------------------
  |  |   55|   983k|  do {                              \
  |  |   56|   983k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 769k, False: 214k]
  |  |  ------------------
  |  |   57|   769k|      return ::wabt::Result::Error; \
  |  |   58|   769k|    }                               \
  |  |   59|   983k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2486|   214k|  CALLBACK(BeginCustomSection, section_index, section_size, section_name);
  ------------------
  |  |   66|   214k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|   214k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   214k|  do {                      \
  |  |  |  |  |  |   48|   214k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 214k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|   214k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|   214k|               #member " callback failed")
  ------------------
 2487|   214k|  ValueRestoreGuard<bool, &BinaryReader::reading_custom_section_> guard(this);
 2488|   214k|  reading_custom_section_ = true;
 2489|       |
 2490|   214k|  {
 2491|       |    // Backtrack parser when scope ends
 2492|   214k|    ValueRestoreGuard<BinaryReaderDelegate::State, &BinaryReader::state_> guard(
 2493|   214k|        this);
 2494|   214k|    CHECK_RESULT(ReadGenericCustomSection(section_name, section_size));
  ------------------
  |  |   55|   214k|  do {                              \
  |  |   56|   214k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 214k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|   214k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2495|   214k|  }
 2496|       |
 2497|   214k|  if (options_.read_debug_names && section_name == WABT_BINARY_SECTION_NAME) {
  ------------------
  |  |   38|      0|#define WABT_BINARY_SECTION_NAME "name"
  ------------------
  |  Branch (2497:7): [True: 0, False: 214k]
  |  Branch (2497:36): [True: 0, False: 0]
  ------------------
 2498|      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]
  |  |  ------------------
  ------------------
 2499|      0|    did_read_names_section_ = true;
 2500|   214k|  } else if (section_name == WABT_BINARY_SECTION_DYLINK0) {
  ------------------
  |  |   43|   214k|#define WABT_BINARY_SECTION_DYLINK0 "dylink.0"
  ------------------
  |  Branch (2500:14): [True: 23.2k, False: 191k]
  ------------------
 2501|  23.2k|    CHECK_RESULT(ReadDylink0Section(section_size));
  ------------------
  |  |   55|  23.2k|  do {                              \
  |  |   56|  23.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 21.8k, False: 1.42k]
  |  |  ------------------
  |  |   57|  21.8k|      return ::wabt::Result::Error; \
  |  |   58|  21.8k|    }                               \
  |  |   59|  23.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2502|   191k|  } else if (section_name == WABT_BINARY_SECTION_DYLINK) {
  ------------------
  |  |   42|   191k|#define WABT_BINARY_SECTION_DYLINK "dylink"
  ------------------
  |  Branch (2502:14): [True: 1.54k, False: 189k]
  ------------------
 2503|  1.54k|    CHECK_RESULT(ReadDylinkSection(section_size));
  ------------------
  |  |   55|  1.54k|  do {                              \
  |  |   56|  1.54k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 612, False: 930]
  |  |  ------------------
  |  |   57|    612|      return ::wabt::Result::Error; \
  |  |   58|    612|    }                               \
  |  |   59|  1.54k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2504|   189k|  } else if (section_name.rfind(WABT_BINARY_SECTION_RELOC, 0) == 0) {
  ------------------
  |  |   39|   189k|#define WABT_BINARY_SECTION_RELOC "reloc"
  ------------------
  |  Branch (2504:14): [True: 2.69k, False: 186k]
  ------------------
 2505|       |    // Reloc sections always begin with "reloc."
 2506|  2.69k|    CHECK_RESULT(ReadRelocSection(section_size));
  ------------------
  |  |   55|  2.69k|  do {                              \
  |  |   56|  2.69k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2.37k, False: 318]
  |  |  ------------------
  |  |   57|  2.37k|      return ::wabt::Result::Error; \
  |  |   58|  2.37k|    }                               \
  |  |   59|  2.69k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2507|   186k|  } else if (section_name == WABT_BINARY_SECTION_TARGET_FEATURES) {
  ------------------
  |  |   41|   186k|#define WABT_BINARY_SECTION_TARGET_FEATURES "target_features"
  ------------------
  |  Branch (2507:14): [True: 1.54k, False: 185k]
  ------------------
 2508|  1.54k|    CHECK_RESULT(ReadTargetFeaturesSections(section_size));
  ------------------
  |  |   55|  1.54k|  do {                              \
  |  |   56|  1.54k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.29k, False: 249]
  |  |  ------------------
  |  |   57|  1.29k|      return ::wabt::Result::Error; \
  |  |   58|  1.29k|    }                               \
  |  |   59|  1.54k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2509|   185k|  } else if (section_name == WABT_BINARY_SECTION_LINKING) {
  ------------------
  |  |   40|   185k|#define WABT_BINARY_SECTION_LINKING "linking"
  ------------------
  |  Branch (2509:14): [True: 8.22k, False: 177k]
  ------------------
 2510|  8.22k|    CHECK_RESULT(ReadLinkingSection(section_size));
  ------------------
  |  |   55|  8.22k|  do {                              \
  |  |   56|  8.22k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7.41k, False: 815]
  |  |  ------------------
  |  |   57|  7.41k|      return ::wabt::Result::Error; \
  |  |   58|  7.41k|    }                               \
  |  |   59|  8.22k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2511|   177k|  } else if (options_.features.code_metadata_enabled() &&
  ------------------
  |  Branch (2511:14): [True: 105k, False: 71.6k]
  ------------------
 2512|   177k|             section_name.find(WABT_BINARY_SECTION_CODE_METADATA) == 0) {
  ------------------
  |  |   44|   105k|#define WABT_BINARY_SECTION_CODE_METADATA "metadata.code."
  ------------------
  |  Branch (2512:14): [True: 43.7k, False: 61.6k]
  ------------------
 2513|  43.7k|    std::string_view metadata_name = section_name;
 2514|  43.7k|    metadata_name.remove_prefix(sizeof(WABT_BINARY_SECTION_CODE_METADATA) - 1);
  ------------------
  |  |   44|  43.7k|#define WABT_BINARY_SECTION_CODE_METADATA "metadata.code."
  ------------------
 2515|  43.7k|    CHECK_RESULT(ReadCodeMetadataSection(metadata_name, section_size));
  ------------------
  |  |   55|  43.7k|  do {                              \
  |  |   56|  43.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10.3k, False: 33.4k]
  |  |  ------------------
  |  |   57|  10.3k|      return ::wabt::Result::Error; \
  |  |   58|  10.3k|    }                               \
  |  |   59|  43.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2516|   133k|  } else {
 2517|       |    // Skip. This is a generic custom section, and is handled above.
 2518|   133k|    state_.offset = read_end_;
 2519|   133k|  }
 2520|   170k|  CALLBACK0(EndCustomSection);
  ------------------
  |  |   63|   170k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|   170k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   170k|  do {                      \
  |  |  |  |  |  |   48|   170k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 170k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|   170k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2521|   170k|  return Result::Ok;
 2522|   170k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadStrEPNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEPKc:
  394|  1.04M|Result BinaryReader::ReadStr(std::string_view* out_str, const char* desc) {
  395|  1.04M|  uint32_t str_len = 0;
  396|  1.04M|  CHECK_RESULT(ReadU32Leb128(&str_len, "string length"));
  ------------------
  |  |   55|  1.04M|  do {                              \
  |  |   56|  1.04M|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 744k, False: 297k]
  |  |  ------------------
  |  |   57|   744k|      return ::wabt::Result::Error; \
  |  |   58|   744k|    }                               \
  |  |   59|  1.04M|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  397|       |
  398|   297k|  ERROR_UNLESS(state_.offset + str_len <= read_end_,
  ------------------
  |  |   53|   297k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|   297k|  do {                      \
  |  |  |  |   48|   297k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 22.0k, False: 275k]
  |  |  |  |  ------------------
  |  |  |  |   49|  22.0k|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  22.0k|  do {                       \
  |  |  |  |  |  |   42|  22.0k|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|  22.0k|    return Result::Error;    \
  |  |  |  |  |  |   44|  22.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|  22.0k|    }                       \
  |  |  |  |   51|   297k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  399|   275k|               "unable to read string: %s", desc);
  400|       |
  401|   275k|  *out_str = std::string_view(
  402|   275k|      reinterpret_cast<const char*>(state_.data) + state_.offset, str_len);
  403|   275k|  state_.offset += str_len;
  404|       |
  405|   275k|  ERROR_UNLESS(IsValidUtf8(out_str->data(), out_str->length()),
  ------------------
  |  |   53|   275k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|   275k|  do {                      \
  |  |  |  |   48|   275k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 5.81k, False: 269k]
  |  |  |  |  ------------------
  |  |  |  |   49|  5.81k|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.81k|  do {                       \
  |  |  |  |  |  |   42|  5.81k|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|  5.81k|    return Result::Error;    \
  |  |  |  |  |  |   44|  5.81k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|  5.81k|    }                       \
  |  |  |  |   51|   275k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  406|   269k|               "invalid utf-8 encoding: %s", desc);
  407|   269k|  return Result::Ok;
  408|   275k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardIbXadL_ZNS1_23reading_custom_section_EEEEC2EPS1_:
   90|   214k|        : this_(this_), previous_value_(this_->*member) {}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardINS_20BinaryReaderDelegate5StateEXadL_ZNS1_6state_EEEEC2EPS1_:
   90|   214k|        : this_(this_), previous_value_(this_->*member) {}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader24ReadGenericCustomSectionENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEm:
 2258|   214k|                                              Offset section_size) {
 2259|   214k|  CALLBACK(BeginGenericCustomSection, section_size);
  ------------------
  |  |   66|   214k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|   214k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   214k|  do {                      \
  |  |  |  |  |  |   48|   214k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 214k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|   214k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|   214k|               #member " callback failed")
  ------------------
 2260|   214k|  const void* data;
 2261|   214k|  Offset custom_data_size = read_end_ - state_.offset;
 2262|   214k|  CHECK_RESULT(
  ------------------
  |  |   55|   214k|  do {                              \
  |  |   56|   214k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 214k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|   214k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2263|   214k|      ReadBytesWithSize(&data, custom_data_size, "custom section data"));
 2264|   214k|  CALLBACK(OnGenericCustomSection, name, data, custom_data_size);
  ------------------
  |  |   66|   214k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|   214k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   214k|  do {                      \
  |  |  |  |  |  |   48|   214k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 214k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|   214k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|   214k|               #member " callback failed")
  ------------------
 2265|   214k|  CALLBACK0(EndGenericCustomSection);
  ------------------
  |  |   63|   214k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|   214k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   214k|  do {                      \
  |  |  |  |  |  |   48|   214k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 214k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|   214k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2266|   214k|  return Result::Ok;
 2267|   214k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadBytesWithSizeEPPKvmPKc:
  422|   224k|                                       const char* desc) {
  423|   224k|  ERROR_UNLESS(state_.offset + size <= read_end_, "unable to read data: %s",
  ------------------
  |  |   53|   224k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|   224k|  do {                      \
  |  |  |  |   48|   224k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 1.11k, False: 223k]
  |  |  |  |  ------------------
  |  |  |  |   49|  1.11k|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  1.11k|  do {                       \
  |  |  |  |  |  |   42|  1.11k|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|  1.11k|    return Result::Error;    \
  |  |  |  |  |  |   44|  1.11k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|  1.11k|    }                       \
  |  |  |  |   51|   224k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  424|   223k|               desc);
  425|       |
  426|   223k|  *out_data = static_cast<const uint8_t*>(state_.data) + state_.offset;
  427|   223k|  state_.offset += size;
  428|   223k|  return Result::Ok;
  429|   224k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardINS_20BinaryReaderDelegate5StateEXadL_ZNS1_6state_EEEED2Ev:
   91|   214k|    ~ValueRestoreGuard() { this_->*member = previous_value_; }
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadCountEPjPKc:
  522|   272k|Result BinaryReader::ReadCount(Index* count, const char* desc) {
  523|   272k|  CHECK_RESULT(ReadIndex(count, desc));
  ------------------
  |  |   55|   272k|  do {                              \
  |  |   56|   272k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 951, False: 271k]
  |  |  ------------------
  |  |   57|    951|      return ::wabt::Result::Error; \
  |  |   58|    951|    }                               \
  |  |   59|   272k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  524|       |
  525|       |  // This check assumes that each item follows in this section, and takes at
  526|       |  // least 1 byte. It's possible that this check passes but reading fails
  527|       |  // later. It is still useful to check here, though, because it early-outs
  528|       |  // when an erroneous large count is used, before allocating memory for it.
  529|   271k|  size_t section_remaining = read_end_ - state_.offset;
  530|   271k|  if (*count > section_remaining) {
  ------------------
  |  Branch (530:7): [True: 1.46k, False: 269k]
  ------------------
  531|  1.46k|    PrintError("invalid %s %" PRIindex ", only %" PRIzd
  532|  1.46k|               " bytes left in section",
  533|  1.46k|               desc, *count, section_remaining);
  534|  1.46k|    return Result::Error;
  535|  1.46k|  }
  536|   269k|  return Result::Ok;
  537|   271k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadIndexEPjPKc:
  431|   392k|Result BinaryReader::ReadIndex(Index* index, const char* desc) {
  432|   392k|  uint32_t value;
  433|   392k|  CHECK_RESULT(ReadU32Leb128(&value, desc));
  ------------------
  |  |   55|   392k|  do {                              \
  |  |   56|   392k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.35k, False: 391k]
  |  |  ------------------
  |  |   57|  1.35k|      return ::wabt::Result::Error; \
  |  |   58|  1.35k|    }                               \
  |  |   59|   392k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  434|   391k|  *index = value;
  435|   391k|  return Result::Ok;
  436|   392k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13NumTotalFuncsEv:
  593|   104k|Index BinaryReader::NumTotalFuncs() {
  594|   104k|  return num_func_imports_ + num_function_signatures_;
  595|   104k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader18ReadDylink0SectionEm:
 2139|  23.2k|Result BinaryReader::ReadDylink0Section(Offset section_size) {
 2140|  23.2k|  CALLBACK(BeginDylinkSection, section_size);
  ------------------
  |  |   66|  23.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  23.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  23.2k|  do {                      \
  |  |  |  |  |  |   48|  23.2k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 23.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  23.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  23.2k|               #member " callback failed")
  ------------------
 2141|       |
 2142|  38.5k|  while (state_.offset < read_end_) {
  ------------------
  |  Branch (2142:10): [True: 37.1k, False: 1.42k]
  ------------------
 2143|  37.1k|    uint32_t dylink_type;
 2144|  37.1k|    Offset subsection_size;
 2145|  37.1k|    CHECK_RESULT(ReadU32Leb128(&dylink_type, "type"));
  ------------------
  |  |   55|  37.1k|  do {                              \
  |  |   56|  37.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 793, False: 36.3k]
  |  |  ------------------
  |  |   57|    793|      return ::wabt::Result::Error; \
  |  |   58|    793|    }                               \
  |  |   59|  37.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2146|  36.3k|    CHECK_RESULT(ReadOffset(&subsection_size, "subsection size"));
  ------------------
  |  |   55|  36.3k|  do {                              \
  |  |   56|  36.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11.2k, False: 25.0k]
  |  |  ------------------
  |  |   57|  11.2k|      return ::wabt::Result::Error; \
  |  |   58|  11.2k|    }                               \
  |  |   59|  36.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2147|  25.0k|    size_t subsection_end = state_.offset + subsection_size;
 2148|  25.0k|    ERROR_UNLESS(subsection_end <= read_end_,
  ------------------
  |  |   53|  25.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  25.0k|  do {                      \
  |  |  |  |   48|  25.0k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 242, False: 24.8k]
  |  |  |  |  ------------------
  |  |  |  |   49|    242|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    242|  do {                       \
  |  |  |  |  |  |   42|    242|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|    242|    return Result::Error;    \
  |  |  |  |  |  |   44|    242|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|    242|    }                       \
  |  |  |  |   51|  25.0k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2149|  24.8k|                 "invalid sub-section size: extends past end");
 2150|  24.8k|    ReadEndRestoreGuard guard(this);
 2151|  24.8k|    read_end_ = subsection_end;
 2152|       |
 2153|  24.8k|    uint32_t count;
 2154|  24.8k|    switch (static_cast<DylinkEntryType>(dylink_type)) {
 2155|  6.36k|      case DylinkEntryType::MemInfo: {
  ------------------
  |  Branch (2155:7): [True: 6.36k, False: 18.4k]
  ------------------
 2156|  6.36k|        uint32_t mem_size;
 2157|  6.36k|        uint32_t mem_align;
 2158|  6.36k|        uint32_t table_size;
 2159|  6.36k|        uint32_t table_align;
 2160|       |
 2161|  6.36k|        CHECK_RESULT(ReadU32Leb128(&mem_size, "mem_size"));
  ------------------
  |  |   55|  6.36k|  do {                              \
  |  |   56|  6.36k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 299, False: 6.06k]
  |  |  ------------------
  |  |   57|    299|      return ::wabt::Result::Error; \
  |  |   58|    299|    }                               \
  |  |   59|  6.36k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2162|  6.06k|        CHECK_RESULT(ReadU32Leb128(&mem_align, "mem_align"));
  ------------------
  |  |   55|  6.06k|  do {                              \
  |  |   56|  6.06k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 573, False: 5.49k]
  |  |  ------------------
  |  |   57|    573|      return ::wabt::Result::Error; \
  |  |   58|    573|    }                               \
  |  |   59|  6.06k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2163|  5.49k|        CHECK_RESULT(ReadU32Leb128(&table_size, "table_size"));
  ------------------
  |  |   55|  5.49k|  do {                              \
  |  |   56|  5.49k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 57, False: 5.43k]
  |  |  ------------------
  |  |   57|     57|      return ::wabt::Result::Error; \
  |  |   58|     57|    }                               \
  |  |   59|  5.49k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2164|  5.43k|        CHECK_RESULT(ReadU32Leb128(&table_align, "table_align"));
  ------------------
  |  |   55|  5.43k|  do {                              \
  |  |   56|  5.43k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 867, False: 4.56k]
  |  |  ------------------
  |  |   57|    867|      return ::wabt::Result::Error; \
  |  |   58|    867|    }                               \
  |  |   59|  5.43k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2165|  4.56k|        CALLBACK(OnDylinkInfo, mem_size, mem_align, table_size, table_align);
  ------------------
  |  |   66|  4.56k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  4.56k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  4.56k|  do {                      \
  |  |  |  |  |  |   48|  4.56k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 4.56k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  4.56k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  4.56k|               #member " callback failed")
  ------------------
 2166|  4.56k|        break;
 2167|  4.56k|      }
 2168|  4.56k|      case DylinkEntryType::Needed:
  ------------------
  |  Branch (2168:7): [True: 3.15k, False: 21.6k]
  ------------------
 2169|  3.15k|        CHECK_RESULT(ReadU32Leb128(&count, "needed_dynlibs"));
  ------------------
  |  |   55|  3.15k|  do {                              \
  |  |   56|  3.15k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 397, False: 2.76k]
  |  |  ------------------
  |  |   57|    397|      return ::wabt::Result::Error; \
  |  |   58|    397|    }                               \
  |  |   59|  3.15k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2170|  2.76k|        CALLBACK(OnDylinkNeededCount, count);
  ------------------
  |  |   66|  2.76k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.76k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.76k|  do {                      \
  |  |  |  |  |  |   48|  2.76k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.76k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.76k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.76k|               #member " callback failed")
  ------------------
 2171|  5.43k|        while (count--) {
  ------------------
  |  Branch (2171:16): [True: 3.16k, False: 2.26k]
  ------------------
 2172|  3.16k|          std::string_view so_name;
 2173|  3.16k|          CHECK_RESULT(ReadStr(&so_name, "dylib so_name"));
  ------------------
  |  |   55|  3.16k|  do {                              \
  |  |   56|  3.16k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 492, False: 2.67k]
  |  |  ------------------
  |  |   57|    492|      return ::wabt::Result::Error; \
  |  |   58|    492|    }                               \
  |  |   59|  3.16k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2174|  2.67k|          CALLBACK(OnDylinkNeeded, so_name);
  ------------------
  |  |   66|  2.67k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.67k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.67k|  do {                      \
  |  |  |  |  |  |   48|  2.67k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.67k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.67k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.67k|               #member " callback failed")
  ------------------
 2175|  2.67k|        }
 2176|  2.26k|        break;
 2177|  13.8k|      case DylinkEntryType::ImportInfo:
  ------------------
  |  Branch (2177:7): [True: 13.8k, False: 11.0k]
  ------------------
 2178|  13.8k|        CHECK_RESULT(ReadU32Leb128(&count, "count"));
  ------------------
  |  |   55|  13.8k|  do {                              \
  |  |   56|  13.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.02k, False: 12.7k]
  |  |  ------------------
  |  |   57|  1.02k|      return ::wabt::Result::Error; \
  |  |   58|  1.02k|    }                               \
  |  |   59|  13.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2179|  12.7k|        CALLBACK(OnDylinkImportCount, count);
  ------------------
  |  |   66|  12.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  12.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  12.7k|  do {                      \
  |  |  |  |  |  |   48|  12.7k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 12.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  12.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  12.7k|               #member " callback failed")
  ------------------
 2180|  24.4k|        for (Index i = 0; i < count; ++i) {
  ------------------
  |  Branch (2180:27): [True: 12.8k, False: 11.6k]
  ------------------
 2181|  12.8k|          uint32_t flags = 0;
 2182|  12.8k|          std::string_view module;
 2183|  12.8k|          std::string_view field;
 2184|  12.8k|          CHECK_RESULT(ReadStr(&module, "module"));
  ------------------
  |  |   55|  12.8k|  do {                              \
  |  |   56|  12.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 105, False: 12.7k]
  |  |  ------------------
  |  |   57|    105|      return ::wabt::Result::Error; \
  |  |   58|    105|    }                               \
  |  |   59|  12.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2185|  12.7k|          CHECK_RESULT(ReadStr(&field, "field"));
  ------------------
  |  |   55|  12.7k|  do {                              \
  |  |   56|  12.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 769, False: 11.9k]
  |  |  ------------------
  |  |   57|    769|      return ::wabt::Result::Error; \
  |  |   58|    769|    }                               \
  |  |   59|  12.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2186|  11.9k|          CHECK_RESULT(ReadU32Leb128(&flags, "flags"));
  ------------------
  |  |   55|  11.9k|  do {                              \
  |  |   56|  11.9k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 290, False: 11.6k]
  |  |  ------------------
  |  |   57|    290|      return ::wabt::Result::Error; \
  |  |   58|    290|    }                               \
  |  |   59|  11.9k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2187|  11.6k|          CALLBACK(OnDylinkImport, module, field, flags);
  ------------------
  |  |   66|  11.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  11.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  11.6k|  do {                      \
  |  |  |  |  |  |   48|  11.6k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 11.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  11.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  11.6k|               #member " callback failed")
  ------------------
 2188|  11.6k|        }
 2189|  11.6k|        break;
 2190|  11.6k|      case DylinkEntryType::ExportInfo:
  ------------------
  |  Branch (2190:7): [True: 546, False: 24.2k]
  ------------------
 2191|    546|        CHECK_RESULT(ReadU32Leb128(&count, "count"));
  ------------------
  |  |   55|    546|  do {                              \
  |  |   56|    546|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 194, False: 352]
  |  |  ------------------
  |  |   57|    194|      return ::wabt::Result::Error; \
  |  |   58|    194|    }                               \
  |  |   59|    546|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2192|    352|        CALLBACK(OnDylinkExportCount, count);
  ------------------
  |  |   66|    352|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    352|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    352|  do {                      \
  |  |  |  |  |  |   48|    352|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 352]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    352|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    352|               #member " callback failed")
  ------------------
 2193|    385|        for (Index i = 0; i < count; ++i) {
  ------------------
  |  Branch (2193:27): [True: 101, False: 284]
  ------------------
 2194|    101|          uint32_t flags = 0;
 2195|    101|          std::string_view name;
 2196|    101|          CHECK_RESULT(ReadStr(&name, "name"));
  ------------------
  |  |   55|    101|  do {                              \
  |  |   56|    101|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4, False: 97]
  |  |  ------------------
  |  |   57|      4|      return ::wabt::Result::Error; \
  |  |   58|      4|    }                               \
  |  |   59|    101|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2197|     97|          CHECK_RESULT(ReadU32Leb128(&flags, "flags"));
  ------------------
  |  |   55|     97|  do {                              \
  |  |   56|     97|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 64, False: 33]
  |  |  ------------------
  |  |   57|     64|      return ::wabt::Result::Error; \
  |  |   58|     64|    }                               \
  |  |   59|     97|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2198|     33|          CALLBACK(OnDylinkExport, name, flags);
  ------------------
  |  |   66|     33|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     33|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     33|  do {                      \
  |  |  |  |  |  |   48|     33|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 33]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     33|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     33|               #member " callback failed")
  ------------------
 2199|     33|        }
 2200|    284|        break;
 2201|    936|      default:
  ------------------
  |  Branch (2201:7): [True: 936, False: 23.8k]
  ------------------
 2202|       |        // Unknown subsection, skip it.
 2203|    936|        state_.offset = subsection_end;
 2204|    936|        break;
 2205|  24.8k|    }
 2206|  19.6k|    ERROR_UNLESS(state_.offset == subsection_end,
  ------------------
  |  |   53|  19.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  19.6k|  do {                      \
  |  |  |  |   48|  19.6k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 4.39k, False: 15.2k]
  |  |  |  |  ------------------
  |  |  |  |   49|  4.39k|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  4.39k|  do {                       \
  |  |  |  |  |  |   42|  4.39k|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|  4.39k|    return Result::Error;    \
  |  |  |  |  |  |   44|  4.39k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|  4.39k|    }                       \
  |  |  |  |   51|  19.6k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2207|  19.6k|                 "unfinished sub-section (expected end: 0x%" PRIzx ")",
 2208|  19.6k|                 subsection_end);
 2209|  19.6k|  }
 2210|       |
 2211|  1.42k|  CALLBACK0(EndDylinkSection);
  ------------------
  |  |   63|  1.42k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  1.42k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.42k|  do {                      \
  |  |  |  |  |  |   48|  1.42k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.42k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  1.42k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2212|  1.42k|  return Result::Ok;
 2213|  1.42k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadDylinkSectionEm:
 2215|  1.54k|Result BinaryReader::ReadDylinkSection(Offset section_size) {
 2216|  1.54k|  CALLBACK(BeginDylinkSection, section_size);
  ------------------
  |  |   66|  1.54k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.54k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.54k|  do {                      \
  |  |  |  |  |  |   48|  1.54k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.54k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  1.54k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.54k|               #member " callback failed")
  ------------------
 2217|  1.54k|  uint32_t mem_size;
 2218|  1.54k|  uint32_t mem_align;
 2219|  1.54k|  uint32_t table_size;
 2220|  1.54k|  uint32_t table_align;
 2221|       |
 2222|  1.54k|  CHECK_RESULT(ReadU32Leb128(&mem_size, "mem_size"));
  ------------------
  |  |   55|  1.54k|  do {                              \
  |  |   56|  1.54k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.54k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.54k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2223|  1.54k|  CHECK_RESULT(ReadU32Leb128(&mem_align, "mem_align"));
  ------------------
  |  |   55|  1.54k|  do {                              \
  |  |   56|  1.54k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.54k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.54k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2224|  1.54k|  CHECK_RESULT(ReadU32Leb128(&table_size, "table_size"));
  ------------------
  |  |   55|  1.54k|  do {                              \
  |  |   56|  1.54k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 36, False: 1.50k]
  |  |  ------------------
  |  |   57|     36|      return ::wabt::Result::Error; \
  |  |   58|     36|    }                               \
  |  |   59|  1.54k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2225|  1.50k|  CHECK_RESULT(ReadU32Leb128(&table_align, "table_align"));
  ------------------
  |  |   55|  1.50k|  do {                              \
  |  |   56|  1.50k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 137, False: 1.36k]
  |  |  ------------------
  |  |   57|    137|      return ::wabt::Result::Error; \
  |  |   58|    137|    }                               \
  |  |   59|  1.50k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2226|  1.36k|  CALLBACK(OnDylinkInfo, mem_size, mem_align, table_size, table_align);
  ------------------
  |  |   66|  1.36k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.36k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.36k|  do {                      \
  |  |  |  |  |  |   48|  1.36k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.36k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  1.36k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.36k|               #member " callback failed")
  ------------------
 2227|       |
 2228|  1.36k|  uint32_t count;
 2229|  1.36k|  CHECK_RESULT(ReadU32Leb128(&count, "needed_dynlibs"));
  ------------------
  |  |   55|  1.36k|  do {                              \
  |  |   56|  1.36k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 165, False: 1.20k]
  |  |  ------------------
  |  |   57|    165|      return ::wabt::Result::Error; \
  |  |   58|    165|    }                               \
  |  |   59|  1.36k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2230|  1.20k|  CALLBACK(OnDylinkNeededCount, count);
  ------------------
  |  |   66|  1.20k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.20k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.20k|  do {                      \
  |  |  |  |  |  |   48|  1.20k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.20k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  1.20k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.20k|               #member " callback failed")
  ------------------
 2231|  1.46k|  while (count--) {
  ------------------
  |  Branch (2231:10): [True: 533, False: 930]
  ------------------
 2232|    533|    std::string_view so_name;
 2233|    533|    CHECK_RESULT(ReadStr(&so_name, "dylib so_name"));
  ------------------
  |  |   55|    533|  do {                              \
  |  |   56|    533|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 274, False: 259]
  |  |  ------------------
  |  |   57|    274|      return ::wabt::Result::Error; \
  |  |   58|    274|    }                               \
  |  |   59|    533|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2234|    259|    CALLBACK(OnDylinkNeeded, so_name);
  ------------------
  |  |   66|    259|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    259|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    259|  do {                      \
  |  |  |  |  |  |   48|    259|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 259]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    259|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    259|               #member " callback failed")
  ------------------
 2235|    259|  }
 2236|       |
 2237|    930|  CALLBACK0(EndDylinkSection);
  ------------------
  |  |   63|    930|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    930|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    930|  do {                      \
  |  |  |  |  |  |   48|    930|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 930]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    930|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2238|    930|  return Result::Ok;
 2239|    930|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadRelocSectionEm:
 2081|  2.69k|Result BinaryReader::ReadRelocSection(Offset section_size) {
 2082|  2.69k|  CALLBACK(BeginRelocSection, section_size);
  ------------------
  |  |   66|  2.69k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.69k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.69k|  do {                      \
  |  |  |  |  |  |   48|  2.69k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.69k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.69k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.69k|               #member " callback failed")
  ------------------
 2083|  2.69k|  uint32_t section_index;
 2084|  2.69k|  CHECK_RESULT(ReadU32Leb128(&section_index, "section index"));
  ------------------
  |  |   55|  2.69k|  do {                              \
  |  |   56|  2.69k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 129, False: 2.56k]
  |  |  ------------------
  |  |   57|    129|      return ::wabt::Result::Error; \
  |  |   58|    129|    }                               \
  |  |   59|  2.69k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2085|  2.56k|  Index num_relocs;
 2086|  2.56k|  CHECK_RESULT(ReadCount(&num_relocs, "relocation count"));
  ------------------
  |  |   55|  2.56k|  do {                              \
  |  |   56|  2.56k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 157, False: 2.40k]
  |  |  ------------------
  |  |   57|    157|      return ::wabt::Result::Error; \
  |  |   58|    157|    }                               \
  |  |   59|  2.56k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2087|  2.40k|  CALLBACK(OnRelocCount, num_relocs, section_index);
  ------------------
  |  |   66|  2.40k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.40k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.40k|  do {                      \
  |  |  |  |  |  |   48|  2.40k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.40k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.40k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.40k|               #member " callback failed")
  ------------------
 2088|  9.72k|  for (Index i = 0; i < num_relocs; ++i) {
  ------------------
  |  Branch (2088:21): [True: 9.40k, False: 318]
  ------------------
 2089|  9.40k|    Offset offset;
 2090|  9.40k|    Index index;
 2091|  9.40k|    uint32_t reloc_type, addend = 0;
 2092|  9.40k|    CHECK_RESULT(ReadU32Leb128(&reloc_type, "relocation type"));
  ------------------
  |  |   55|  9.40k|  do {                              \
  |  |   56|  9.40k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 174, False: 9.23k]
  |  |  ------------------
  |  |   57|    174|      return ::wabt::Result::Error; \
  |  |   58|    174|    }                               \
  |  |   59|  9.40k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2093|  9.23k|    CHECK_RESULT(ReadOffset(&offset, "offset"));
  ------------------
  |  |   55|  9.23k|  do {                              \
  |  |   56|  9.23k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 539, False: 8.69k]
  |  |  ------------------
  |  |   57|    539|      return ::wabt::Result::Error; \
  |  |   58|    539|    }                               \
  |  |   59|  9.23k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2094|  8.69k|    CHECK_RESULT(ReadIndex(&index, "index"));
  ------------------
  |  |   55|  8.69k|  do {                              \
  |  |   56|  8.69k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 387, False: 8.30k]
  |  |  ------------------
  |  |   57|    387|      return ::wabt::Result::Error; \
  |  |   58|    387|    }                               \
  |  |   59|  8.69k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2095|  8.30k|    RelocType type = static_cast<RelocType>(reloc_type);
 2096|  8.30k|    switch (type) {
 2097|     32|      case RelocType::MemoryAddressLEB:
  ------------------
  |  Branch (2097:7): [True: 32, False: 8.27k]
  ------------------
 2098|    669|      case RelocType::MemoryAddressLEB64:
  ------------------
  |  Branch (2098:7): [True: 637, False: 7.67k]
  ------------------
 2099|  1.32k|      case RelocType::MemoryAddressSLEB:
  ------------------
  |  Branch (2099:7): [True: 651, False: 7.65k]
  ------------------
 2100|  2.19k|      case RelocType::MemoryAddressSLEB64:
  ------------------
  |  Branch (2100:7): [True: 872, False: 7.43k]
  ------------------
 2101|  2.55k|      case RelocType::MemoryAddressRelSLEB:
  ------------------
  |  Branch (2101:7): [True: 363, False: 7.94k]
  ------------------
 2102|  3.01k|      case RelocType::MemoryAddressRelSLEB64:
  ------------------
  |  Branch (2102:7): [True: 456, False: 7.85k]
  ------------------
 2103|  4.08k|      case RelocType::MemoryAddressI32:
  ------------------
  |  Branch (2103:7): [True: 1.07k, False: 7.23k]
  ------------------
 2104|  4.45k|      case RelocType::MemoryAddressI64:
  ------------------
  |  Branch (2104:7): [True: 365, False: 7.94k]
  ------------------
 2105|  4.46k|      case RelocType::MemoryAddressLocRelI32:
  ------------------
  |  Branch (2105:7): [True: 15, False: 8.29k]
  ------------------
 2106|  4.54k|      case RelocType::FunctionOffsetI32:
  ------------------
  |  Branch (2106:7): [True: 79, False: 8.22k]
  ------------------
 2107|  4.54k|      case RelocType::FunctionOffsetI64:
  ------------------
  |  Branch (2107:7): [True: 0, False: 8.30k]
  ------------------
 2108|  5.48k|      case RelocType::SectionOffsetI32:
  ------------------
  |  Branch (2108:7): [True: 933, False: 7.37k]
  ------------------
 2109|  5.73k|      case RelocType::MemoryAddressTLSSLEB:
  ------------------
  |  Branch (2109:7): [True: 258, False: 8.05k]
  ------------------
 2110|  5.74k|      case RelocType::MemoryAddressTLSSLEB64:
  ------------------
  |  Branch (2110:7): [True: 1, False: 8.30k]
  ------------------
 2111|  5.74k|        CHECK_RESULT(ReadS32Leb128(&addend, "addend"));
  ------------------
  |  |   55|  5.74k|  do {                              \
  |  |   56|  5.74k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 440, False: 5.30k]
  |  |  ------------------
  |  |   57|    440|      return ::wabt::Result::Error; \
  |  |   58|    440|    }                               \
  |  |   59|  5.74k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2112|  5.30k|        break;
 2113|       |
 2114|  5.30k|      case RelocType::FuncIndexLEB:
  ------------------
  |  Branch (2114:7): [True: 948, False: 7.36k]
  ------------------
 2115|    984|      case RelocType::FuncIndexI32:
  ------------------
  |  Branch (2115:7): [True: 36, False: 8.27k]
  ------------------
 2116|  1.19k|      case RelocType::TableIndexSLEB:
  ------------------
  |  Branch (2116:7): [True: 215, False: 8.09k]
  ------------------
 2117|  1.21k|      case RelocType::TableIndexSLEB64:
  ------------------
  |  Branch (2117:7): [True: 18, False: 8.29k]
  ------------------
 2118|  1.41k|      case RelocType::TableIndexI32:
  ------------------
  |  Branch (2118:7): [True: 198, False: 8.11k]
  ------------------
 2119|  1.45k|      case RelocType::TableIndexI64:
  ------------------
  |  Branch (2119:7): [True: 41, False: 8.26k]
  ------------------
 2120|  1.45k|      case RelocType::TypeIndexLEB:
  ------------------
  |  Branch (2120:7): [True: 2, False: 8.30k]
  ------------------
 2121|  1.45k|      case RelocType::GlobalIndexLEB:
  ------------------
  |  Branch (2121:7): [True: 0, False: 8.30k]
  ------------------
 2122|  1.45k|      case RelocType::GlobalIndexI32:
  ------------------
  |  Branch (2122:7): [True: 0, False: 8.30k]
  ------------------
 2123|  1.75k|      case RelocType::TagIndexLEB:
  ------------------
  |  Branch (2123:7): [True: 294, False: 8.01k]
  ------------------
 2124|  1.75k|      case RelocType::TableIndexRelSLEB:
  ------------------
  |  Branch (2124:7): [True: 0, False: 8.30k]
  ------------------
 2125|  1.88k|      case RelocType::TableIndexRelSLEB64:
  ------------------
  |  Branch (2125:7): [True: 134, False: 8.17k]
  ------------------
 2126|  2.01k|      case RelocType::TableNumberLEB:
  ------------------
  |  Branch (2126:7): [True: 131, False: 8.17k]
  ------------------
 2127|  2.01k|        break;
 2128|       |
 2129|    551|      default:
  ------------------
  |  Branch (2129:7): [True: 551, False: 7.75k]
  ------------------
 2130|    551|        PrintError("unknown reloc type: %s", GetRelocTypeName(type));
 2131|    551|        return Result::Error;
 2132|  8.30k|    }
 2133|  7.31k|    CALLBACK(OnReloc, type, offset, index, addend);
  ------------------
  |  |   66|  7.31k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  7.31k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  7.31k|  do {                      \
  |  |  |  |  |  |   48|  7.31k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 7.31k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  7.31k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  7.31k|               #member " callback failed")
  ------------------
 2134|  7.31k|  }
 2135|    318|  CALLBACK0(EndRelocSection);
  ------------------
  |  |   63|    318|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    318|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    318|  do {                      \
  |  |  |  |  |  |   48|    318|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 318]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    318|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2136|    318|  return Result::Ok;
 2137|    318|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadS32Leb128EPjPKc:
  347|   133k|Result BinaryReader::ReadS32Leb128(uint32_t* out_value, const char* desc) {
  348|   133k|  const uint8_t* p = state_.data + state_.offset;
  349|   133k|  const uint8_t* end = state_.data + read_end_;
  350|   133k|  size_t bytes_read = wabt::ReadS32Leb128(p, end, out_value);
  351|   133k|  ERROR_UNLESS(bytes_read > 0, "unable to read i32 leb128: %s", desc);
  ------------------
  |  |   53|   133k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|   133k|  do {                      \
  |  |  |  |   48|   133k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 480, False: 132k]
  |  |  |  |  ------------------
  |  |  |  |   49|    480|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    480|  do {                       \
  |  |  |  |  |  |   42|    480|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|    480|    return Result::Error;    \
  |  |  |  |  |  |   44|    480|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|    480|    }                       \
  |  |  |  |   51|   133k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  352|   132k|  state_.offset += bytes_read;
  353|   132k|  return Result::Ok;
  354|   133k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader26ReadTargetFeaturesSectionsEm:
 2241|  1.54k|Result BinaryReader::ReadTargetFeaturesSections(Offset section_size) {
 2242|  1.54k|  CALLBACK(BeginTargetFeaturesSection, section_size);
  ------------------
  |  |   66|  1.54k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.54k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.54k|  do {                      \
  |  |  |  |  |  |   48|  1.54k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.54k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  1.54k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.54k|               #member " callback failed")
  ------------------
 2243|  1.54k|  uint32_t count;
 2244|  1.54k|  CHECK_RESULT(ReadU32Leb128(&count, "sym count"));
  ------------------
  |  |   55|  1.54k|  do {                              \
  |  |   56|  1.54k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 190, False: 1.35k]
  |  |  ------------------
  |  |   57|    190|      return ::wabt::Result::Error; \
  |  |   58|    190|    }                               \
  |  |   59|  1.54k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2245|  1.35k|  CALLBACK(OnFeatureCount, count);
  ------------------
  |  |   66|  1.35k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.35k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.35k|  do {                      \
  |  |  |  |  |  |   48|  1.35k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.35k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  1.35k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.35k|               #member " callback failed")
  ------------------
 2246|  4.67k|  while (count--) {
  ------------------
  |  Branch (2246:10): [True: 4.42k, False: 249]
  ------------------
 2247|  4.42k|    uint8_t prefix;
 2248|  4.42k|    std::string_view name;
 2249|  4.42k|    CHECK_RESULT(ReadU8(&prefix, "prefix"));
  ------------------
  |  |   55|  4.42k|  do {                              \
  |  |   56|  4.42k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 924, False: 3.50k]
  |  |  ------------------
  |  |   57|    924|      return ::wabt::Result::Error; \
  |  |   58|    924|    }                               \
  |  |   59|  4.42k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2250|  3.50k|    CHECK_RESULT(ReadStr(&name, "feature name"));
  ------------------
  |  |   55|  3.50k|  do {                              \
  |  |   56|  3.50k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 178, False: 3.32k]
  |  |  ------------------
  |  |   57|    178|      return ::wabt::Result::Error; \
  |  |   58|    178|    }                               \
  |  |   59|  3.50k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2251|  3.32k|    CALLBACK(OnFeature, prefix, name);
  ------------------
  |  |   66|  3.32k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.32k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.32k|  do {                      \
  |  |  |  |  |  |   48|  3.32k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3.32k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  3.32k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.32k|               #member " callback failed")
  ------------------
 2252|  3.32k|  }
 2253|    249|  CALLBACK0(EndTargetFeaturesSection);
  ------------------
  |  |   63|    249|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    249|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    249|  do {                      \
  |  |  |  |  |  |   48|    249|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 249]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    249|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2254|    249|  return Result::Ok;
 2255|    249|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader18ReadLinkingSectionEm:
 2269|  8.22k|Result BinaryReader::ReadLinkingSection(Offset section_size) {
 2270|  8.22k|  CALLBACK(BeginLinkingSection, section_size);
  ------------------
  |  |   66|  8.22k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  8.22k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  8.22k|  do {                      \
  |  |  |  |  |  |   48|  8.22k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 8.22k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  8.22k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  8.22k|               #member " callback failed")
  ------------------
 2271|  8.22k|  uint32_t version;
 2272|  8.22k|  CHECK_RESULT(ReadU32Leb128(&version, "version"));
  ------------------
  |  |   55|  8.22k|  do {                              \
  |  |   56|  8.22k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 311, False: 7.91k]
  |  |  ------------------
  |  |   57|    311|      return ::wabt::Result::Error; \
  |  |   58|    311|    }                               \
  |  |   59|  8.22k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2273|  7.91k|  ERROR_UNLESS(version == 2, "invalid linking metadata version: %u", version);
  ------------------
  |  |   53|  7.91k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  7.91k|  do {                      \
  |  |  |  |   48|  7.91k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 55, False: 7.86k]
  |  |  |  |  ------------------
  |  |  |  |   49|     55|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     55|  do {                       \
  |  |  |  |  |  |   42|     55|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|     55|    return Result::Error;    \
  |  |  |  |  |  |   44|     55|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|     55|    }                       \
  |  |  |  |   51|  7.91k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2274|  17.2k|  while (state_.offset < read_end_) {
  ------------------
  |  Branch (2274:10): [True: 16.4k, False: 815]
  ------------------
 2275|  16.4k|    uint32_t linking_type;
 2276|  16.4k|    Offset subsection_size;
 2277|  16.4k|    CHECK_RESULT(ReadU32Leb128(&linking_type, "type"));
  ------------------
  |  |   55|  16.4k|  do {                              \
  |  |   56|  16.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 32, False: 16.3k]
  |  |  ------------------
  |  |   57|     32|      return ::wabt::Result::Error; \
  |  |   58|     32|    }                               \
  |  |   59|  16.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2278|  16.3k|    CHECK_RESULT(ReadOffset(&subsection_size, "subsection size"));
  ------------------
  |  |   55|  16.3k|  do {                              \
  |  |   56|  16.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 210, False: 16.1k]
  |  |  ------------------
  |  |   57|    210|      return ::wabt::Result::Error; \
  |  |   58|    210|    }                               \
  |  |   59|  16.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2279|  16.1k|    size_t subsection_end = state_.offset + subsection_size;
 2280|  16.1k|    ERROR_UNLESS(subsection_end <= read_end_,
  ------------------
  |  |   53|  16.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  16.1k|  do {                      \
  |  |  |  |   48|  16.1k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 657, False: 15.5k]
  |  |  |  |  ------------------
  |  |  |  |   49|    657|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    657|  do {                       \
  |  |  |  |  |  |   42|    657|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|    657|    return Result::Error;    \
  |  |  |  |  |  |   44|    657|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|    657|    }                       \
  |  |  |  |   51|  16.1k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2281|  15.5k|                 "invalid sub-section size: extends past end");
 2282|  15.5k|    ReadEndRestoreGuard guard(this);
 2283|  15.5k|    read_end_ = subsection_end;
 2284|       |
 2285|  15.5k|    uint32_t count;
 2286|  15.5k|    switch (static_cast<LinkingEntryType>(linking_type)) {
 2287|  2.97k|      case LinkingEntryType::SymbolTable:
  ------------------
  |  Branch (2287:7): [True: 2.97k, False: 12.5k]
  ------------------
 2288|  2.97k|        CHECK_RESULT(ReadU32Leb128(&count, "sym count"));
  ------------------
  |  |   55|  2.97k|  do {                              \
  |  |   56|  2.97k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 34, False: 2.94k]
  |  |  ------------------
  |  |   57|     34|      return ::wabt::Result::Error; \
  |  |   58|     34|    }                               \
  |  |   59|  2.97k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2289|  2.94k|        CALLBACK(OnSymbolCount, count);
  ------------------
  |  |   66|  2.94k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.94k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.94k|  do {                      \
  |  |  |  |  |  |   48|  2.94k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.94k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.94k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.94k|               #member " callback failed")
  ------------------
 2290|  7.42k|        for (Index i = 0; i < count; ++i) {
  ------------------
  |  Branch (2290:27): [True: 6.02k, False: 1.40k]
  ------------------
 2291|  6.02k|          std::string_view name;
 2292|  6.02k|          uint32_t flags = 0;
 2293|  6.02k|          uint32_t kind = 0;
 2294|  6.02k|          CHECK_RESULT(ReadU32Leb128(&kind, "sym type"));
  ------------------
  |  |   55|  6.02k|  do {                              \
  |  |   56|  6.02k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 284, False: 5.74k]
  |  |  ------------------
  |  |   57|    284|      return ::wabt::Result::Error; \
  |  |   58|    284|    }                               \
  |  |   59|  6.02k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2295|  5.74k|          CHECK_RESULT(ReadU32Leb128(&flags, "sym flags"));
  ------------------
  |  |   55|  5.74k|  do {                              \
  |  |   56|  5.74k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 44, False: 5.69k]
  |  |  ------------------
  |  |   57|     44|      return ::wabt::Result::Error; \
  |  |   58|     44|    }                               \
  |  |   59|  5.74k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2296|  5.69k|          SymbolType sym_type = static_cast<SymbolType>(kind);
 2297|  5.69k|          switch (sym_type) {
  ------------------
  |  Branch (2297:19): [True: 2.23k, False: 3.46k]
  ------------------
 2298|    814|            case SymbolType::Function:
  ------------------
  |  Branch (2298:13): [True: 814, False: 4.88k]
  ------------------
 2299|    870|            case SymbolType::Global:
  ------------------
  |  Branch (2299:13): [True: 56, False: 5.64k]
  ------------------
 2300|  1.00k|            case SymbolType::Tag:
  ------------------
  |  Branch (2300:13): [True: 139, False: 5.55k]
  ------------------
 2301|  2.18k|            case SymbolType::Table: {
  ------------------
  |  Branch (2301:13): [True: 1.17k, False: 4.51k]
  ------------------
 2302|  2.18k|              uint32_t index = 0;
 2303|  2.18k|              CHECK_RESULT(ReadU32Leb128(&index, "index"));
  ------------------
  |  |   55|  2.18k|  do {                              \
  |  |   56|  2.18k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 580, False: 1.60k]
  |  |  ------------------
  |  |   57|    580|      return ::wabt::Result::Error; \
  |  |   58|    580|    }                               \
  |  |   59|  2.18k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2304|  1.60k|              if ((flags & WABT_SYMBOL_FLAG_UNDEFINED) == 0 ||
  ------------------
  |  |  342|  1.60k|#define WABT_SYMBOL_FLAG_UNDEFINED 0x10
  ------------------
  |  Branch (2304:19): [True: 865, False: 742]
  ------------------
 2305|  1.60k|                  (flags & WABT_SYMBOL_FLAG_EXPLICIT_NAME) != 0)
  ------------------
  |  |  344|    742|#define WABT_SYMBOL_FLAG_EXPLICIT_NAME 0x40
  ------------------
  |  Branch (2305:19): [True: 730, False: 12]
  ------------------
 2306|  1.59k|                CHECK_RESULT(ReadStr(&name, "symbol name"));
  ------------------
  |  |   55|  1.59k|  do {                              \
  |  |   56|  1.59k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 438, False: 1.15k]
  |  |  ------------------
  |  |   57|    438|      return ::wabt::Result::Error; \
  |  |   58|    438|    }                               \
  |  |   59|  1.59k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2307|  1.16k|              switch (sym_type) {
 2308|    580|                case SymbolType::Function:
  ------------------
  |  Branch (2308:17): [True: 580, False: 589]
  ------------------
 2309|    580|                  CALLBACK(OnFunctionSymbol, i, flags, name, index);
  ------------------
  |  |   66|    580|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    580|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    580|  do {                      \
  |  |  |  |  |  |   48|    580|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 580]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    580|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    580|               #member " callback failed")
  ------------------
 2310|    580|                  break;
 2311|    580|                case SymbolType::Global:
  ------------------
  |  Branch (2311:17): [True: 20, False: 1.14k]
  ------------------
 2312|     20|                  CALLBACK(OnGlobalSymbol, i, flags, name, index);
  ------------------
  |  |   66|     20|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     20|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     20|  do {                      \
  |  |  |  |  |  |   48|     20|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 20]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     20|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     20|               #member " callback failed")
  ------------------
 2313|     20|                  break;
 2314|     20|                case SymbolType::Tag:
  ------------------
  |  Branch (2314:17): [True: 3, False: 1.16k]
  ------------------
 2315|      3|                  CALLBACK(OnTagSymbol, i, flags, name, index);
  ------------------
  |  |   66|      3|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      3|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      3|  do {                      \
  |  |  |  |  |  |   48|      3|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      3|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      3|               #member " callback failed")
  ------------------
 2316|      3|                  break;
 2317|    566|                case SymbolType::Table:
  ------------------
  |  Branch (2317:17): [True: 566, False: 603]
  ------------------
 2318|    566|                  CALLBACK(OnTableSymbol, i, flags, name, index);
  ------------------
  |  |   66|    566|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    566|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    566|  do {                      \
  |  |  |  |  |  |   48|    566|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 566]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    566|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    566|               #member " callback failed")
  ------------------
 2319|    566|                  break;
 2320|    566|                default:
  ------------------
  |  Branch (2320:17): [True: 0, False: 1.16k]
  ------------------
 2321|      0|                  WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
 2322|  1.16k|              }
 2323|  1.16k|              break;
 2324|  1.16k|            }
 2325|  1.18k|            case SymbolType::Data: {
  ------------------
  |  Branch (2325:13): [True: 1.18k, False: 4.50k]
  ------------------
 2326|  1.18k|              uint32_t segment = 0;
 2327|  1.18k|              uint32_t offset = 0;
 2328|  1.18k|              uint32_t size = 0;
 2329|  1.18k|              CHECK_RESULT(ReadStr(&name, "symbol name"));
  ------------------
  |  |   55|  1.18k|  do {                              \
  |  |   56|  1.18k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 14, False: 1.17k]
  |  |  ------------------
  |  |   57|     14|      return ::wabt::Result::Error; \
  |  |   58|     14|    }                               \
  |  |   59|  1.18k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2330|  1.17k|              if ((flags & WABT_SYMBOL_FLAG_UNDEFINED) == 0) {
  ------------------
  |  |  342|  1.17k|#define WABT_SYMBOL_FLAG_UNDEFINED 0x10
  ------------------
  |  Branch (2330:19): [True: 729, False: 445]
  ------------------
 2331|    729|                CHECK_RESULT(ReadU32Leb128(&segment, "segment"));
  ------------------
  |  |   55|    729|  do {                              \
  |  |   56|    729|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 93, False: 636]
  |  |  ------------------
  |  |   57|     93|      return ::wabt::Result::Error; \
  |  |   58|     93|    }                               \
  |  |   59|    729|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2332|    636|                CHECK_RESULT(ReadU32Leb128(&offset, "offset"));
  ------------------
  |  |   55|    636|  do {                              \
  |  |   56|    636|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 86, False: 550]
  |  |  ------------------
  |  |   57|     86|      return ::wabt::Result::Error; \
  |  |   58|     86|    }                               \
  |  |   59|    636|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2333|    550|                CHECK_RESULT(ReadU32Leb128(&size, "size"));
  ------------------
  |  |   55|    550|  do {                              \
  |  |   56|    550|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 550]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    550|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2334|    550|              }
 2335|    995|              CALLBACK(OnDataSymbol, i, flags, name, segment, offset, size);
  ------------------
  |  |   66|    995|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    995|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    995|  do {                      \
  |  |  |  |  |  |   48|    995|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 995]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    995|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    995|               #member " callback failed")
  ------------------
 2336|    995|              break;
 2337|    995|            }
 2338|    995|            case SymbolType::Section: {
  ------------------
  |  Branch (2338:13): [True: 86, False: 5.61k]
  ------------------
 2339|     86|              uint32_t index = 0;
 2340|     86|              CHECK_RESULT(ReadU32Leb128(&index, "index"));
  ------------------
  |  |   55|     86|  do {                              \
  |  |   56|     86|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 85]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|     86|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2341|     85|              CALLBACK(OnSectionSymbol, i, flags, index);
  ------------------
  |  |   66|     85|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     85|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     85|  do {                      \
  |  |  |  |  |  |   48|     85|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 85]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     85|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     85|               #member " callback failed")
  ------------------
 2342|     85|              break;
 2343|     85|            }
 2344|  5.69k|          }
 2345|  5.69k|        }
 2346|  1.40k|        break;
 2347|  1.40k|      case LinkingEntryType::SegmentInfo:
  ------------------
  |  Branch (2347:7): [True: 1.13k, False: 14.3k]
  ------------------
 2348|  1.13k|        CHECK_RESULT(ReadU32Leb128(&count, "info count"));
  ------------------
  |  |   55|  1.13k|  do {                              \
  |  |   56|  1.13k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 166, False: 973]
  |  |  ------------------
  |  |   57|    166|      return ::wabt::Result::Error; \
  |  |   58|    166|    }                               \
  |  |   59|  1.13k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2349|    973|        CALLBACK(OnSegmentInfoCount, count);
  ------------------
  |  |   66|    973|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    973|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    973|  do {                      \
  |  |  |  |  |  |   48|    973|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 973]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    973|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    973|               #member " callback failed")
  ------------------
 2350|  1.00k|        for (Index i = 0; i < count; i++) {
  ------------------
  |  Branch (2350:27): [True: 565, False: 442]
  ------------------
 2351|    565|          std::string_view name;
 2352|    565|          Address alignment_log2;
 2353|    565|          uint32_t flags;
 2354|    565|          CHECK_RESULT(ReadStr(&name, "segment name"));
  ------------------
  |  |   55|    565|  do {                              \
  |  |   56|    565|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 38, False: 527]
  |  |  ------------------
  |  |   57|     38|      return ::wabt::Result::Error; \
  |  |   58|     38|    }                               \
  |  |   59|    565|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2355|    527|          CHECK_RESULT(ReadAlignment(&alignment_log2, "segment alignment"));
  ------------------
  |  |   55|    527|  do {                              \
  |  |   56|    527|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 525]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|    527|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2356|    525|          CHECK_RESULT(CheckAlignment(&alignment_log2, "segment alignment"));
  ------------------
  |  |   55|    525|  do {                              \
  |  |   56|    525|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 18, False: 507]
  |  |  ------------------
  |  |   57|     18|      return ::wabt::Result::Error; \
  |  |   58|     18|    }                               \
  |  |   59|    525|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2357|    507|          CHECK_RESULT(ReadU32Leb128(&flags, "segment flags"));
  ------------------
  |  |   55|    507|  do {                              \
  |  |   56|    507|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 473, False: 34]
  |  |  ------------------
  |  |   57|    473|      return ::wabt::Result::Error; \
  |  |   58|    473|    }                               \
  |  |   59|    507|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2358|     34|          CALLBACK(OnSegmentInfo, i, name, alignment_log2, flags);
  ------------------
  |  |   66|     34|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     34|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     34|  do {                      \
  |  |  |  |  |  |   48|     34|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 34]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     34|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     34|               #member " callback failed")
  ------------------
 2359|     34|        }
 2360|    442|        break;
 2361|    624|      case LinkingEntryType::InitFunctions:
  ------------------
  |  Branch (2361:7): [True: 624, False: 14.9k]
  ------------------
 2362|    624|        CHECK_RESULT(ReadU32Leb128(&count, "info count"));
  ------------------
  |  |   55|    624|  do {                              \
  |  |   56|    624|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 34, False: 590]
  |  |  ------------------
  |  |   57|     34|      return ::wabt::Result::Error; \
  |  |   58|     34|    }                               \
  |  |   59|    624|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2363|    590|        CALLBACK(OnInitFunctionCount, count);
  ------------------
  |  |   66|    590|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    590|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    590|  do {                      \
  |  |  |  |  |  |   48|    590|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 590]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    590|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    590|               #member " callback failed")
  ------------------
 2364|  1.19k|        while (count--) {
  ------------------
  |  Branch (2364:16): [True: 972, False: 220]
  ------------------
 2365|    972|          uint32_t priority;
 2366|    972|          uint32_t symbol;
 2367|    972|          CHECK_RESULT(ReadU32Leb128(&priority, "priority"));
  ------------------
  |  |   55|    972|  do {                              \
  |  |   56|    972|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 233, False: 739]
  |  |  ------------------
  |  |   57|    233|      return ::wabt::Result::Error; \
  |  |   58|    233|    }                               \
  |  |   59|    972|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2368|    739|          CHECK_RESULT(ReadU32Leb128(&symbol, "symbol index"));
  ------------------
  |  |   55|    739|  do {                              \
  |  |   56|    739|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 137, False: 602]
  |  |  ------------------
  |  |   57|    137|      return ::wabt::Result::Error; \
  |  |   58|    137|    }                               \
  |  |   59|    739|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2369|    602|          CALLBACK(OnInitFunction, priority, symbol);
  ------------------
  |  |   66|    602|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    602|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    602|  do {                      \
  |  |  |  |  |  |   48|    602|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 602]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    602|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    602|               #member " callback failed")
  ------------------
 2370|    602|        }
 2371|    220|        break;
 2372|  3.36k|      case LinkingEntryType::ComdatInfo:
  ------------------
  |  Branch (2372:7): [True: 3.36k, False: 12.1k]
  ------------------
 2373|  3.36k|        CHECK_RESULT(ReadU32Leb128(&count, "count"));
  ------------------
  |  |   55|  3.36k|  do {                              \
  |  |   56|  3.36k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 163, False: 3.19k]
  |  |  ------------------
  |  |   57|    163|      return ::wabt::Result::Error; \
  |  |   58|    163|    }                               \
  |  |   59|  3.36k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2374|  3.19k|        CALLBACK(OnComdatCount, count);
  ------------------
  |  |   66|  3.19k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.19k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.19k|  do {                      \
  |  |  |  |  |  |   48|  3.19k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3.19k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  3.19k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.19k|               #member " callback failed")
  ------------------
 2375|  12.0k|        while (count--) {
  ------------------
  |  Branch (2375:16): [True: 10.1k, False: 1.90k]
  ------------------
 2376|  10.1k|          uint32_t flags;
 2377|  10.1k|          uint32_t entry_count;
 2378|  10.1k|          std::string_view name;
 2379|  10.1k|          CHECK_RESULT(ReadStr(&name, "comdat name"));
  ------------------
  |  |   55|  10.1k|  do {                              \
  |  |   56|  10.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 555, False: 9.63k]
  |  |  ------------------
  |  |   57|    555|      return ::wabt::Result::Error; \
  |  |   58|    555|    }                               \
  |  |   59|  10.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2380|  9.63k|          CHECK_RESULT(ReadU32Leb128(&flags, "flags"));
  ------------------
  |  |   55|  9.63k|  do {                              \
  |  |   56|  9.63k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 41, False: 9.59k]
  |  |  ------------------
  |  |   57|     41|      return ::wabt::Result::Error; \
  |  |   58|     41|    }                               \
  |  |   59|  9.63k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2381|  9.59k|          CHECK_RESULT(ReadU32Leb128(&entry_count, "entry count"));
  ------------------
  |  |   55|  9.59k|  do {                              \
  |  |   56|  9.59k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 180, False: 9.41k]
  |  |  ------------------
  |  |   57|    180|      return ::wabt::Result::Error; \
  |  |   58|    180|    }                               \
  |  |   59|  9.59k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2382|  9.41k|          CALLBACK(OnComdatBegin, name, flags, entry_count);
  ------------------
  |  |   66|  9.41k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  9.41k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  9.41k|  do {                      \
  |  |  |  |  |  |   48|  9.41k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 9.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  9.41k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  9.41k|               #member " callback failed")
  ------------------
 2383|  16.0k|          while (entry_count--) {
  ------------------
  |  Branch (2383:18): [True: 7.11k, False: 8.89k]
  ------------------
 2384|  7.11k|            uint32_t kind;
 2385|  7.11k|            uint32_t index;
 2386|  7.11k|            CHECK_RESULT(ReadU32Leb128(&kind, "kind"));
  ------------------
  |  |   55|  7.11k|  do {                              \
  |  |   56|  7.11k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 269, False: 6.85k]
  |  |  ------------------
  |  |   57|    269|      return ::wabt::Result::Error; \
  |  |   58|    269|    }                               \
  |  |   59|  7.11k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2387|  6.85k|            CHECK_RESULT(ReadU32Leb128(&index, "index"));
  ------------------
  |  |   55|  6.85k|  do {                              \
  |  |   56|  6.85k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 251, False: 6.59k]
  |  |  ------------------
  |  |   57|    251|      return ::wabt::Result::Error; \
  |  |   58|    251|    }                               \
  |  |   59|  6.85k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2388|  6.59k|            ComdatType comdat_type = static_cast<ComdatType>(kind);
 2389|  6.59k|            CALLBACK(OnComdatEntry, comdat_type, index);
  ------------------
  |  |   66|  6.59k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  6.59k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  6.59k|  do {                      \
  |  |  |  |  |  |   48|  6.59k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 6.59k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  6.59k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  6.59k|               #member " callback failed")
  ------------------
 2390|  6.59k|          }
 2391|  9.41k|        }
 2392|  1.90k|        break;
 2393|  7.42k|      default:
  ------------------
  |  Branch (2393:7): [True: 7.42k, False: 8.10k]
  ------------------
 2394|       |        // Unknown subsection, skip it.
 2395|  7.42k|        state_.offset = subsection_end;
 2396|  7.42k|        break;
 2397|  15.5k|    }
 2398|  11.3k|    ERROR_UNLESS(state_.offset == subsection_end,
  ------------------
  |  |   53|  11.3k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  11.3k|  do {                      \
  |  |  |  |   48|  11.3k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 2.01k, False: 9.37k]
  |  |  |  |  ------------------
  |  |  |  |   49|  2.01k|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  2.01k|  do {                       \
  |  |  |  |  |  |   42|  2.01k|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|  2.01k|    return Result::Error;    \
  |  |  |  |  |  |   44|  2.01k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|  2.01k|    }                       \
  |  |  |  |   51|  11.3k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2399|  11.3k|                 "unfinished sub-section (expected end: 0x%" PRIzx ")",
 2400|  11.3k|                 subsection_end);
 2401|  11.3k|  }
 2402|    815|  CALLBACK0(EndLinkingSection);
  ------------------
  |  |   63|    815|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    815|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    815|  do {                      \
  |  |  |  |  |  |   48|    815|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 815]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    815|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2403|    815|  return Result::Ok;
 2404|    815|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadAlignmentEPmPKc:
  445|  26.0k|Result BinaryReader::ReadAlignment(Address* alignment_log2, const char* desc) {
  446|  26.0k|  uint32_t value;
  447|  26.0k|  CHECK_RESULT(ReadU32Leb128(&value, desc));
  ------------------
  |  |   55|  26.0k|  do {                              \
  |  |   56|  26.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 26.0k]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|  26.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  448|  26.0k|  *alignment_log2 = value;
  449|  26.0k|  return Result::Ok;
  450|  26.0k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader14CheckAlignmentEPmPKc:
  452|  26.0k|Result BinaryReader::CheckAlignment(Address* align_log2, const char* desc) {
  453|  26.0k|  uint32_t value = *align_log2;
  454|  26.0k|  if (value >= 32) {
  ------------------
  |  Branch (454:7): [True: 70, False: 25.9k]
  ------------------
  455|     70|    PrintError("invalid %s: %" PRIu32, desc, value);
  456|     70|    return Result::Error;
  457|     70|  }
  458|  25.9k|  return Result::Ok;
  459|  26.0k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader23ReadCodeMetadataSectionENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEm:
 2432|  43.7k|                                             Offset section_size) {
 2433|  43.7k|  CALLBACK(BeginCodeMetadataSection, name, section_size);
  ------------------
  |  |   66|  43.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  43.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  43.7k|  do {                      \
  |  |  |  |  |  |   48|  43.7k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 43.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  43.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  43.7k|               #member " callback failed")
  ------------------
 2434|       |
 2435|  43.7k|  Index num_functions;
 2436|  43.7k|  CHECK_RESULT(ReadCount(&num_functions, "function count"));
  ------------------
  |  |   55|  43.7k|  do {                              \
  |  |   56|  43.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 215, False: 43.5k]
  |  |  ------------------
  |  |   57|    215|      return ::wabt::Result::Error; \
  |  |   58|    215|    }                               \
  |  |   59|  43.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2437|  43.5k|  CALLBACK(OnCodeMetadataFuncCount, num_functions);
  ------------------
  |  |   66|  43.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  43.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  43.5k|  do {                      \
  |  |  |  |  |  |   48|  43.5k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 43.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  43.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  43.5k|               #member " callback failed")
  ------------------
 2438|       |
 2439|  43.5k|  Index last_function_index = kInvalidIndex;
 2440|   139k|  for (Index i = 0; i < num_functions; ++i) {
  ------------------
  |  Branch (2440:21): [True: 106k, False: 33.4k]
  ------------------
 2441|   106k|    Index function_index;
 2442|   106k|    CHECK_RESULT(ReadCount(&function_index, "function index"));
  ------------------
  |  |   55|   106k|  do {                              \
  |  |   56|   106k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.17k, False: 104k]
  |  |  ------------------
  |  |   57|  1.17k|      return ::wabt::Result::Error; \
  |  |   58|  1.17k|    }                               \
  |  |   59|   106k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2443|   104k|    ERROR_UNLESS(function_index >= num_func_imports_,
  ------------------
  |  |   53|   104k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|   104k|  do {                      \
  |  |  |  |   48|   104k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 260, False: 104k]
  |  |  |  |  ------------------
  |  |  |  |   49|    260|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    260|  do {                       \
  |  |  |  |  |  |   42|    260|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|    260|    return Result::Error;    \
  |  |  |  |  |  |   44|    260|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|    260|    }                       \
  |  |  |  |   51|   104k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2444|   104k|                 "function import can't have metadata (got %" PRIindex ")",
 2445|   104k|                 function_index);
 2446|   104k|    ERROR_UNLESS(function_index < NumTotalFuncs(),
  ------------------
  |  |   53|   104k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|   104k|  do {                      \
  |  |  |  |   48|   104k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 180, False: 104k]
  |  |  |  |  ------------------
  |  |  |  |   49|    180|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    180|  do {                       \
  |  |  |  |  |  |   42|    180|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|    180|    return Result::Error;    \
  |  |  |  |  |  |   44|    180|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|    180|    }                       \
  |  |  |  |   51|   104k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2447|   104k|                 "invalid function index: %" PRIindex, function_index);
 2448|   104k|    ERROR_UNLESS(function_index != last_function_index,
  ------------------
  |  |   53|   104k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|   104k|  do {                      \
  |  |  |  |   48|   104k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 348, False: 104k]
  |  |  |  |  ------------------
  |  |  |  |   49|    348|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    348|  do {                       \
  |  |  |  |  |  |   42|    348|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|    348|    return Result::Error;    \
  |  |  |  |  |  |   44|    348|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|    348|    }                       \
  |  |  |  |   51|   104k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2449|   104k|                 "duplicate function index: %" PRIindex, function_index);
 2450|   104k|    ERROR_UNLESS(last_function_index == kInvalidIndex ||
  ------------------
  |  |   53|   104k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|   104k|  do {                      \
  |  |  |  |   48|   270k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 42.3k, False: 61.8k]
  |  |  |  |  |  Branch (48:9): [True: 56.3k, False: 5.51k]
  |  |  |  |  ------------------
  |  |  |  |   49|  5.51k|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|  5.51k|  do {                       \
  |  |  |  |  |  |   42|  5.51k|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|  5.51k|    return Result::Error;    \
  |  |  |  |  |  |   44|  5.51k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|  5.51k|    }                       \
  |  |  |  |   51|   104k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2451|  98.6k|                     function_index > last_function_index,
 2452|  98.6k|                 "function index out of order: %" PRIindex, function_index);
 2453|  98.6k|    last_function_index = function_index;
 2454|       |
 2455|  98.6k|    Index num_metadata;
 2456|  98.6k|    CHECK_RESULT(ReadCount(&num_metadata, "metadata instances count"));
  ------------------
  |  |   55|  98.6k|  do {                              \
  |  |   56|  98.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 590, False: 98.0k]
  |  |  ------------------
  |  |   57|    590|      return ::wabt::Result::Error; \
  |  |   58|    590|    }                               \
  |  |   59|  98.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2457|       |
 2458|  98.0k|    CALLBACK(OnCodeMetadataCount, function_index, num_metadata);
  ------------------
  |  |   66|  98.0k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  98.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  98.0k|  do {                      \
  |  |  |  |  |  |   48|  98.0k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 98.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  98.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  98.0k|               #member " callback failed")
  ------------------
 2459|       |
 2460|  98.0k|    Offset last_code_offset = kInvalidOffset;
 2461|   106k|    for (Index j = 0; j < num_metadata; ++j) {
  ------------------
  |  Branch (2461:23): [True: 10.6k, False: 96.0k]
  ------------------
 2462|  10.6k|      Offset code_offset;
 2463|  10.6k|      CHECK_RESULT(ReadOffset(&code_offset, "code offset"));
  ------------------
  |  |   55|  10.6k|  do {                              \
  |  |   56|  10.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 10.6k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  10.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2464|  10.6k|      ERROR_UNLESS(code_offset != last_code_offset,
  ------------------
  |  |   53|  10.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  10.6k|  do {                      \
  |  |  |  |   48|  10.6k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 181, False: 10.4k]
  |  |  |  |  ------------------
  |  |  |  |   49|    181|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    181|  do {                       \
  |  |  |  |  |  |   42|    181|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|    181|    return Result::Error;    \
  |  |  |  |  |  |   44|    181|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|    181|    }                       \
  |  |  |  |   51|  10.6k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2465|  10.4k|                   "duplicate code offset: %" PRIzx, code_offset);
 2466|  10.4k|      ERROR_UNLESS(
  ------------------
  |  |   53|  10.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  10.4k|  do {                      \
  |  |  |  |   48|  22.1k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 9.24k, False: 1.22k]
  |  |  |  |  |  Branch (48:9): [True: 508, False: 715]
  |  |  |  |  ------------------
  |  |  |  |   49|    715|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|    715|  do {                       \
  |  |  |  |  |  |   42|    715|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|    715|    return Result::Error;    \
  |  |  |  |  |  |   44|    715|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|    715|    }                       \
  |  |  |  |   51|  10.4k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2467|  9.74k|          last_code_offset == kInvalidOffset || code_offset > last_code_offset,
 2468|  9.74k|          "code offset out of order: %" PRIzx, code_offset);
 2469|  9.74k|      last_code_offset = code_offset;
 2470|       |
 2471|  9.74k|      Address data_size;
 2472|  9.74k|      const void* data;
 2473|  9.74k|      CHECK_RESULT(ReadBytes(&data, &data_size, "instance data"));
  ------------------
  |  |   55|  9.74k|  do {                              \
  |  |   56|  9.74k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.13k, False: 8.61k]
  |  |  ------------------
  |  |   57|  1.13k|      return ::wabt::Result::Error; \
  |  |   58|  1.13k|    }                               \
  |  |   59|  9.74k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2474|  8.61k|      CALLBACK(OnCodeMetadata, code_offset, data, data_size);
  ------------------
  |  |   66|  8.61k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  8.61k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  8.61k|  do {                      \
  |  |  |  |  |  |   48|  8.61k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 8.61k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  8.61k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  8.61k|               #member " callback failed")
  ------------------
 2475|  8.61k|    }
 2476|  98.0k|  }
 2477|       |
 2478|  33.4k|  CALLBACK(EndCodeMetadataSection);
  ------------------
  |  |   66|  33.4k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  33.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  33.4k|  do {                      \
  |  |  |  |  |  |   48|  33.4k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 33.4k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  33.4k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  33.4k|               #member " callback failed")
  ------------------
 2479|  33.4k|  return Result::Ok;
 2480|  33.4k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadBytesEPPKvPmPKc:
  412|  10.0k|                               const char* desc) {
  413|  10.0k|  uint32_t data_size = 0;
  414|  10.0k|  CHECK_RESULT(ReadU32Leb128(&data_size, "data size"));
  ------------------
  |  |   55|  10.0k|  do {                              \
  |  |   56|  10.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 17, False: 9.98k]
  |  |  ------------------
  |  |   57|     17|      return ::wabt::Result::Error; \
  |  |   58|     17|    }                               \
  |  |   59|  10.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  415|  9.98k|  CHECK_RESULT(ReadBytesWithSize(out_data, data_size, desc));
  ------------------
  |  |   55|  9.98k|  do {                              \
  |  |   56|  9.98k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1.11k, False: 8.86k]
  |  |  ------------------
  |  |   57|  1.11k|      return ::wabt::Result::Error; \
  |  |   58|  1.11k|    }                               \
  |  |   59|  9.98k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  416|  8.86k|  *out_data_size = data_size;
  417|  8.86k|  return Result::Ok;
  418|  9.98k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardIbXadL_ZNS1_23reading_custom_section_EEEED2Ev:
   91|   214k|    ~ValueRestoreGuard() { this_->*member = previous_value_; }
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadTypeSectionEm:
 2524|    931|Result BinaryReader::ReadTypeSection(Offset section_size) {
 2525|    931|  CALLBACK(BeginTypeSection, section_size);
  ------------------
  |  |   66|    931|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    931|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    931|  do {                      \
  |  |  |  |  |  |   48|    931|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 931]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    931|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    931|               #member " callback failed")
  ------------------
 2526|    931|  Index num_signatures;
 2527|    931|  CHECK_RESULT(ReadCount(&num_signatures, "type count"));
  ------------------
  |  |   55|    931|  do {                              \
  |  |   56|    931|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 35, False: 896]
  |  |  ------------------
  |  |   57|     35|      return ::wabt::Result::Error; \
  |  |   58|     35|    }                               \
  |  |   59|    931|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2528|    896|  CALLBACK(OnTypeCount, num_signatures);
  ------------------
  |  |   66|    896|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    896|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    896|  do {                      \
  |  |  |  |  |  |   48|    896|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 896]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    896|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    896|               #member " callback failed")
  ------------------
 2529|       |
 2530|  5.42k|  for (Index i = 0; i < num_signatures; ++i) {
  ------------------
  |  Branch (2530:21): [True: 4.72k, False: 699]
  ------------------
 2531|  4.72k|    Type form;
 2532|  4.72k|    if (options_.features.gc_enabled()) {
  ------------------
  |  Branch (2532:9): [True: 2.40k, False: 2.31k]
  ------------------
 2533|  2.40k|      CHECK_RESULT(ReadType(&form, "type form"));
  ------------------
  |  |   55|  2.40k|  do {                              \
  |  |   56|  2.40k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 2.40k]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|  2.40k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2534|  2.40k|    } else {
 2535|  2.31k|      uint8_t type;
 2536|  2.31k|      CHECK_RESULT(ReadU8(&type, "type form"));
  ------------------
  |  |   55|  2.31k|  do {                              \
  |  |   56|  2.31k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 13, False: 2.30k]
  |  |  ------------------
  |  |   57|     13|      return ::wabt::Result::Error; \
  |  |   58|     13|    }                               \
  |  |   59|  2.31k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2537|  2.30k|      ERROR_UNLESS(type == 0x60, "unexpected type form (got %#x)", type);
  ------------------
  |  |   53|  2.30k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  2.30k|  do {                      \
  |  |  |  |   48|  2.30k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 26, False: 2.27k]
  |  |  |  |  ------------------
  |  |  |  |   49|     26|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     26|  do {                       \
  |  |  |  |  |  |   42|     26|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|     26|    return Result::Error;    \
  |  |  |  |  |  |   44|     26|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|     26|    }                       \
  |  |  |  |   51|  2.30k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2538|  2.27k|      form = Type::Func;
 2539|  2.27k|    }
 2540|       |
 2541|  4.68k|    switch (form) {
 2542|  4.65k|      case Type::Func: {
  ------------------
  |  Branch (2542:7): [True: 4.65k, False: 28]
  ------------------
 2543|  4.65k|        Index num_params;
 2544|  4.65k|        CHECK_RESULT(ReadCount(&num_params, "function param count"));
  ------------------
  |  |   55|  4.65k|  do {                              \
  |  |   56|  4.65k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 34, False: 4.62k]
  |  |  ------------------
  |  |   57|     34|      return ::wabt::Result::Error; \
  |  |   58|     34|    }                               \
  |  |   59|  4.65k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2545|       |
 2546|  4.62k|        param_types_.resize(num_params);
 2547|       |
 2548|  26.6k|        for (Index j = 0; j < num_params; ++j) {
  ------------------
  |  Branch (2548:27): [True: 22.0k, False: 4.58k]
  ------------------
 2549|  22.0k|          Type param_type;
 2550|  22.0k|          CHECK_RESULT(ReadType(&param_type, "function param type"));
  ------------------
  |  |   55|  22.0k|  do {                              \
  |  |   56|  22.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 22.0k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  22.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2551|  22.0k|          ERROR_UNLESS(IsConcreteType(param_type),
  ------------------
  |  |   53|  22.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  22.0k|  do {                      \
  |  |  |  |   48|  22.0k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 39, False: 22.0k]
  |  |  |  |  ------------------
  |  |  |  |   49|     39|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     39|  do {                       \
  |  |  |  |  |  |   42|     78|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:16): [True: 12, False: 27]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|     39|    return Result::Error;    \
  |  |  |  |  |  |   44|     39|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|     39|    }                       \
  |  |  |  |   51|  22.0k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2552|  22.0k|                       "expected valid param type (got " PRItypecode ")",
 2553|  22.0k|                       WABT_PRINTF_TYPE_CODE(param_type));
 2554|  22.0k|          param_types_[j] = param_type;
 2555|  22.0k|        }
 2556|       |
 2557|  4.58k|        Index num_results;
 2558|  4.58k|        CHECK_RESULT(ReadCount(&num_results, "function result count"));
  ------------------
  |  |   55|  4.58k|  do {                              \
  |  |   56|  4.58k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 34, False: 4.54k]
  |  |  ------------------
  |  |   57|     34|      return ::wabt::Result::Error; \
  |  |   58|     34|    }                               \
  |  |   59|  4.58k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2559|       |
 2560|  4.54k|        result_types_.resize(num_results);
 2561|       |
 2562|  21.0k|        for (Index j = 0; j < num_results; ++j) {
  ------------------
  |  Branch (2562:27): [True: 16.4k, False: 4.52k]
  ------------------
 2563|  16.4k|          Type result_type;
 2564|  16.4k|          CHECK_RESULT(ReadType(&result_type, "function result type"));
  ------------------
  |  |   55|  16.4k|  do {                              \
  |  |   56|  16.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 12, False: 16.4k]
  |  |  ------------------
  |  |   57|     12|      return ::wabt::Result::Error; \
  |  |   58|     12|    }                               \
  |  |   59|  16.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2565|  16.4k|          ERROR_UNLESS(IsConcreteType(result_type),
  ------------------
  |  |   53|  16.4k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  16.4k|  do {                      \
  |  |  |  |   48|  16.4k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 7, False: 16.4k]
  |  |  |  |  ------------------
  |  |  |  |   49|      7|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      7|  do {                       \
  |  |  |  |  |  |   42|     14|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:16): [True: 4, False: 3]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      7|    return Result::Error;    \
  |  |  |  |  |  |   44|      7|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      7|    }                       \
  |  |  |  |   51|  16.4k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2566|  16.4k|                       "expected valid result type (got " PRItypecode ")",
 2567|  16.4k|                       WABT_PRINTF_TYPE_CODE(result_type));
 2568|  16.4k|          result_types_[j] = result_type;
 2569|  16.4k|        }
 2570|       |
 2571|  4.52k|        Type* param_types = num_params ? param_types_.data() : nullptr;
  ------------------
  |  Branch (2571:29): [True: 3.76k, False: 765]
  ------------------
 2572|  4.52k|        Type* result_types = num_results ? result_types_.data() : nullptr;
  ------------------
  |  Branch (2572:30): [True: 1.70k, False: 2.82k]
  ------------------
 2573|       |
 2574|  4.52k|        CALLBACK(OnFuncType, i, num_params, param_types, num_results,
  ------------------
  |  |   66|  4.52k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  4.52k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  4.52k|  do {                      \
  |  |  |  |  |  |   48|  4.52k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 4.52k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  4.52k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  4.52k|               #member " callback failed")
  ------------------
 2575|  4.52k|                 result_types);
 2576|  4.52k|        break;
 2577|  4.52k|      }
 2578|       |
 2579|  4.52k|      case Type::Struct: {
  ------------------
  |  Branch (2579:7): [True: 0, False: 4.68k]
  ------------------
 2580|      0|        ERROR_UNLESS(options_.features.gc_enabled(),
  ------------------
  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      0|  do {                      \
  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2581|      0|                     "invalid type form: struct not allowed");
 2582|      0|        Index num_fields;
 2583|      0|        CHECK_RESULT(ReadCount(&num_fields, "field count"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2584|       |
 2585|      0|        fields_.resize(num_fields);
 2586|      0|        for (Index j = 0; j < num_fields; ++j) {
  ------------------
  |  Branch (2586:27): [True: 0, False: 0]
  ------------------
 2587|      0|          CHECK_RESULT(ReadField(&fields_[j]));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 2588|      0|        }
 2589|       |
 2590|      0|        CALLBACK(OnStructType, i, fields_.size(), fields_.data());
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 2591|      0|        break;
 2592|      0|      }
 2593|       |
 2594|      0|      case Type::Array: {
  ------------------
  |  Branch (2594:7): [True: 0, False: 4.68k]
  ------------------
 2595|      0|        ERROR_UNLESS(options_.features.gc_enabled(),
  ------------------
  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      0|  do {                      \
  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2596|      0|                     "invalid type form: array not allowed");
 2597|       |
 2598|      0|        TypeMut field;
 2599|      0|        CHECK_RESULT(ReadField(&field));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 2600|      0|        CALLBACK(OnArrayType, i, field);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 2601|      0|        break;
 2602|      0|      };
 2603|       |
 2604|     28|      default:
  ------------------
  |  Branch (2604:7): [True: 28, False: 4.65k]
  ------------------
 2605|     28|        PrintError("unexpected type form (got " PRItypecode ")",
 2606|     28|                   WABT_PRINTF_TYPE_CODE(form));
  ------------------
  |  |   32|     28|  (static_cast<int32_t>(x) < 0 ? "-" : ""), std::abs(static_cast<int32_t>(x))
  |  |  ------------------
  |  |  |  Branch (32:4): [True: 9, False: 19]
  |  |  ------------------
  ------------------
 2607|     28|        return Result::Error;
 2608|  4.68k|    }
 2609|  4.68k|  }
 2610|    699|  CALLBACK0(EndTypeSection);
  ------------------
  |  |   63|    699|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    699|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    699|  do {                      \
  |  |  |  |  |  |   48|    699|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 699]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    699|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2611|    699|  return Result::Ok;
 2612|    699|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader8ReadTypeEPNS_4TypeEPKc:
  365|  93.8k|Result BinaryReader::ReadType(Type* out_value, const char* desc) {
  366|  93.8k|  uint32_t type = 0;
  367|  93.8k|  CHECK_RESULT(ReadS32Leb128(&type, desc));
  ------------------
  |  |   55|  93.8k|  do {                              \
  |  |   56|  93.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 30, False: 93.8k]
  |  |  ------------------
  |  |   57|     30|      return ::wabt::Result::Error; \
  |  |   58|     30|    }                               \
  |  |   59|  93.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  368|  93.8k|  if (static_cast<Type::Enum>(type) == Type::Reference) {
  ------------------
  |  Branch (368:7): [True: 4, False: 93.8k]
  ------------------
  369|      4|    uint32_t heap_type = 0;
  370|      4|    CHECK_RESULT(ReadS32Leb128(&heap_type, desc));
  ------------------
  |  |   55|      4|  do {                              \
  |  |   56|      4|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      4|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  371|      4|    *out_value = Type(Type::Reference, heap_type);
  372|  93.8k|  } else {
  373|  93.8k|    *out_value = static_cast<Type>(type);
  374|  93.8k|  }
  375|  93.8k|  return Result::Ok;
  376|  93.8k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader14IsConcreteTypeENS_4TypeE:
  555|  82.8k|bool BinaryReader::IsConcreteType(Type type) {
  556|  82.8k|  switch (type) {
  557|  15.9k|    case Type::I32:
  ------------------
  |  Branch (557:5): [True: 15.9k, False: 66.8k]
  ------------------
  558|  24.3k|    case Type::I64:
  ------------------
  |  Branch (558:5): [True: 8.31k, False: 74.5k]
  ------------------
  559|  31.2k|    case Type::F32:
  ------------------
  |  Branch (559:5): [True: 6.95k, False: 75.8k]
  ------------------
  560|  35.2k|    case Type::F64:
  ------------------
  |  Branch (560:5): [True: 3.98k, False: 78.8k]
  ------------------
  561|  35.2k|      return true;
  562|       |
  563|  9.42k|    case Type::V128:
  ------------------
  |  Branch (563:5): [True: 9.42k, False: 73.3k]
  ------------------
  564|  9.42k|      return options_.features.simd_enabled();
  565|       |
  566|  14.9k|    case Type::FuncRef:
  ------------------
  |  Branch (566:5): [True: 14.9k, False: 67.9k]
  ------------------
  567|  17.1k|    case Type::ExternRef:
  ------------------
  |  Branch (567:5): [True: 2.20k, False: 80.6k]
  ------------------
  568|  17.1k|      return options_.features.reference_types_enabled();
  569|       |
  570|      2|    case Type::ExnRef:
  ------------------
  |  Branch (570:5): [True: 2, False: 82.8k]
  ------------------
  571|      2|      return options_.features.exceptions_enabled();
  572|       |
  573|      4|    case Type::Reference:
  ------------------
  |  Branch (573:5): [True: 4, False: 82.8k]
  ------------------
  574|      4|      return options_.features.function_references_enabled();
  575|       |
  576|  21.0k|    default:
  ------------------
  |  Branch (576:5): [True: 21.0k, False: 61.7k]
  ------------------
  577|  21.0k|      return false;
  578|  82.8k|  }
  579|  82.8k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadImportSectionEm:
 2614|    393|Result BinaryReader::ReadImportSection(Offset section_size) {
 2615|    393|  CALLBACK(BeginImportSection, section_size);
  ------------------
  |  |   66|    393|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    393|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    393|  do {                      \
  |  |  |  |  |  |   48|    393|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 393]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    393|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    393|               #member " callback failed")
  ------------------
 2616|    393|  Index num_imports;
 2617|    393|  CHECK_RESULT(ReadCount(&num_imports, "import count"));
  ------------------
  |  |   55|    393|  do {                              \
  |  |   56|    393|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 378]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|    393|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2618|    378|  CALLBACK(OnImportCount, num_imports);
  ------------------
  |  |   66|    378|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    378|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    378|  do {                      \
  |  |  |  |  |  |   48|    378|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 378]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    378|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    378|               #member " callback failed")
  ------------------
 2619|  3.37k|  for (Index i = 0; i < num_imports; ++i) {
  ------------------
  |  Branch (2619:21): [True: 3.07k, False: 297]
  ------------------
 2620|  3.07k|    std::string_view module_name;
 2621|  3.07k|    CHECK_RESULT(ReadStr(&module_name, "import module name"));
  ------------------
  |  |   55|  3.07k|  do {                              \
  |  |   56|  3.07k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 22, False: 3.05k]
  |  |  ------------------
  |  |   57|     22|      return ::wabt::Result::Error; \
  |  |   58|     22|    }                               \
  |  |   59|  3.07k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2622|  3.05k|    std::string_view field_name;
 2623|  3.05k|    CHECK_RESULT(ReadStr(&field_name, "import field name"));
  ------------------
  |  |   55|  3.05k|  do {                              \
  |  |   56|  3.05k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 25, False: 3.02k]
  |  |  ------------------
  |  |   57|     25|      return ::wabt::Result::Error; \
  |  |   58|     25|    }                               \
  |  |   59|  3.05k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2624|       |
 2625|  3.02k|    uint8_t kind;
 2626|  3.02k|    CHECK_RESULT(ReadU8(&kind, "import kind"));
  ------------------
  |  |   55|  3.02k|  do {                              \
  |  |   56|  3.02k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 3.02k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  3.02k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2627|  3.02k|    CALLBACK(OnImport, i, static_cast<ExternalKind>(kind), module_name,
  ------------------
  |  |   66|  3.02k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.02k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.02k|  do {                      \
  |  |  |  |  |  |   48|  3.02k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3.02k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  3.02k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.02k|               #member " callback failed")
  ------------------
 2628|  3.02k|             field_name);
 2629|  3.02k|    switch (static_cast<ExternalKind>(kind)) {
 2630|  2.13k|      case ExternalKind::Func: {
  ------------------
  |  Branch (2630:7): [True: 2.13k, False: 894]
  ------------------
 2631|  2.13k|        Index sig_index;
 2632|  2.13k|        CHECK_RESULT(ReadIndex(&sig_index, "import signature index"));
  ------------------
  |  |   55|  2.13k|  do {                              \
  |  |   56|  2.13k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.13k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.13k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2633|  2.13k|        CALLBACK(OnImportFunc, i, module_name, field_name, num_func_imports_,
  ------------------
  |  |   66|  2.13k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.13k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.13k|  do {                      \
  |  |  |  |  |  |   48|  2.13k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 14, False: 2.11k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     14|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     14|  do {                       \
  |  |  |  |  |  |  |  |   42|     14|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     14|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     14|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     14|    }                       \
  |  |  |  |  |  |   51|  2.13k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.13k|               #member " callback failed")
  ------------------
 2634|  2.11k|                 sig_index);
 2635|  2.11k|        num_func_imports_++;
 2636|  2.11k|        break;
 2637|  2.13k|      }
 2638|       |
 2639|    369|      case ExternalKind::Table: {
  ------------------
  |  Branch (2639:7): [True: 369, False: 2.65k]
  ------------------
 2640|    369|        Type elem_type;
 2641|    369|        Limits elem_limits;
 2642|    369|        CHECK_RESULT(ReadTable(&elem_type, &elem_limits));
  ------------------
  |  |   55|    369|  do {                              \
  |  |   56|    369|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7, False: 362]
  |  |  ------------------
  |  |   57|      7|      return ::wabt::Result::Error; \
  |  |   58|      7|    }                               \
  |  |   59|    369|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2643|    362|        CALLBACK(OnImportTable, i, module_name, field_name, num_table_imports_,
  ------------------
  |  |   66|    362|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    362|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    362|  do {                      \
  |  |  |  |  |  |   48|    362|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 361]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|    362|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    362|               #member " callback failed")
  ------------------
 2644|    361|                 elem_type, &elem_limits);
 2645|    361|        num_table_imports_++;
 2646|    361|        break;
 2647|    362|      }
 2648|       |
 2649|    115|      case ExternalKind::Memory: {
  ------------------
  |  Branch (2649:7): [True: 115, False: 2.91k]
  ------------------
 2650|    115|        Limits page_limits;
 2651|    115|        uint32_t page_size;
 2652|    115|        CHECK_RESULT(ReadMemory(&page_limits, &page_size));
  ------------------
  |  |   55|    115|  do {                              \
  |  |   56|    115|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 113]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|    115|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2653|    113|        CALLBACK(OnImportMemory, i, module_name, field_name,
  ------------------
  |  |   66|    113|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    113|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    113|  do {                      \
  |  |  |  |  |  |   48|    113|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 113]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    113|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    113|               #member " callback failed")
  ------------------
 2654|    113|                 num_memory_imports_, &page_limits, page_size);
 2655|    113|        num_memory_imports_++;
 2656|    113|        break;
 2657|    113|      }
 2658|       |
 2659|    402|      case ExternalKind::Global: {
  ------------------
  |  Branch (2659:7): [True: 402, False: 2.62k]
  ------------------
 2660|    402|        Type type;
 2661|    402|        bool mutable_;
 2662|    402|        CHECK_RESULT(ReadGlobalHeader(&type, &mutable_));
  ------------------
  |  |   55|    402|  do {                              \
  |  |   56|    402|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 401]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    402|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2663|    401|        CALLBACK(OnImportGlobal, i, module_name, field_name,
  ------------------
  |  |   66|    401|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    401|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    401|  do {                      \
  |  |  |  |  |  |   48|    401|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 401]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    401|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    401|               #member " callback failed")
  ------------------
 2664|    401|                 num_global_imports_, type, mutable_);
 2665|    401|        num_global_imports_++;
 2666|    401|        break;
 2667|    401|      }
 2668|       |
 2669|      0|      case ExternalKind::Tag: {
  ------------------
  |  Branch (2669:7): [True: 0, False: 3.02k]
  ------------------
 2670|      0|        ERROR_UNLESS(options_.features.exceptions_enabled(),
  ------------------
  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      0|  do {                      \
  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2671|      0|                     "invalid import tag kind: exceptions not allowed");
 2672|      0|        Index sig_index;
 2673|      0|        CHECK_RESULT(ReadTagType(&sig_index));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2674|      0|        CALLBACK(OnImportTag, i, module_name, field_name, num_tag_imports_,
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 2675|      0|                 sig_index);
 2676|      0|        num_tag_imports_++;
 2677|      0|        break;
 2678|      0|      }
 2679|       |
 2680|      8|      default:
  ------------------
  |  Branch (2680:7): [True: 8, False: 3.01k]
  ------------------
 2681|      8|        PrintError("malformed import kind: %d", kind);
 2682|      8|        return Result::Error;
 2683|  3.02k|    }
 2684|  3.02k|  }
 2685|       |
 2686|    297|  CALLBACK0(EndImportSection);
  ------------------
  |  |   63|    297|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    297|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    297|  do {                      \
  |  |  |  |  |  |   48|    297|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 297]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    297|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2687|    297|  return Result::Ok;
 2688|    297|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader9ReadTableEPNS_4TypeEPNS_6LimitsE:
  603|  1.48k|Result BinaryReader::ReadTable(Type* out_elem_type, Limits* out_elem_limits) {
  604|  1.48k|  CHECK_RESULT(ReadRefType(out_elem_type, "table elem type"));
  ------------------
  |  |   55|  1.48k|  do {                              \
  |  |   56|  1.48k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 24, False: 1.46k]
  |  |  ------------------
  |  |   57|     24|      return ::wabt::Result::Error; \
  |  |   58|     24|    }                               \
  |  |   59|  1.48k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  605|       |
  606|  1.46k|  uint8_t flags;
  607|  1.46k|  uint32_t initial;
  608|  1.46k|  uint32_t max = 0;
  609|  1.46k|  CHECK_RESULT(ReadU8(&flags, "table flags"));
  ------------------
  |  |   55|  1.46k|  do {                              \
  |  |   56|  1.46k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.46k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.46k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  610|  1.46k|  bool has_max = flags & WABT_BINARY_LIMITS_HAS_MAX_FLAG;
  ------------------
  |  |   26|  1.46k|#define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1
  ------------------
  611|  1.46k|  bool is_shared = flags & WABT_BINARY_LIMITS_IS_SHARED_FLAG;
  ------------------
  |  |   27|  1.46k|#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2
  ------------------
  612|  1.46k|  bool is_64 = flags & WABT_BINARY_LIMITS_IS_64_FLAG;
  ------------------
  |  |   28|  1.46k|#define WABT_BINARY_LIMITS_IS_64_FLAG 0x4
  ------------------
  613|  1.46k|  const uint8_t unknown_flags = flags & ~WABT_BINARY_LIMITS_ALL_TABLE_FLAGS;
  ------------------
  |  |   35|  1.46k|  (WABT_BINARY_LIMITS_HAS_MAX_FLAG | WABT_BINARY_LIMITS_IS_SHARED_FLAG | \
  |  |  ------------------
  |  |  |  |   26|  1.46k|#define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1
  |  |  ------------------
  |  |                 (WABT_BINARY_LIMITS_HAS_MAX_FLAG | WABT_BINARY_LIMITS_IS_SHARED_FLAG | \
  |  |  ------------------
  |  |  |  |   27|  1.46k|#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2
  |  |  ------------------
  |  |   36|  1.46k|   WABT_BINARY_LIMITS_IS_64_FLAG)
  |  |  ------------------
  |  |  |  |   28|  1.46k|#define WABT_BINARY_LIMITS_IS_64_FLAG 0x4
  |  |  ------------------
  ------------------
  614|  1.46k|  ERROR_IF(is_shared, "tables may not be shared");
  ------------------
  |  |   47|  1.46k|  do {                      \
  |  |   48|  1.46k|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 11, False: 1.45k]
  |  |  ------------------
  |  |   49|     11|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|     11|  do {                       \
  |  |  |  |   42|     11|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|     11|    return Result::Error;    \
  |  |  |  |   44|     11|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|     11|    }                       \
  |  |   51|  1.46k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  615|  1.45k|  ERROR_IF(is_64 && !options_.features.memory64_enabled(),
  ------------------
  |  |   47|  1.45k|  do {                      \
  |  |   48|  2.90k|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 1, False: 1.44k]
  |  |  |  Branch (48:9): [True: 1, False: 0]
  |  |  ------------------
  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      1|  do {                       \
  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      1|    }                       \
  |  |   51|  1.45k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  616|  1.45k|           "memory64 not allowed");
  617|  1.44k|  ERROR_UNLESS(unknown_flags == 0, "malformed table limits flag: %d", flags);
  ------------------
  |  |   53|  1.44k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  1.44k|  do {                      \
  |  |  |  |   48|  1.44k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.44k]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|  1.44k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  618|  1.44k|  CHECK_RESULT(ReadU32Leb128(&initial, "table initial elem count"));
  ------------------
  |  |   55|  1.44k|  do {                              \
  |  |   56|  1.44k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.44k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.44k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  619|  1.44k|  if (has_max) {
  ------------------
  |  Branch (619:7): [True: 1.29k, False: 155]
  ------------------
  620|  1.29k|    CHECK_RESULT(ReadU32Leb128(&max, "table max elem count"));
  ------------------
  |  |   55|  1.29k|  do {                              \
  |  |   56|  1.29k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 1.29k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  1.29k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  621|  1.29k|  }
  622|       |
  623|  1.44k|  out_elem_limits->has_max = has_max;
  624|  1.44k|  out_elem_limits->is_64 = is_64;
  625|  1.44k|  out_elem_limits->initial = initial;
  626|  1.44k|  out_elem_limits->max = max;
  627|  1.44k|  return Result::Ok;
  628|  1.44k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader11ReadRefTypeEPNS_4TypeEPKc:
  378|  8.60k|Result BinaryReader::ReadRefType(Type* out_value, const char* desc) {
  379|  8.60k|  CHECK_RESULT(ReadType(out_value, desc));
  ------------------
  |  |   55|  8.60k|  do {                              \
  |  |   56|  8.60k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 8, False: 8.59k]
  |  |  ------------------
  |  |   57|      8|      return ::wabt::Result::Error; \
  |  |   58|      8|    }                               \
  |  |   59|  8.60k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  380|  8.59k|  ERROR_UNLESS(out_value->IsRef(), "%s must be a reference type", desc);
  ------------------
  |  |   53|  8.59k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  8.59k|  do {                      \
  |  |  |  |   48|  8.59k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 28, False: 8.56k]
  |  |  |  |  ------------------
  |  |  |  |   49|     28|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     28|  do {                       \
  |  |  |  |  |  |   42|     28|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|     28|    return Result::Error;    \
  |  |  |  |  |  |   44|     28|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|     28|    }                       \
  |  |  |  |   51|  8.59k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  381|  8.56k|  return Result::Ok;
  382|  8.59k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadMemoryEPNS_6LimitsEPj:
  631|    665|                                uint32_t* out_page_size) {
  632|    665|  uint8_t flags;
  633|    665|  uint64_t initial;
  634|    665|  uint64_t max = 0;
  635|    665|  CHECK_RESULT(ReadU8(&flags, "memory flags"));
  ------------------
  |  |   55|    665|  do {                              \
  |  |   56|    665|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 662]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|    665|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  636|    662|  bool has_max = flags & WABT_BINARY_LIMITS_HAS_MAX_FLAG;
  ------------------
  |  |   26|    662|#define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1
  ------------------
  637|    662|  bool is_shared = flags & WABT_BINARY_LIMITS_IS_SHARED_FLAG;
  ------------------
  |  |   27|    662|#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2
  ------------------
  638|    662|  bool is_64 = flags & WABT_BINARY_LIMITS_IS_64_FLAG;
  ------------------
  |  |   28|    662|#define WABT_BINARY_LIMITS_IS_64_FLAG 0x4
  ------------------
  639|    662|  bool has_custom_page_size =
  640|    662|      flags & WABT_BINARY_LIMITS_HAS_CUSTOM_PAGE_SIZE_FLAG;
  ------------------
  |  |   29|    662|#define WABT_BINARY_LIMITS_HAS_CUSTOM_PAGE_SIZE_FLAG 0x8
  ------------------
  641|    662|  const uint8_t unknown_flags = flags & ~WABT_BINARY_LIMITS_ALL_MEMORY_FLAGS;
  ------------------
  |  |   31|    662|  (WABT_BINARY_LIMITS_HAS_MAX_FLAG | WABT_BINARY_LIMITS_IS_SHARED_FLAG | \
  |  |  ------------------
  |  |  |  |   26|    662|#define WABT_BINARY_LIMITS_HAS_MAX_FLAG 0x1
  |  |  ------------------
  |  |                 (WABT_BINARY_LIMITS_HAS_MAX_FLAG | WABT_BINARY_LIMITS_IS_SHARED_FLAG | \
  |  |  ------------------
  |  |  |  |   27|    662|#define WABT_BINARY_LIMITS_IS_SHARED_FLAG 0x2
  |  |  ------------------
  |  |   32|    662|   WABT_BINARY_LIMITS_IS_64_FLAG |                                       \
  |  |  ------------------
  |  |  |  |   28|    662|#define WABT_BINARY_LIMITS_IS_64_FLAG 0x4
  |  |  ------------------
  |  |   33|    662|   WABT_BINARY_LIMITS_HAS_CUSTOM_PAGE_SIZE_FLAG)
  |  |  ------------------
  |  |  |  |   29|    662|#define WABT_BINARY_LIMITS_HAS_CUSTOM_PAGE_SIZE_FLAG 0x8
  |  |  ------------------
  ------------------
  642|    662|  ERROR_UNLESS(unknown_flags == 0, "malformed memory limits flag: %d", flags);
  ------------------
  |  |   53|    662|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|    662|  do {                      \
  |  |  |  |   48|    662|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 5, False: 657]
  |  |  |  |  ------------------
  |  |  |  |   49|      5|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      5|  do {                       \
  |  |  |  |  |  |   42|      5|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      5|    return Result::Error;    \
  |  |  |  |  |  |   44|      5|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      5|    }                       \
  |  |  |  |   51|    662|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  643|    657|  ERROR_IF(is_shared && !options_.features.threads_enabled(),
  ------------------
  |  |   47|    657|  do {                      \
  |  |   48|  1.31k|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 2, False: 655]
  |  |  |  Branch (48:9): [True: 0, False: 2]
  |  |  ------------------
  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      0|  do {                       \
  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      0|    }                       \
  |  |   51|    657|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  644|    657|           "memory may not be shared: threads not allowed");
  645|    657|  ERROR_IF(is_64 && !options_.features.memory64_enabled(),
  ------------------
  |  |   47|    657|  do {                      \
  |  |   48|  1.33k|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 19, False: 638]
  |  |  |  Branch (48:9): [True: 2, False: 17]
  |  |  ------------------
  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      2|  do {                       \
  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      2|    }                       \
  |  |   51|    657|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  646|    657|           "memory64 not allowed");
  647|    655|  ERROR_IF(
  ------------------
  |  |   47|    655|  do {                      \
  |  |   48|  1.31k|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 1, False: 654]
  |  |  |  Branch (48:9): [True: 0, False: 1]
  |  |  ------------------
  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      0|  do {                       \
  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      0|    }                       \
  |  |   51|    655|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  648|    655|      has_custom_page_size && !options_.features.custom_page_sizes_enabled(),
  649|    655|      "custom page sizes not allowed");
  650|    655|  if (options_.features.memory64_enabled()) {
  ------------------
  |  Branch (650:7): [True: 385, False: 270]
  ------------------
  651|    385|    CHECK_RESULT(ReadU64Leb128(&initial, "memory initial page count"));
  ------------------
  |  |   55|    385|  do {                              \
  |  |   56|    385|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 384]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    385|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  652|    384|    if (has_max) {
  ------------------
  |  Branch (652:9): [True: 241, False: 143]
  ------------------
  653|    241|      CHECK_RESULT(ReadU64Leb128(&max, "memory max page count"));
  ------------------
  |  |   55|    241|  do {                              \
  |  |   56|    241|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 241]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    241|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  654|    241|    }
  655|    384|  } else {
  656|    270|    uint32_t initial32;
  657|    270|    CHECK_RESULT(ReadU32Leb128(&initial32, "memory initial page count"));
  ------------------
  |  |   55|    270|  do {                              \
  |  |   56|    270|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 269]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    270|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  658|    269|    initial = initial32;
  659|    269|    if (has_max) {
  ------------------
  |  Branch (659:9): [True: 163, False: 106]
  ------------------
  660|    163|      uint32_t max32;
  661|    163|      CHECK_RESULT(ReadU32Leb128(&max32, "memory max page count"));
  ------------------
  |  |   55|    163|  do {                              \
  |  |   56|    163|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 163]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    163|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  662|    163|      max = max32;
  663|    163|    }
  664|    269|  }
  665|    653|  if (has_custom_page_size) {
  ------------------
  |  Branch (665:7): [True: 0, False: 653]
  ------------------
  666|      0|    uint32_t page_size_log2;
  667|      0|    CHECK_RESULT(ReadU32Leb128(&page_size_log2, "memory page 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]
  |  |  ------------------
  ------------------
  668|      0|    ERROR_IF(page_size_log2 > 16, "malformed memory page size");
  ------------------
  |  |   47|      0|  do {                      \
  |  |   48|      0|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      0|  do {                       \
  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      0|    }                       \
  |  |   51|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  669|      0|    *out_page_size = 1 << page_size_log2;
  670|    653|  } else {
  671|    653|    *out_page_size = WABT_DEFAULT_PAGE_SIZE;
  ------------------
  |  |   47|    653|#define WABT_DEFAULT_PAGE_SIZE 0x10000
  ------------------
  672|    653|  }
  673|       |
  674|    653|  out_page_limits->has_max = has_max;
  675|    653|  out_page_limits->is_shared = is_shared;
  676|    653|  out_page_limits->is_64 = is_64;
  677|    653|  out_page_limits->initial = initial;
  678|    653|  out_page_limits->max = max;
  679|       |
  680|    653|  return Result::Ok;
  681|    653|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadU64Leb128EPmPKc:
  338|  19.6k|Result BinaryReader::ReadU64Leb128(uint64_t* out_value, const char* desc) {
  339|  19.6k|  const uint8_t* p = state_.data + state_.offset;
  340|  19.6k|  const uint8_t* end = state_.data + read_end_;
  341|  19.6k|  size_t bytes_read = wabt::ReadU64Leb128(p, end, out_value);
  342|  19.6k|  ERROR_UNLESS(bytes_read > 0, "unable to read u64 leb128: %s", desc);
  ------------------
  |  |   53|  19.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  19.6k|  do {                      \
  |  |  |  |   48|  19.6k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 1, False: 19.6k]
  |  |  |  |  ------------------
  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      1|    }                       \
  |  |  |  |   51|  19.6k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  343|  19.6k|  state_.offset += bytes_read;
  344|  19.6k|  return Result::Ok;
  345|  19.6k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadGlobalHeaderEPNS_4TypeEPb:
  683|  4.32k|Result BinaryReader::ReadGlobalHeader(Type* out_type, bool* out_mutable) {
  684|  4.32k|  Type global_type = Type::Void;
  685|  4.32k|  uint8_t mutable_ = 0;
  686|  4.32k|  CHECK_RESULT(ReadType(&global_type, "global type"));
  ------------------
  |  |   55|  4.32k|  do {                              \
  |  |   56|  4.32k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 4.31k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  4.32k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  687|  4.31k|  ERROR_UNLESS(IsConcreteType(global_type), "invalid global type: %#x",
  ------------------
  |  |   53|  4.31k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  4.31k|  do {                      \
  |  |  |  |   48|  4.31k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 10, False: 4.30k]
  |  |  |  |  ------------------
  |  |  |  |   49|     10|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     10|  do {                       \
  |  |  |  |  |  |   42|     10|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|     10|    return Result::Error;    \
  |  |  |  |  |  |   44|     10|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|     10|    }                       \
  |  |  |  |   51|  4.31k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  688|  4.30k|               static_cast<int>(global_type));
  689|       |
  690|  4.30k|  CHECK_RESULT(ReadU8(&mutable_, "global mutability"));
  ------------------
  |  |   55|  4.30k|  do {                              \
  |  |   56|  4.30k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4.30k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  4.30k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  691|  4.30k|  ERROR_UNLESS(mutable_ <= 1, "global mutability must be 0 or 1");
  ------------------
  |  |   53|  4.30k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  4.30k|  do {                      \
  |  |  |  |   48|  4.30k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 5, False: 4.30k]
  |  |  |  |  ------------------
  |  |  |  |   49|      5|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      5|  do {                       \
  |  |  |  |  |  |   42|      5|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      5|    return Result::Error;    \
  |  |  |  |  |  |   44|      5|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      5|    }                       \
  |  |  |  |   51|  4.30k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  692|       |
  693|  4.30k|  *out_type = global_type;
  694|  4.30k|  *out_mutable = mutable_;
  695|  4.30k|  return Result::Ok;
  696|  4.30k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader19ReadFunctionSectionEm:
 2690|    876|Result BinaryReader::ReadFunctionSection(Offset section_size) {
 2691|    876|  CALLBACK(BeginFunctionSection, section_size);
  ------------------
  |  |   66|    876|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    876|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    876|  do {                      \
  |  |  |  |  |  |   48|    876|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 876]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    876|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    876|               #member " callback failed")
  ------------------
 2692|    876|  CHECK_RESULT(
  ------------------
  |  |   55|    876|  do {                              \
  |  |   56|    876|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 61, False: 815]
  |  |  ------------------
  |  |   57|     61|      return ::wabt::Result::Error; \
  |  |   58|     61|    }                               \
  |  |   59|    876|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2693|    876|      ReadCount(&num_function_signatures_, "function signature count"));
 2694|    815|  CALLBACK(OnFunctionCount, num_function_signatures_);
  ------------------
  |  |   66|    815|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    815|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    815|  do {                      \
  |  |  |  |  |  |   48|    815|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 815]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    815|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    815|               #member " callback failed")
  ------------------
 2695|  12.4k|  for (Index i = 0; i < num_function_signatures_; ++i) {
  ------------------
  |  Branch (2695:21): [True: 11.6k, False: 763]
  ------------------
 2696|  11.6k|    Index func_index = num_func_imports_ + i;
 2697|  11.6k|    Index sig_index;
 2698|  11.6k|    CHECK_RESULT(ReadIndex(&sig_index, "function signature index"));
  ------------------
  |  |   55|  11.6k|  do {                              \
  |  |   56|  11.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 11.6k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  11.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2699|  11.6k|    CALLBACK(OnFunction, func_index, sig_index);
  ------------------
  |  |   66|  11.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  11.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  11.6k|  do {                      \
  |  |  |  |  |  |   48|  11.6k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 52, False: 11.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     52|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     52|  do {                       \
  |  |  |  |  |  |  |  |   42|     52|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     52|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     52|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     52|    }                       \
  |  |  |  |  |  |   51|  11.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  11.6k|               #member " callback failed")
  ------------------
 2700|  11.6k|  }
 2701|    763|  CALLBACK0(EndFunctionSection);
  ------------------
  |  |   63|    763|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    763|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    763|  do {                      \
  |  |  |  |  |  |   48|    763|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 763]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    763|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2702|    763|  return Result::Ok;
 2703|    763|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadTableSectionEm:
 2705|    333|Result BinaryReader::ReadTableSection(Offset section_size) {
 2706|    333|  CALLBACK(BeginTableSection, section_size);
  ------------------
  |  |   66|    333|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    333|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    333|  do {                      \
  |  |  |  |  |  |   48|    333|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 333]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    333|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    333|               #member " callback failed")
  ------------------
 2707|    333|  Index num_tables;
 2708|    333|  CHECK_RESULT(ReadCount(&num_tables, "table count"));
  ------------------
  |  |   55|    333|  do {                              \
  |  |   56|    333|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 318]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|    333|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2709|    318|  CALLBACK(OnTableCount, num_tables);
  ------------------
  |  |   66|    318|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    318|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    318|  do {                      \
  |  |  |  |  |  |   48|    318|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 318]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    318|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    318|               #member " callback failed")
  ------------------
 2710|  1.40k|  for (Index i = 0; i < num_tables; ++i) {
  ------------------
  |  Branch (2710:21): [True: 1.11k, False: 285]
  ------------------
 2711|  1.11k|    Index table_index = num_table_imports_ + i;
 2712|  1.11k|    Type elem_type;
 2713|  1.11k|    Limits elem_limits;
 2714|  1.11k|    CHECK_RESULT(ReadTable(&elem_type, &elem_limits));
  ------------------
  |  |   55|  1.11k|  do {                              \
  |  |   56|  1.11k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 30, False: 1.08k]
  |  |  ------------------
  |  |   57|     30|      return ::wabt::Result::Error; \
  |  |   58|     30|    }                               \
  |  |   59|  1.11k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2715|  1.08k|    CALLBACK(OnTable, table_index, elem_type, &elem_limits);
  ------------------
  |  |   66|  1.08k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.08k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.08k|  do {                      \
  |  |  |  |  |  |   48|  1.08k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 3, False: 1.08k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      3|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      3|  do {                       \
  |  |  |  |  |  |  |  |   42|      3|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      3|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      3|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|    }                       \
  |  |  |  |  |  |   51|  1.08k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.08k|               #member " callback failed")
  ------------------
 2716|  1.08k|  }
 2717|    285|  CALLBACK0(EndTableSection);
  ------------------
  |  |   63|    285|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    285|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    285|  do {                      \
  |  |  |  |  |  |   48|    285|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 285]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    285|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2718|    285|  return Result::Ok;
 2719|    285|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadMemorySectionEm:
 2721|    443|Result BinaryReader::ReadMemorySection(Offset section_size) {
 2722|    443|  CALLBACK(BeginMemorySection, section_size);
  ------------------
  |  |   66|    443|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    443|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    443|  do {                      \
  |  |  |  |  |  |   48|    443|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 443]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    443|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    443|               #member " callback failed")
  ------------------
 2723|    443|  Index num_memories;
 2724|    443|  CHECK_RESULT(ReadCount(&num_memories, "memory count"));
  ------------------
  |  |   55|    443|  do {                              \
  |  |   56|    443|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 18, False: 425]
  |  |  ------------------
  |  |   57|     18|      return ::wabt::Result::Error; \
  |  |   58|     18|    }                               \
  |  |   59|    443|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2725|    425|  CALLBACK(OnMemoryCount, num_memories);
  ------------------
  |  |   66|    425|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    425|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    425|  do {                      \
  |  |  |  |  |  |   48|    425|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 425]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    425|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    425|               #member " callback failed")
  ------------------
 2726|    959|  for (Index i = 0; i < num_memories; ++i) {
  ------------------
  |  Branch (2726:21): [True: 550, False: 409]
  ------------------
 2727|    550|    Index memory_index = num_memory_imports_ + i;
 2728|    550|    Limits page_limits;
 2729|    550|    uint32_t page_size;
 2730|    550|    CHECK_RESULT(ReadMemory(&page_limits, &page_size));
  ------------------
  |  |   55|    550|  do {                              \
  |  |   56|    550|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 540]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|    550|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2731|    540|    CALLBACK(OnMemory, memory_index, &page_limits, page_size);
  ------------------
  |  |   66|    540|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    540|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    540|  do {                      \
  |  |  |  |  |  |   48|    540|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 6, False: 534]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      6|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      6|  do {                       \
  |  |  |  |  |  |  |  |   42|      6|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      6|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      6|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|    }                       \
  |  |  |  |  |  |   51|    540|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    540|               #member " callback failed")
  ------------------
 2732|    540|  }
 2733|    409|  CALLBACK0(EndMemorySection);
  ------------------
  |  |   63|    409|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    409|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    409|  do {                      \
  |  |  |  |  |  |   48|    409|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 409]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    409|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2734|    409|  return Result::Ok;
 2735|    409|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadGlobalSectionEm:
 2737|    373|Result BinaryReader::ReadGlobalSection(Offset section_size) {
 2738|    373|  CALLBACK(BeginGlobalSection, section_size);
  ------------------
  |  |   66|    373|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    373|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    373|  do {                      \
  |  |  |  |  |  |   48|    373|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 373]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    373|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    373|               #member " callback failed")
  ------------------
 2739|    373|  Index num_globals;
 2740|    373|  CHECK_RESULT(ReadCount(&num_globals, "global count"));
  ------------------
  |  |   55|    373|  do {                              \
  |  |   56|    373|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 362]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|    373|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2741|    362|  CALLBACK(OnGlobalCount, num_globals);
  ------------------
  |  |   66|    362|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    362|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    362|  do {                      \
  |  |  |  |  |  |   48|    362|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 362]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    362|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    362|               #member " callback failed")
  ------------------
 2742|  4.19k|  for (Index i = 0; i < num_globals; ++i) {
  ------------------
  |  Branch (2742:21): [True: 3.91k, False: 274]
  ------------------
 2743|  3.91k|    Index global_index = num_global_imports_ + i;
 2744|  3.91k|    Type global_type;
 2745|  3.91k|    bool mutable_;
 2746|  3.91k|    CHECK_RESULT(ReadGlobalHeader(&global_type, &mutable_));
  ------------------
  |  |   55|  3.91k|  do {                              \
  |  |   56|  3.91k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 3.90k]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|  3.91k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2747|  3.90k|    CALLBACK(BeginGlobal, global_index, global_type, mutable_);
  ------------------
  |  |   66|  3.90k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.90k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.90k|  do {                      \
  |  |  |  |  |  |   48|  3.90k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3.90k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  3.90k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.90k|               #member " callback failed")
  ------------------
 2748|  3.90k|    CALLBACK(BeginGlobalInitExpr, global_index);
  ------------------
  |  |   66|  3.90k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.90k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.90k|  do {                      \
  |  |  |  |  |  |   48|  3.90k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3.90k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  3.90k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.90k|               #member " callback failed")
  ------------------
 2749|  3.90k|    CHECK_RESULT(ReadInitExpr(global_index));
  ------------------
  |  |   55|  3.90k|  do {                              \
  |  |   56|  3.90k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 71, False: 3.83k]
  |  |  ------------------
  |  |   57|     71|      return ::wabt::Result::Error; \
  |  |   58|     71|    }                               \
  |  |   59|  3.90k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2750|  3.83k|    CALLBACK(EndGlobalInitExpr, global_index);
  ------------------
  |  |   66|  3.83k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.83k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.83k|  do {                      \
  |  |  |  |  |  |   48|  3.83k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 3.83k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|  3.83k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.83k|               #member " callback failed")
  ------------------
 2751|  3.83k|    CALLBACK(EndGlobal, global_index);
  ------------------
  |  |   66|  3.83k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.83k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.83k|  do {                      \
  |  |  |  |  |  |   48|  3.83k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3.83k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  3.83k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.83k|               #member " callback failed")
  ------------------
 2752|  3.83k|  }
 2753|    274|  CALLBACK0(EndGlobalSection);
  ------------------
  |  |   63|    274|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    274|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    274|  do {                      \
  |  |  |  |  |  |   48|    274|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 274]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    274|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2754|    274|  return Result::Ok;
 2755|    274|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader12ReadInitExprEj:
  597|  9.77k|Result BinaryReader::ReadInitExpr(Index index) {
  598|  9.77k|  CHECK_RESULT(ReadInstructions(read_end_, "init expression"));
  ------------------
  |  |   55|  9.77k|  do {                              \
  |  |   56|  9.77k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 97, False: 9.67k]
  |  |  ------------------
  |  |   57|     97|      return ::wabt::Result::Error; \
  |  |   58|     97|    }                               \
  |  |   59|  9.77k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  599|  9.67k|  assert(state_.offset <= read_end_);
  600|  9.67k|  return Result::Ok;
  601|  9.67k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadInstructionsEmPKc:
  718|  12.9k|Result BinaryReader::ReadInstructions(Offset end_offset, const char* context) {
  719|  12.9k|  std::stack<Opcode> nested_blocks;
  720|   794k|  while (state_.offset < end_offset) {
  ------------------
  |  Branch (720:10): [True: 793k, False: 95]
  ------------------
  721|   793k|    Opcode opcode;
  722|   793k|    CHECK_RESULT(ReadOpcode(&opcode, "opcode"));
  ------------------
  |  |   55|   793k|  do {                              \
  |  |   56|   793k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 15, False: 793k]
  |  |  ------------------
  |  |   57|     15|      return ::wabt::Result::Error; \
  |  |   58|     15|    }                               \
  |  |   59|   793k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  723|   793k|    CALLBACK(OnOpcode, opcode);
  ------------------
  |  |   66|   793k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|   793k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   793k|  do {                      \
  |  |  |  |  |  |   48|   793k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 793k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|   793k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|   793k|               #member " callback failed")
  ------------------
  724|   793k|    ERROR_UNLESS_OPCODE_ENABLED(opcode);
  ------------------
  |  |   56|   793k|  do {                                          \
  |  |   57|   793k|    if (!opcode.IsEnabled(options_.features)) { \
  |  |  ------------------
  |  |  |  Branch (57:9): [True: 22, False: 793k]
  |  |  ------------------
  |  |   58|     22|      return ReportUnexpectedOpcode(opcode);    \
  |  |   59|     22|    }                                           \
  |  |   60|   793k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (60:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  725|       |
  726|   793k|    switch (opcode) {
  727|   263k|      case Opcode::Unreachable:
  ------------------
  |  Branch (727:7): [True: 263k, False: 530k]
  ------------------
  728|   263k|        CALLBACK0(OnUnreachableExpr);
  ------------------
  |  |   63|   263k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|   263k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   263k|  do {                      \
  |  |  |  |  |  |   48|   263k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 4, False: 263k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      4|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      4|  do {                       \
  |  |  |  |  |  |  |  |   42|      4|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      4|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      4|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|    }                       \
  |  |  |  |  |  |   51|   263k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  729|   263k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|   263k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|   263k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|   263k|  do {                      \
  |  |  |  |  |  |   48|   263k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 263k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|   263k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  730|   263k|        break;
  731|       |
  732|   263k|      case Opcode::Block: {
  ------------------
  |  Branch (732:7): [True: 21.8k, False: 772k]
  ------------------
  733|  21.8k|        nested_blocks.push(opcode);
  734|  21.8k|        Type sig_type;
  735|  21.8k|        CHECK_RESULT(ReadType(&sig_type, "block signature type"));
  ------------------
  |  |   55|  21.8k|  do {                              \
  |  |   56|  21.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 21.8k]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|  21.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  736|  21.8k|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   53|  21.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  21.8k|  do {                      \
  |  |  |  |   48|  21.8k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 4, False: 21.8k]
  |  |  |  |  ------------------
  |  |  |  |   49|      4|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      4|  do {                       \
  |  |  |  |  |  |   42|      4|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      4|    return Result::Error;    \
  |  |  |  |  |  |   44|      4|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      4|    }                       \
  |  |  |  |   51|  21.8k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  737|  21.8k|                     "expected valid block signature type");
  738|  21.8k|        CALLBACK(OnBlockExpr, sig_type);
  ------------------
  |  |   66|  21.8k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  21.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  21.8k|  do {                      \
  |  |  |  |  |  |   48|  21.8k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 19, False: 21.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     19|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     19|  do {                       \
  |  |  |  |  |  |  |  |   42|     19|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     19|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     19|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     19|    }                       \
  |  |  |  |  |  |   51|  21.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  21.8k|               #member " callback failed")
  ------------------
  739|  21.7k|        CALLBACK(OnOpcodeBlockSig, sig_type);
  ------------------
  |  |   66|  21.7k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  21.7k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  21.7k|  do {                      \
  |  |  |  |  |  |   48|  21.7k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 21.7k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  21.7k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  21.7k|               #member " callback failed")
  ------------------
  740|  21.7k|        break;
  741|  21.7k|      }
  742|       |
  743|  21.7k|      case Opcode::Loop: {
  ------------------
  |  Branch (743:7): [True: 3.07k, False: 790k]
  ------------------
  744|  3.07k|        nested_blocks.push(opcode);
  745|  3.07k|        Type sig_type;
  746|  3.07k|        CHECK_RESULT(ReadType(&sig_type, "loop signature type"));
  ------------------
  |  |   55|  3.07k|  do {                              \
  |  |   56|  3.07k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 3.07k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  3.07k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  747|  3.07k|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   53|  3.07k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  3.07k|  do {                      \
  |  |  |  |   48|  3.07k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 5, False: 3.06k]
  |  |  |  |  ------------------
  |  |  |  |   49|      5|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      5|  do {                       \
  |  |  |  |  |  |   42|      5|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      5|    return Result::Error;    \
  |  |  |  |  |  |   44|      5|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      5|    }                       \
  |  |  |  |   51|  3.07k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  748|  3.06k|                     "expected valid block signature type");
  749|  3.06k|        CALLBACK(OnLoopExpr, sig_type);
  ------------------
  |  |   66|  3.06k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.06k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.06k|  do {                      \
  |  |  |  |  |  |   48|  3.06k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 12, False: 3.05k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     12|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     12|  do {                       \
  |  |  |  |  |  |  |  |   42|     12|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     12|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     12|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|    }                       \
  |  |  |  |  |  |   51|  3.06k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.06k|               #member " callback failed")
  ------------------
  750|  3.05k|        CALLBACK(OnOpcodeBlockSig, sig_type);
  ------------------
  |  |   66|  3.05k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.05k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.05k|  do {                      \
  |  |  |  |  |  |   48|  3.05k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3.05k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  3.05k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.05k|               #member " callback failed")
  ------------------
  751|  3.05k|        break;
  752|  3.05k|      }
  753|       |
  754|  3.05k|      case Opcode::If: {
  ------------------
  |  Branch (754:7): [True: 1.65k, False: 792k]
  ------------------
  755|  1.65k|        nested_blocks.push(opcode);
  756|  1.65k|        Type sig_type;
  757|  1.65k|        CHECK_RESULT(ReadType(&sig_type, "if signature type"));
  ------------------
  |  |   55|  1.65k|  do {                              \
  |  |   56|  1.65k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.65k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.65k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  758|  1.65k|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   53|  1.65k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  1.65k|  do {                      \
  |  |  |  |   48|  1.65k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 4, False: 1.65k]
  |  |  |  |  ------------------
  |  |  |  |   49|      4|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      4|  do {                       \
  |  |  |  |  |  |   42|      4|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      4|    return Result::Error;    \
  |  |  |  |  |  |   44|      4|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      4|    }                       \
  |  |  |  |   51|  1.65k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  759|  1.65k|                     "expected valid block signature type");
  760|  1.65k|        CALLBACK(OnIfExpr, sig_type);
  ------------------
  |  |   66|  1.65k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.65k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.65k|  do {                      \
  |  |  |  |  |  |   48|  1.65k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 7, False: 1.64k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      7|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      7|  do {                       \
  |  |  |  |  |  |  |  |   42|      7|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      7|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      7|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|    }                       \
  |  |  |  |  |  |   51|  1.65k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.65k|               #member " callback failed")
  ------------------
  761|  1.64k|        CALLBACK(OnOpcodeBlockSig, sig_type);
  ------------------
  |  |   66|  1.64k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.64k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.64k|  do {                      \
  |  |  |  |  |  |   48|  1.64k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.64k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  1.64k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.64k|               #member " callback failed")
  ------------------
  762|  1.64k|        break;
  763|  1.64k|      }
  764|       |
  765|  1.64k|      case Opcode::Else:
  ------------------
  |  Branch (765:7): [True: 323, False: 793k]
  ------------------
  766|    323|        ERROR_IF(nested_blocks.empty() || (nested_blocks.top() != Opcode::If),
  ------------------
  |  |   47|    323|  do {                      \
  |  |   48|    965|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 4, False: 319]
  |  |  |  Branch (48:9): [True: 2, False: 317]
  |  |  ------------------
  |  |   49|      6|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      6|  do {                       \
  |  |  |  |   42|      6|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      6|    return Result::Error;    \
  |  |  |  |   44|      6|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      6|    }                       \
  |  |   51|    323|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  767|    323|                 "else outside if block");
  768|    317|        CALLBACK0(OnElseExpr);
  ------------------
  |  |   63|    317|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    317|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    317|  do {                      \
  |  |  |  |  |  |   48|    317|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 316]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|    317|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  769|    316|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|    316|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    316|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    316|  do {                      \
  |  |  |  |  |  |   48|    316|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 316]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    316|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  770|    316|        break;
  771|       |
  772|    316|      case Opcode::SelectT: {
  ------------------
  |  Branch (772:7): [True: 43, False: 793k]
  ------------------
  773|     43|        Index num_results;
  774|     43|        CHECK_RESULT(ReadCount(&num_results, "num result types"));
  ------------------
  |  |   55|     43|  do {                              \
  |  |   56|     43|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 42]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|     43|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  775|       |
  776|     42|        result_types_.resize(num_results);
  777|    120|        for (Index i = 0; i < num_results; ++i) {
  ------------------
  |  Branch (777:27): [True: 82, False: 38]
  ------------------
  778|     82|          Type result_type;
  779|     82|          CHECK_RESULT(ReadType(&result_type, "select result type"));
  ------------------
  |  |   55|     82|  do {                              \
  |  |   56|     82|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 82]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     82|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  780|     82|          ERROR_UNLESS(IsConcreteType(result_type),
  ------------------
  |  |   53|     82|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|     82|  do {                      \
  |  |  |  |   48|     82|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 4, False: 78]
  |  |  |  |  ------------------
  |  |  |  |   49|      4|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      4|  do {                       \
  |  |  |  |  |  |   42|      8|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (42:16): [True: 1, False: 3]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      4|    return Result::Error;    \
  |  |  |  |  |  |   44|      4|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      4|    }                       \
  |  |  |  |   51|     82|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  781|     78|                       "expected valid select result type (got " PRItypecode
  782|     78|                       ")",
  783|     78|                       WABT_PRINTF_TYPE_CODE(result_type));
  784|     78|          result_types_[i] = result_type;
  785|     78|        }
  786|       |
  787|     38|        if (num_results) {
  ------------------
  |  Branch (787:13): [True: 37, False: 1]
  ------------------
  788|     37|          CALLBACK(OnSelectExpr, num_results, result_types_.data());
  ------------------
  |  |   66|     37|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     37|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     37|  do {                      \
  |  |  |  |  |  |   48|     37|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 35]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|     37|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     37|               #member " callback failed")
  ------------------
  789|     35|          CALLBACK(OnOpcodeType, result_types_[0]);
  ------------------
  |  |   66|     35|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     35|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     35|  do {                      \
  |  |  |  |  |  |   48|     35|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 35]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     35|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     35|               #member " callback failed")
  ------------------
  790|     35|        } else {
  791|      1|          CALLBACK(OnSelectExpr, 0, NULL);
  ------------------
  |  |   66|      1|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      1|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      1|  do {                      \
  |  |  |  |  |  |   48|      1|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      1|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      1|               #member " callback failed")
  ------------------
  792|      1|          CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|      1|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|      1|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      1|  do {                      \
  |  |  |  |  |  |   48|      1|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      1|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  793|      1|        }
  794|     36|        break;
  795|     38|      }
  796|       |
  797|  1.58k|      case Opcode::Select:
  ------------------
  |  Branch (797:7): [True: 1.58k, False: 792k]
  ------------------
  798|  1.58k|        CALLBACK(OnSelectExpr, 0, nullptr);
  ------------------
  |  |   66|  1.58k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.58k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.58k|  do {                      \
  |  |  |  |  |  |   48|  1.58k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 1.58k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|  1.58k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.58k|               #member " callback failed")
  ------------------
  799|  1.58k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|  1.58k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  1.58k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.58k|  do {                      \
  |  |  |  |  |  |   48|  1.58k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.58k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  1.58k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  800|  1.58k|        break;
  801|       |
  802|  2.57k|      case Opcode::Br: {
  ------------------
  |  Branch (802:7): [True: 2.57k, False: 791k]
  ------------------
  803|  2.57k|        Index depth;
  804|  2.57k|        CHECK_RESULT(ReadIndex(&depth, "br depth"));
  ------------------
  |  |   55|  2.57k|  do {                              \
  |  |   56|  2.57k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 2.57k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  2.57k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  805|  2.57k|        CALLBACK(OnBrExpr, depth);
  ------------------
  |  |   66|  2.57k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.57k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.57k|  do {                      \
  |  |  |  |  |  |   48|  2.57k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 11, False: 2.56k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     11|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     11|  do {                       \
  |  |  |  |  |  |  |  |   42|     11|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     11|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     11|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     11|    }                       \
  |  |  |  |  |  |   51|  2.57k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.57k|               #member " callback failed")
  ------------------
  806|  2.56k|        CALLBACK(OnOpcodeIndex, depth);
  ------------------
  |  |   66|  2.56k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.56k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.56k|  do {                      \
  |  |  |  |  |  |   48|  2.56k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.56k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.56k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.56k|               #member " callback failed")
  ------------------
  807|  2.56k|        break;
  808|  2.56k|      }
  809|       |
  810|  2.56k|      case Opcode::BrIf: {
  ------------------
  |  Branch (810:7): [True: 360, False: 793k]
  ------------------
  811|    360|        Index depth;
  812|    360|        CHECK_RESULT(ReadIndex(&depth, "br_if depth"));
  ------------------
  |  |   55|    360|  do {                              \
  |  |   56|    360|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 360]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    360|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  813|    360|        CALLBACK(OnBrIfExpr, depth);
  ------------------
  |  |   66|    360|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    360|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    360|  do {                      \
  |  |  |  |  |  |   48|    360|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 358]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|    360|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    360|               #member " callback failed")
  ------------------
  814|    358|        CALLBACK(OnOpcodeIndex, depth);
  ------------------
  |  |   66|    358|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    358|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    358|  do {                      \
  |  |  |  |  |  |   48|    358|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 358]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    358|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    358|               #member " callback failed")
  ------------------
  815|    358|        break;
  816|    358|      }
  817|       |
  818|  1.65k|      case Opcode::BrTable: {
  ------------------
  |  Branch (818:7): [True: 1.65k, False: 792k]
  ------------------
  819|  1.65k|        Index num_targets;
  820|  1.65k|        CHECK_RESULT(ReadCount(&num_targets, "br_table target count"));
  ------------------
  |  |   55|  1.65k|  do {                              \
  |  |   56|  1.65k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 1.65k]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|  1.65k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  821|  1.65k|        target_depths_.resize(num_targets);
  822|       |
  823|  6.57k|        for (Index i = 0; i < num_targets; ++i) {
  ------------------
  |  Branch (823:27): [True: 4.92k, False: 1.65k]
  ------------------
  824|  4.92k|          Index target_depth;
  825|  4.92k|          CHECK_RESULT(ReadIndex(&target_depth, "br_table target depth"));
  ------------------
  |  |   55|  4.92k|  do {                              \
  |  |   56|  4.92k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 4.92k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  4.92k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  826|  4.92k|          target_depths_[i] = target_depth;
  827|  4.92k|        }
  828|       |
  829|  1.65k|        Index default_target_depth;
  830|  1.65k|        CHECK_RESULT(
  ------------------
  |  |   55|  1.65k|  do {                              \
  |  |   56|  1.65k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.65k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.65k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  831|  1.65k|            ReadIndex(&default_target_depth, "br_table default target depth"));
  832|       |
  833|  1.65k|        Index* target_depths = num_targets ? target_depths_.data() : nullptr;
  ------------------
  |  Branch (833:32): [True: 1.14k, False: 512]
  ------------------
  834|       |
  835|  1.65k|        CALLBACK(OnBrTableExpr, num_targets, target_depths,
  ------------------
  |  |   66|  1.65k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.65k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.65k|  do {                      \
  |  |  |  |  |  |   48|  1.65k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 14, False: 1.63k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     14|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     14|  do {                       \
  |  |  |  |  |  |  |  |   42|     14|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     14|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     14|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     14|    }                       \
  |  |  |  |  |  |   51|  1.65k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.65k|               #member " callback failed")
  ------------------
  836|  1.63k|                 default_target_depth);
  837|  1.63k|        break;
  838|  1.65k|      }
  839|       |
  840|  2.71k|      case Opcode::Return:
  ------------------
  |  Branch (840:7): [True: 2.71k, False: 791k]
  ------------------
  841|  2.71k|        CALLBACK0(OnReturnExpr);
  ------------------
  |  |   63|  2.71k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  2.71k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.71k|  do {                      \
  |  |  |  |  |  |   48|  2.71k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 2.71k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|  2.71k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  842|  2.71k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|  2.71k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  2.71k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.71k|  do {                      \
  |  |  |  |  |  |   48|  2.71k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.71k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.71k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  843|  2.71k|        break;
  844|       |
  845|  53.2k|      case Opcode::Nop:
  ------------------
  |  Branch (845:7): [True: 53.2k, False: 740k]
  ------------------
  846|  53.2k|        CALLBACK0(OnNopExpr);
  ------------------
  |  |   63|  53.2k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  53.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  53.2k|  do {                      \
  |  |  |  |  |  |   48|  53.2k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 53.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  53.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  847|  53.2k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|  53.2k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  53.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  53.2k|  do {                      \
  |  |  |  |  |  |   48|  53.2k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 53.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  53.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  848|  53.2k|        break;
  849|       |
  850|  53.2k|      case Opcode::Drop:
  ------------------
  |  Branch (850:7): [True: 1.55k, False: 792k]
  ------------------
  851|  1.55k|        CALLBACK0(OnDropExpr);
  ------------------
  |  |   63|  1.55k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  1.55k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.55k|  do {                      \
  |  |  |  |  |  |   48|  1.55k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 1.55k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|  1.55k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  852|  1.55k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|  1.55k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  1.55k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.55k|  do {                      \
  |  |  |  |  |  |   48|  1.55k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.55k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  1.55k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  853|  1.55k|        break;
  854|       |
  855|  32.5k|      case Opcode::End:
  ------------------
  |  Branch (855:7): [True: 32.5k, False: 761k]
  ------------------
  856|  32.5k|        CALLBACK0(OnEndExpr);
  ------------------
  |  |   63|  32.5k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  32.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  32.5k|  do {                      \
  |  |  |  |  |  |   48|  32.5k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 16, False: 32.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     16|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     16|  do {                       \
  |  |  |  |  |  |  |  |   42|     16|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     16|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     16|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     16|    }                       \
  |  |  |  |  |  |   51|  32.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  857|  32.5k|        if (nested_blocks.empty()) {
  ------------------
  |  Branch (857:13): [True: 12.1k, False: 20.3k]
  ------------------
  858|  12.1k|          return Result::Ok;
  859|  12.1k|        }
  860|  20.3k|        nested_blocks.pop();
  861|  20.3k|        break;
  862|       |
  863|  33.5k|      case Opcode::I32Const: {
  ------------------
  |  Branch (863:7): [True: 33.5k, False: 760k]
  ------------------
  864|  33.5k|        uint32_t value;
  865|  33.5k|        CHECK_RESULT(ReadS32Leb128(&value, "i32.const value"));
  ------------------
  |  |   55|  33.5k|  do {                              \
  |  |   56|  33.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 33.5k]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|  33.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  866|  33.5k|        CALLBACK(OnI32ConstExpr, value);
  ------------------
  |  |   66|  33.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  33.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  33.5k|  do {                      \
  |  |  |  |  |  |   48|  33.5k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 33.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  33.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  33.5k|               #member " callback failed")
  ------------------
  867|  33.5k|        CALLBACK(OnOpcodeUint32, value);
  ------------------
  |  |   66|  33.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  33.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  33.5k|  do {                      \
  |  |  |  |  |  |   48|  33.5k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 33.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  33.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  33.5k|               #member " callback failed")
  ------------------
  868|  33.5k|        break;
  869|  33.5k|      }
  870|       |
  871|  33.5k|      case Opcode::I64Const: {
  ------------------
  |  Branch (871:7): [True: 6.78k, False: 787k]
  ------------------
  872|  6.78k|        uint64_t value;
  873|  6.78k|        CHECK_RESULT(ReadS64Leb128(&value, "i64.const value"));
  ------------------
  |  |   55|  6.78k|  do {                              \
  |  |   56|  6.78k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 6.78k]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|  6.78k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  874|  6.78k|        CALLBACK(OnI64ConstExpr, value);
  ------------------
  |  |   66|  6.78k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  6.78k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  6.78k|  do {                      \
  |  |  |  |  |  |   48|  6.78k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 6.78k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  6.78k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  6.78k|               #member " callback failed")
  ------------------
  875|  6.78k|        CALLBACK(OnOpcodeUint64, value);
  ------------------
  |  |   66|  6.78k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  6.78k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  6.78k|  do {                      \
  |  |  |  |  |  |   48|  6.78k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 6.78k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  6.78k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  6.78k|               #member " callback failed")
  ------------------
  876|  6.78k|        break;
  877|  6.78k|      }
  878|       |
  879|  18.9k|      case Opcode::F32Const: {
  ------------------
  |  Branch (879:7): [True: 18.9k, False: 774k]
  ------------------
  880|  18.9k|        uint32_t value_bits = 0;
  881|  18.9k|        CHECK_RESULT(ReadF32(&value_bits, "f32.const value"));
  ------------------
  |  |   55|  18.9k|  do {                              \
  |  |   56|  18.9k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 18.9k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  18.9k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  882|  18.9k|        CALLBACK(OnF32ConstExpr, value_bits);
  ------------------
  |  |   66|  18.9k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  18.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  18.9k|  do {                      \
  |  |  |  |  |  |   48|  18.9k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 18.9k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  18.9k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  18.9k|               #member " callback failed")
  ------------------
  883|  18.9k|        CALLBACK(OnOpcodeF32, value_bits);
  ------------------
  |  |   66|  18.9k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  18.9k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  18.9k|  do {                      \
  |  |  |  |  |  |   48|  18.9k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 18.9k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  18.9k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  18.9k|               #member " callback failed")
  ------------------
  884|  18.9k|        break;
  885|  18.9k|      }
  886|       |
  887|  18.9k|      case Opcode::F64Const: {
  ------------------
  |  Branch (887:7): [True: 2.45k, False: 791k]
  ------------------
  888|  2.45k|        uint64_t value_bits = 0;
  889|  2.45k|        CHECK_RESULT(ReadF64(&value_bits, "f64.const value"));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
  890|  2.45k|        CALLBACK(OnF64ConstExpr, value_bits);
  ------------------
  |  |   66|  2.45k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.45k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.45k|  do {                      \
  |  |  |  |  |  |   48|  2.45k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.45k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.45k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.45k|               #member " callback failed")
  ------------------
  891|  2.45k|        CALLBACK(OnOpcodeF64, value_bits);
  ------------------
  |  |   66|  2.45k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.45k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.45k|  do {                      \
  |  |  |  |  |  |   48|  2.45k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.45k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.45k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.45k|               #member " callback failed")
  ------------------
  892|  2.45k|        break;
  893|  2.45k|      }
  894|       |
  895|  4.60k|      case Opcode::V128Const: {
  ------------------
  |  Branch (895:7): [True: 4.60k, False: 789k]
  ------------------
  896|  4.60k|        v128 value_bits;
  897|  4.60k|        ZeroMemory(value_bits);
  898|  4.60k|        CHECK_RESULT(ReadV128(&value_bits, "v128.const value"));
  ------------------
  |  |   55|  4.60k|  do {                              \
  |  |   56|  4.60k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4.60k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  4.60k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  899|  4.60k|        CALLBACK(OnV128ConstExpr, value_bits);
  ------------------
  |  |   66|  4.60k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  4.60k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  4.60k|  do {                      \
  |  |  |  |  |  |   48|  4.60k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 4.60k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  4.60k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  4.60k|               #member " callback failed")
  ------------------
  900|  4.60k|        CALLBACK(OnOpcodeV128, value_bits);
  ------------------
  |  |   66|  4.60k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  4.60k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  4.60k|  do {                      \
  |  |  |  |  |  |   48|  4.60k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 4.60k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  4.60k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  4.60k|               #member " callback failed")
  ------------------
  901|  4.60k|        break;
  902|  4.60k|      }
  903|       |
  904|  9.68k|      case Opcode::GlobalGet: {
  ------------------
  |  Branch (904:7): [True: 9.68k, False: 784k]
  ------------------
  905|  9.68k|        Index global_index;
  906|  9.68k|        CHECK_RESULT(ReadIndex(&global_index, "global.get global index"));
  ------------------
  |  |   55|  9.68k|  do {                              \
  |  |   56|  9.68k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 9.68k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  9.68k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  907|  9.68k|        CALLBACK(OnGlobalGetExpr, global_index);
  ------------------
  |  |   66|  9.68k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  9.68k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  9.68k|  do {                      \
  |  |  |  |  |  |   48|  9.68k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 12, False: 9.66k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     12|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     12|  do {                       \
  |  |  |  |  |  |  |  |   42|     12|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     12|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     12|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|    }                       \
  |  |  |  |  |  |   51|  9.68k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  9.68k|               #member " callback failed")
  ------------------
  908|  9.66k|        CALLBACK(OnOpcodeIndex, global_index);
  ------------------
  |  |   66|  9.66k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  9.66k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  9.66k|  do {                      \
  |  |  |  |  |  |   48|  9.66k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 9.66k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  9.66k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  9.66k|               #member " callback failed")
  ------------------
  909|  9.66k|        break;
  910|  9.66k|      }
  911|       |
  912|  16.1k|      case Opcode::LocalGet: {
  ------------------
  |  Branch (912:7): [True: 16.1k, False: 777k]
  ------------------
  913|  16.1k|        Index local_index;
  914|  16.1k|        CHECK_RESULT(ReadIndex(&local_index, "local.get local index"));
  ------------------
  |  |   55|  16.1k|  do {                              \
  |  |   56|  16.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 16.1k]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|  16.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  915|  16.1k|        CALLBACK(OnLocalGetExpr, local_index);
  ------------------
  |  |   66|  16.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  16.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  16.1k|  do {                      \
  |  |  |  |  |  |   48|  16.1k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 7, False: 16.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      7|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      7|  do {                       \
  |  |  |  |  |  |  |  |   42|      7|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      7|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      7|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|    }                       \
  |  |  |  |  |  |   51|  16.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  16.1k|               #member " callback failed")
  ------------------
  916|  16.1k|        CALLBACK(OnOpcodeIndex, local_index);
  ------------------
  |  |   66|  16.1k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  16.1k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  16.1k|  do {                      \
  |  |  |  |  |  |   48|  16.1k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 16.1k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  16.1k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  16.1k|               #member " callback failed")
  ------------------
  917|  16.1k|        break;
  918|  16.1k|      }
  919|       |
  920|  16.1k|      case Opcode::GlobalSet: {
  ------------------
  |  Branch (920:7): [True: 8.96k, False: 784k]
  ------------------
  921|  8.96k|        Index global_index;
  922|  8.96k|        CHECK_RESULT(ReadIndex(&global_index, "global.set global index"));
  ------------------
  |  |   55|  8.96k|  do {                              \
  |  |   56|  8.96k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 8.96k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  8.96k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  923|  8.96k|        CALLBACK(OnGlobalSetExpr, global_index);
  ------------------
  |  |   66|  8.96k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  8.96k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  8.96k|  do {                      \
  |  |  |  |  |  |   48|  8.96k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 4, False: 8.96k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      4|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      4|  do {                       \
  |  |  |  |  |  |  |  |   42|      4|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      4|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      4|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|    }                       \
  |  |  |  |  |  |   51|  8.96k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  8.96k|               #member " callback failed")
  ------------------
  924|  8.96k|        CALLBACK(OnOpcodeIndex, global_index);
  ------------------
  |  |   66|  8.96k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  8.96k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  8.96k|  do {                      \
  |  |  |  |  |  |   48|  8.96k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 8.96k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  8.96k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  8.96k|               #member " callback failed")
  ------------------
  925|  8.96k|        break;
  926|  8.96k|      }
  927|       |
  928|  8.96k|      case Opcode::LocalSet: {
  ------------------
  |  Branch (928:7): [True: 3.98k, False: 789k]
  ------------------
  929|  3.98k|        Index local_index;
  930|  3.98k|        CHECK_RESULT(ReadIndex(&local_index, "local.set local index"));
  ------------------
  |  |   55|  3.98k|  do {                              \
  |  |   56|  3.98k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 3.98k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  3.98k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  931|  3.98k|        CALLBACK(OnLocalSetExpr, local_index);
  ------------------
  |  |   66|  3.98k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.98k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.98k|  do {                      \
  |  |  |  |  |  |   48|  3.98k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 4, False: 3.98k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      4|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      4|  do {                       \
  |  |  |  |  |  |  |  |   42|      4|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      4|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      4|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|    }                       \
  |  |  |  |  |  |   51|  3.98k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.98k|               #member " callback failed")
  ------------------
  932|  3.98k|        CALLBACK(OnOpcodeIndex, local_index);
  ------------------
  |  |   66|  3.98k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.98k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.98k|  do {                      \
  |  |  |  |  |  |   48|  3.98k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3.98k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  3.98k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.98k|               #member " callback failed")
  ------------------
  933|  3.98k|        break;
  934|  3.98k|      }
  935|       |
  936|  3.98k|      case Opcode::Call: {
  ------------------
  |  Branch (936:7): [True: 2.31k, False: 791k]
  ------------------
  937|  2.31k|        Index func_index;
  938|  2.31k|        CHECK_RESULT(ReadIndex(&func_index, "call function index"));
  ------------------
  |  |   55|  2.31k|  do {                              \
  |  |   56|  2.31k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.31k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.31k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  939|  2.31k|        CALLBACK(OnCallExpr, func_index);
  ------------------
  |  |   66|  2.31k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.31k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.31k|  do {                      \
  |  |  |  |  |  |   48|  2.31k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 12, False: 2.30k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     12|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     12|  do {                       \
  |  |  |  |  |  |  |  |   42|     12|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     12|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     12|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|    }                       \
  |  |  |  |  |  |   51|  2.31k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.31k|               #member " callback failed")
  ------------------
  940|  2.30k|        CALLBACK(OnOpcodeIndex, func_index);
  ------------------
  |  |   66|  2.30k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.30k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.30k|  do {                      \
  |  |  |  |  |  |   48|  2.30k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.30k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.30k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.30k|               #member " callback failed")
  ------------------
  941|  2.30k|        break;
  942|  2.30k|      }
  943|       |
  944|  2.30k|      case Opcode::CallIndirect: {
  ------------------
  |  Branch (944:7): [True: 345, False: 793k]
  ------------------
  945|    345|        Index sig_index;
  946|    345|        CHECK_RESULT(ReadIndex(&sig_index, "call_indirect signature index"));
  ------------------
  |  |   55|    345|  do {                              \
  |  |   56|    345|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 344]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    345|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  947|    344|        Index table_index = 0;
  948|    344|        if (options_.features.reference_types_enabled()) {
  ------------------
  |  Branch (948:13): [True: 344, False: 0]
  ------------------
  949|    344|          CHECK_RESULT(ReadIndex(&table_index, "call_indirect table index"));
  ------------------
  |  |   55|    344|  do {                              \
  |  |   56|    344|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 344]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    344|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  950|    344|        } else {
  951|      0|          uint8_t reserved;
  952|      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]
  |  |  ------------------
  ------------------
  953|      0|          ERROR_UNLESS(reserved == 0, "call_indirect reserved value must be 0");
  ------------------
  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      0|  do {                      \
  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  954|      0|        }
  955|    344|        CALLBACK(OnCallIndirectExpr, sig_index, table_index);
  ------------------
  |  |   66|    344|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    344|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    344|  do {                      \
  |  |  |  |  |  |   48|    344|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 6, False: 338]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      6|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      6|  do {                       \
  |  |  |  |  |  |  |  |   42|      6|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      6|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      6|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|    }                       \
  |  |  |  |  |  |   51|    344|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    344|               #member " callback failed")
  ------------------
  956|    338|        CALLBACK(OnOpcodeUint32Uint32, sig_index, table_index);
  ------------------
  |  |   66|    338|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    338|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    338|  do {                      \
  |  |  |  |  |  |   48|    338|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 338]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    338|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    338|               #member " callback failed")
  ------------------
  957|    338|        break;
  958|    338|      }
  959|       |
  960|    338|      case Opcode::ReturnCall: {
  ------------------
  |  Branch (960:7): [True: 18, False: 793k]
  ------------------
  961|     18|        Index func_index;
  962|     18|        CHECK_RESULT(ReadIndex(&func_index, "return_call"));
  ------------------
  |  |   55|     18|  do {                              \
  |  |   56|     18|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 18]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     18|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  963|     18|        CALLBACK(OnReturnCallExpr, func_index);
  ------------------
  |  |   66|     18|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     18|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     18|  do {                      \
  |  |  |  |  |  |   48|     18|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 11, False: 7]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     11|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     11|  do {                       \
  |  |  |  |  |  |  |  |   42|     11|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     11|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     11|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     11|    }                       \
  |  |  |  |  |  |   51|     18|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     18|               #member " callback failed")
  ------------------
  964|      7|        CALLBACK(OnOpcodeIndex, func_index);
  ------------------
  |  |   66|      7|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      7|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      7|  do {                      \
  |  |  |  |  |  |   48|      7|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 7]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      7|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      7|               #member " callback failed")
  ------------------
  965|      7|        break;
  966|      7|      }
  967|       |
  968|     31|      case Opcode::ReturnCallIndirect: {
  ------------------
  |  Branch (968:7): [True: 31, False: 793k]
  ------------------
  969|     31|        Index sig_index;
  970|     31|        CHECK_RESULT(ReadIndex(&sig_index, "return_call_indirect"));
  ------------------
  |  |   55|     31|  do {                              \
  |  |   56|     31|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 31]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     31|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  971|     31|        Index table_index = 0;
  972|     31|        if (options_.features.reference_types_enabled()) {
  ------------------
  |  Branch (972:13): [True: 31, False: 0]
  ------------------
  973|     31|          CHECK_RESULT(
  ------------------
  |  |   55|     31|  do {                              \
  |  |   56|     31|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 31]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     31|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  974|     31|              ReadIndex(&table_index, "return_call_indirect table index"));
  975|     31|        } else {
  976|      0|          uint8_t reserved;
  977|      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]
  |  |  ------------------
  ------------------
  978|      0|          ERROR_UNLESS(reserved == 0,
  ------------------
  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      0|  do {                      \
  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  979|      0|                       "return_call_indirect reserved value must be 0");
  980|      0|        }
  981|     31|        CALLBACK(OnReturnCallIndirectExpr, sig_index, table_index);
  ------------------
  |  |   66|     31|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     31|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     31|  do {                      \
  |  |  |  |  |  |   48|     31|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 6, False: 25]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      6|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      6|  do {                       \
  |  |  |  |  |  |  |  |   42|      6|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      6|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      6|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|    }                       \
  |  |  |  |  |  |   51|     31|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     31|               #member " callback failed")
  ------------------
  982|     25|        CALLBACK(OnOpcodeUint32Uint32, sig_index, table_index);
  ------------------
  |  |   66|     25|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     25|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     25|  do {                      \
  |  |  |  |  |  |   48|     25|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 25]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     25|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     25|               #member " callback failed")
  ------------------
  983|     25|        break;
  984|     25|      }
  985|       |
  986|  2.03k|      case Opcode::LocalTee: {
  ------------------
  |  Branch (986:7): [True: 2.03k, False: 791k]
  ------------------
  987|  2.03k|        Index local_index;
  988|  2.03k|        CHECK_RESULT(ReadIndex(&local_index, "local.tee local index"));
  ------------------
  |  |   55|  2.03k|  do {                              \
  |  |   56|  2.03k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.03k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.03k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  989|  2.03k|        CALLBACK(OnLocalTeeExpr, local_index);
  ------------------
  |  |   66|  2.03k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.03k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.03k|  do {                      \
  |  |  |  |  |  |   48|  2.03k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 4, False: 2.02k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      4|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      4|  do {                       \
  |  |  |  |  |  |  |  |   42|      4|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      4|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      4|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|    }                       \
  |  |  |  |  |  |   51|  2.03k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.03k|               #member " callback failed")
  ------------------
  990|  2.02k|        CALLBACK(OnOpcodeIndex, local_index);
  ------------------
  |  |   66|  2.02k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.02k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.02k|  do {                      \
  |  |  |  |  |  |   48|  2.02k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.02k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.02k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.02k|               #member " callback failed")
  ------------------
  991|  2.02k|        break;
  992|  2.02k|      }
  993|       |
  994|  2.02k|      case Opcode::I32Load8S:
  ------------------
  |  Branch (994:7): [True: 1.48k, False: 792k]
  ------------------
  995|  3.73k|      case Opcode::I32Load8U:
  ------------------
  |  Branch (995:7): [True: 2.25k, False: 791k]
  ------------------
  996|  4.56k|      case Opcode::I32Load16S:
  ------------------
  |  Branch (996:7): [True: 829, False: 793k]
  ------------------
  997|  5.25k|      case Opcode::I32Load16U:
  ------------------
  |  Branch (997:7): [True: 689, False: 793k]
  ------------------
  998|  6.08k|      case Opcode::I64Load8S:
  ------------------
  |  Branch (998:7): [True: 833, False: 793k]
  ------------------
  999|  6.67k|      case Opcode::I64Load8U:
  ------------------
  |  Branch (999:7): [True: 587, False: 793k]
  ------------------
 1000|  6.86k|      case Opcode::I64Load16S:
  ------------------
  |  Branch (1000:7): [True: 192, False: 793k]
  ------------------
 1001|  7.05k|      case Opcode::I64Load16U:
  ------------------
  |  Branch (1001:7): [True: 187, False: 793k]
  ------------------
 1002|  7.54k|      case Opcode::I64Load32S:
  ------------------
  |  Branch (1002:7): [True: 494, False: 793k]
  ------------------
 1003|  7.73k|      case Opcode::I64Load32U:
  ------------------
  |  Branch (1003:7): [True: 189, False: 793k]
  ------------------
 1004|  14.6k|      case Opcode::I32Load:
  ------------------
  |  Branch (1004:7): [True: 6.86k, False: 787k]
  ------------------
 1005|  19.0k|      case Opcode::I64Load:
  ------------------
  |  Branch (1005:7): [True: 4.40k, False: 789k]
  ------------------
 1006|  20.4k|      case Opcode::F32Load:
  ------------------
  |  Branch (1006:7): [True: 1.42k, False: 792k]
  ------------------
 1007|  20.7k|      case Opcode::F64Load:
  ------------------
  |  Branch (1007:7): [True: 334, False: 793k]
  ------------------
 1008|  22.2k|      case Opcode::V128Load:
  ------------------
  |  Branch (1008:7): [True: 1.47k, False: 792k]
  ------------------
 1009|  22.3k|      case Opcode::V128Load8X8S:
  ------------------
  |  Branch (1009:7): [True: 133, False: 793k]
  ------------------
 1010|  22.7k|      case Opcode::V128Load8X8U:
  ------------------
  |  Branch (1010:7): [True: 360, False: 793k]
  ------------------
 1011|  22.8k|      case Opcode::V128Load16X4S:
  ------------------
  |  Branch (1011:7): [True: 66, False: 793k]
  ------------------
 1012|  22.9k|      case Opcode::V128Load16X4U:
  ------------------
  |  Branch (1012:7): [True: 125, False: 793k]
  ------------------
 1013|  23.1k|      case Opcode::V128Load32X2S:
  ------------------
  |  Branch (1013:7): [True: 219, False: 793k]
  ------------------
 1014|  23.2k|      case Opcode::V128Load32X2U: {
  ------------------
  |  Branch (1014:7): [True: 131, False: 793k]
  ------------------
 1015|  23.2k|        Address alignment_log2;
 1016|  23.2k|        Index memidx;
 1017|  23.2k|        Address offset;
 1018|  23.2k|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|  23.2k|  do {                              \
  |  |   56|  23.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 47, False: 23.2k]
  |  |  ------------------
  |  |   57|     47|      return ::wabt::Result::Error; \
  |  |   58|     47|    }                               \
  |  |   59|  23.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1019|  23.2k|                                     "load alignment", "load memidx",
 1020|  23.2k|                                     "load offset"));
 1021|  23.2k|        CALLBACK(OnLoadExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   66|  23.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  23.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  23.2k|  do {                      \
  |  |  |  |  |  |   48|  23.2k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 18, False: 23.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     18|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     18|  do {                       \
  |  |  |  |  |  |  |  |   42|     18|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     18|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     18|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     18|    }                       \
  |  |  |  |  |  |   51|  23.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  23.2k|               #member " callback failed")
  ------------------
 1022|  23.2k|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|  23.2k|  do {                              \
  |  |   56|  23.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 23.2k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  23.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1023|  23.2k|        break;
 1024|  23.2k|      }
 1025|       |
 1026|  23.2k|      case Opcode::I32Store8:
  ------------------
  |  Branch (1026:7): [True: 20, False: 793k]
  ------------------
 1027|    178|      case Opcode::I32Store16:
  ------------------
  |  Branch (1027:7): [True: 158, False: 793k]
  ------------------
 1028|    197|      case Opcode::I64Store8:
  ------------------
  |  Branch (1028:7): [True: 19, False: 793k]
  ------------------
 1029|    237|      case Opcode::I64Store16:
  ------------------
  |  Branch (1029:7): [True: 40, False: 793k]
  ------------------
 1030|    262|      case Opcode::I64Store32:
  ------------------
  |  Branch (1030:7): [True: 25, False: 793k]
  ------------------
 1031|    303|      case Opcode::I32Store:
  ------------------
  |  Branch (1031:7): [True: 41, False: 793k]
  ------------------
 1032|    395|      case Opcode::I64Store:
  ------------------
  |  Branch (1032:7): [True: 92, False: 793k]
  ------------------
 1033|    455|      case Opcode::F32Store:
  ------------------
  |  Branch (1033:7): [True: 60, False: 793k]
  ------------------
 1034|    455|      case Opcode::F64Store:
  ------------------
  |  Branch (1034:7): [True: 0, False: 793k]
  ------------------
 1035|    471|      case Opcode::V128Store: {
  ------------------
  |  Branch (1035:7): [True: 16, False: 793k]
  ------------------
 1036|    471|        Address alignment_log2;
 1037|    471|        Index memidx;
 1038|    471|        Address offset;
 1039|    471|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|    471|  do {                              \
  |  |   56|    471|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 461]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|    471|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1040|    471|                                     "store alignment", "store memidx",
 1041|    471|                                     "store offset"));
 1042|    461|        CALLBACK(OnStoreExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   66|    461|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    461|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    461|  do {                      \
  |  |  |  |  |  |   48|    461|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 459]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|    461|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    461|               #member " callback failed")
  ------------------
 1043|    459|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|    459|  do {                              \
  |  |   56|    459|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 459]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    459|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1044|    459|        break;
 1045|    459|      }
 1046|       |
 1047|  4.53k|      case Opcode::MemorySize: {
  ------------------
  |  Branch (1047:7): [True: 4.53k, False: 789k]
  ------------------
 1048|  4.53k|        Index memidx = 0;
 1049|  4.53k|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1049:13): [True: 952, False: 3.57k]
  ------------------
 1050|    952|          uint8_t reserved;
 1051|    952|          CHECK_RESULT(ReadU8(&reserved, "memory.size reserved"));
  ------------------
  |  |   55|    952|  do {                              \
  |  |   56|    952|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 952]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    952|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1052|    952|          ERROR_UNLESS(reserved == 0, "memory.size reserved value must be 0");
  ------------------
  |  |   53|    952|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|    952|  do {                      \
  |  |  |  |   48|    952|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 1, False: 951]
  |  |  |  |  ------------------
  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      1|    }                       \
  |  |  |  |   51|    952|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1053|  3.57k|        } else {
 1054|  3.57k|          CHECK_RESULT(ReadMemidx(&memidx, "memory.size memidx"));
  ------------------
  |  |   55|  3.57k|  do {                              \
  |  |   56|  3.57k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 3.57k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  3.57k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1055|  3.57k|        }
 1056|  4.53k|        CALLBACK(OnMemorySizeExpr, memidx);
  ------------------
  |  |   66|  4.53k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  4.53k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  4.53k|  do {                      \
  |  |  |  |  |  |   48|  4.53k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 4.52k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|  4.53k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  4.53k|               #member " callback failed")
  ------------------
 1057|  4.52k|        CALLBACK(OnOpcodeUint32, memidx);
  ------------------
  |  |   66|  4.52k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  4.52k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  4.52k|  do {                      \
  |  |  |  |  |  |   48|  4.52k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 4.52k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  4.52k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  4.52k|               #member " callback failed")
  ------------------
 1058|  4.52k|        break;
 1059|  4.52k|      }
 1060|       |
 1061|  9.18k|      case Opcode::MemoryGrow: {
  ------------------
  |  Branch (1061:7): [True: 9.18k, False: 784k]
  ------------------
 1062|  9.18k|        Index memidx = 0;
 1063|  9.18k|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1063:13): [True: 1.96k, False: 7.21k]
  ------------------
 1064|  1.96k|          uint8_t reserved;
 1065|  1.96k|          CHECK_RESULT(ReadU8(&reserved, "memory.grow reserved"));
  ------------------
  |  |   55|  1.96k|  do {                              \
  |  |   56|  1.96k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.96k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.96k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1066|  1.96k|          ERROR_UNLESS(reserved == 0, "memory.grow reserved value must be 0");
  ------------------
  |  |   53|  1.96k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  1.96k|  do {                      \
  |  |  |  |   48|  1.96k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 2, False: 1.96k]
  |  |  |  |  ------------------
  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      2|    }                       \
  |  |  |  |   51|  1.96k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1067|  7.21k|        } else {
 1068|  7.21k|          CHECK_RESULT(ReadMemidx(&memidx, "memory.grow memidx"));
  ------------------
  |  |   55|  7.21k|  do {                              \
  |  |   56|  7.21k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 7.21k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  7.21k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1069|  7.21k|        }
 1070|  9.18k|        CALLBACK(OnMemoryGrowExpr, memidx);
  ------------------
  |  |   66|  9.18k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  9.18k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  9.18k|  do {                      \
  |  |  |  |  |  |   48|  9.18k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 7, False: 9.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      7|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      7|  do {                       \
  |  |  |  |  |  |  |  |   42|      7|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      7|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      7|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|    }                       \
  |  |  |  |  |  |   51|  9.18k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  9.18k|               #member " callback failed")
  ------------------
 1071|  9.17k|        CALLBACK(OnOpcodeUint32, memidx);
  ------------------
  |  |   66|  9.17k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  9.17k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  9.17k|  do {                      \
  |  |  |  |  |  |   48|  9.17k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 9.17k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  9.17k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  9.17k|               #member " callback failed")
  ------------------
 1072|  9.17k|        break;
 1073|  9.17k|      }
 1074|       |
 1075|  9.17k|      case Opcode::I32Add:
  ------------------
  |  Branch (1075:7): [True: 156, False: 793k]
  ------------------
 1076|    313|      case Opcode::I32Sub:
  ------------------
  |  Branch (1076:7): [True: 157, False: 793k]
  ------------------
 1077|    689|      case Opcode::I32Mul:
  ------------------
  |  Branch (1077:7): [True: 376, False: 793k]
  ------------------
 1078|    861|      case Opcode::I32DivS:
  ------------------
  |  Branch (1078:7): [True: 172, False: 793k]
  ------------------
 1079|  2.09k|      case Opcode::I32DivU:
  ------------------
  |  Branch (1079:7): [True: 1.23k, False: 792k]
  ------------------
 1080|  2.57k|      case Opcode::I32RemS:
  ------------------
  |  Branch (1080:7): [True: 482, False: 793k]
  ------------------
 1081|  2.72k|      case Opcode::I32RemU:
  ------------------
  |  Branch (1081:7): [True: 150, False: 793k]
  ------------------
 1082|  2.99k|      case Opcode::I32And:
  ------------------
  |  Branch (1082:7): [True: 270, False: 793k]
  ------------------
 1083|  3.66k|      case Opcode::I32Or:
  ------------------
  |  Branch (1083:7): [True: 671, False: 793k]
  ------------------
 1084|  7.07k|      case Opcode::I32Xor:
  ------------------
  |  Branch (1084:7): [True: 3.41k, False: 790k]
  ------------------
 1085|  7.51k|      case Opcode::I32Shl:
  ------------------
  |  Branch (1085:7): [True: 439, False: 793k]
  ------------------
 1086|  7.66k|      case Opcode::I32ShrU:
  ------------------
  |  Branch (1086:7): [True: 146, False: 793k]
  ------------------
 1087|  7.71k|      case Opcode::I32ShrS:
  ------------------
  |  Branch (1087:7): [True: 55, False: 793k]
  ------------------
 1088|  8.24k|      case Opcode::I32Rotr:
  ------------------
  |  Branch (1088:7): [True: 522, False: 793k]
  ------------------
 1089|  8.42k|      case Opcode::I32Rotl:
  ------------------
  |  Branch (1089:7): [True: 183, False: 793k]
  ------------------
 1090|  9.79k|      case Opcode::I64Add:
  ------------------
  |  Branch (1090:7): [True: 1.36k, False: 792k]
  ------------------
 1091|  12.6k|      case Opcode::I64Sub:
  ------------------
  |  Branch (1091:7): [True: 2.81k, False: 791k]
  ------------------
 1092|  13.2k|      case Opcode::I64Mul:
  ------------------
  |  Branch (1092:7): [True: 616, False: 793k]
  ------------------
 1093|  13.5k|      case Opcode::I64DivS:
  ------------------
  |  Branch (1093:7): [True: 291, False: 793k]
  ------------------
 1094|  22.1k|      case Opcode::I64DivU:
  ------------------
  |  Branch (1094:7): [True: 8.65k, False: 785k]
  ------------------
 1095|  22.5k|      case Opcode::I64RemS:
  ------------------
  |  Branch (1095:7): [True: 428, False: 793k]
  ------------------
 1096|  22.6k|      case Opcode::I64RemU:
  ------------------
  |  Branch (1096:7): [True: 58, False: 793k]
  ------------------
 1097|  22.8k|      case Opcode::I64And:
  ------------------
  |  Branch (1097:7): [True: 173, False: 793k]
  ------------------
 1098|  23.2k|      case Opcode::I64Or:
  ------------------
  |  Branch (1098:7): [True: 383, False: 793k]
  ------------------
 1099|  25.9k|      case Opcode::I64Xor:
  ------------------
  |  Branch (1099:7): [True: 2.70k, False: 791k]
  ------------------
 1100|  26.0k|      case Opcode::I64Shl:
  ------------------
  |  Branch (1100:7): [True: 137, False: 793k]
  ------------------
 1101|  26.1k|      case Opcode::I64ShrU:
  ------------------
  |  Branch (1101:7): [True: 58, False: 793k]
  ------------------
 1102|  26.3k|      case Opcode::I64ShrS:
  ------------------
  |  Branch (1102:7): [True: 272, False: 793k]
  ------------------
 1103|  26.4k|      case Opcode::I64Rotr:
  ------------------
  |  Branch (1103:7): [True: 44, False: 793k]
  ------------------
 1104|  26.6k|      case Opcode::I64Rotl:
  ------------------
  |  Branch (1104:7): [True: 240, False: 793k]
  ------------------
 1105|  26.6k|      case Opcode::F32Add:
  ------------------
  |  Branch (1105:7): [True: 15, False: 793k]
  ------------------
 1106|  26.7k|      case Opcode::F32Sub:
  ------------------
  |  Branch (1106:7): [True: 27, False: 793k]
  ------------------
 1107|  27.0k|      case Opcode::F32Mul:
  ------------------
  |  Branch (1107:7): [True: 373, False: 793k]
  ------------------
 1108|  27.1k|      case Opcode::F32Div:
  ------------------
  |  Branch (1108:7): [True: 46, False: 793k]
  ------------------
 1109|  27.1k|      case Opcode::F32Min:
  ------------------
  |  Branch (1109:7): [True: 0, False: 793k]
  ------------------
 1110|  27.8k|      case Opcode::F32Max:
  ------------------
  |  Branch (1110:7): [True: 693, False: 793k]
  ------------------
 1111|  28.2k|      case Opcode::F32Copysign:
  ------------------
  |  Branch (1111:7): [True: 437, False: 793k]
  ------------------
 1112|  31.1k|      case Opcode::F64Add:
  ------------------
  |  Branch (1112:7): [True: 2.94k, False: 790k]
  ------------------
 1113|  31.1k|      case Opcode::F64Sub:
  ------------------
  |  Branch (1113:7): [True: 0, False: 793k]
  ------------------
 1114|  31.2k|      case Opcode::F64Mul:
  ------------------
  |  Branch (1114:7): [True: 6, False: 793k]
  ------------------
 1115|  32.1k|      case Opcode::F64Div:
  ------------------
  |  Branch (1115:7): [True: 932, False: 792k]
  ------------------
 1116|  32.1k|      case Opcode::F64Min:
  ------------------
  |  Branch (1116:7): [True: 51, False: 793k]
  ------------------
 1117|  32.2k|      case Opcode::F64Max:
  ------------------
  |  Branch (1117:7): [True: 34, False: 793k]
  ------------------
 1118|  32.4k|      case Opcode::F64Copysign:
  ------------------
  |  Branch (1118:7): [True: 207, False: 793k]
  ------------------
 1119|  32.4k|      case Opcode::I8X16Add:
  ------------------
  |  Branch (1119:7): [True: 0, False: 793k]
  ------------------
 1120|  32.6k|      case Opcode::I16X8Add:
  ------------------
  |  Branch (1120:7): [True: 200, False: 793k]
  ------------------
 1121|  32.6k|      case Opcode::I32X4Add:
  ------------------
  |  Branch (1121:7): [True: 0, False: 793k]
  ------------------
 1122|  32.6k|      case Opcode::I64X2Add:
  ------------------
  |  Branch (1122:7): [True: 0, False: 793k]
  ------------------
 1123|  32.6k|      case Opcode::I8X16Sub:
  ------------------
  |  Branch (1123:7): [True: 0, False: 793k]
  ------------------
 1124|  32.6k|      case Opcode::I16X8Sub:
  ------------------
  |  Branch (1124:7): [True: 0, False: 793k]
  ------------------
 1125|  32.6k|      case Opcode::I32X4Sub:
  ------------------
  |  Branch (1125:7): [True: 0, False: 793k]
  ------------------
 1126|  32.6k|      case Opcode::I64X2Sub:
  ------------------
  |  Branch (1126:7): [True: 14, False: 793k]
  ------------------
 1127|  32.6k|      case Opcode::I16X8Mul:
  ------------------
  |  Branch (1127:7): [True: 2, False: 793k]
  ------------------
 1128|  32.6k|      case Opcode::I32X4Mul:
  ------------------
  |  Branch (1128:7): [True: 0, False: 793k]
  ------------------
 1129|  32.6k|      case Opcode::I64X2Mul:
  ------------------
  |  Branch (1129:7): [True: 0, False: 793k]
  ------------------
 1130|  32.7k|      case Opcode::I8X16AddSatS:
  ------------------
  |  Branch (1130:7): [True: 66, False: 793k]
  ------------------
 1131|  32.7k|      case Opcode::I8X16AddSatU:
  ------------------
  |  Branch (1131:7): [True: 0, False: 793k]
  ------------------
 1132|  32.8k|      case Opcode::I16X8AddSatS:
  ------------------
  |  Branch (1132:7): [True: 139, False: 793k]
  ------------------
 1133|  32.8k|      case Opcode::I16X8AddSatU:
  ------------------
  |  Branch (1133:7): [True: 0, False: 793k]
  ------------------
 1134|  32.8k|      case Opcode::I8X16SubSatS:
  ------------------
  |  Branch (1134:7): [True: 0, False: 793k]
  ------------------
 1135|  32.8k|      case Opcode::I8X16SubSatU:
  ------------------
  |  Branch (1135:7): [True: 1, False: 793k]
  ------------------
 1136|  32.8k|      case Opcode::I16X8SubSatS:
  ------------------
  |  Branch (1136:7): [True: 0, False: 793k]
  ------------------
 1137|  32.8k|      case Opcode::I16X8SubSatU:
  ------------------
  |  Branch (1137:7): [True: 0, False: 793k]
  ------------------
 1138|  32.9k|      case Opcode::I8X16MinS:
  ------------------
  |  Branch (1138:7): [True: 54, False: 793k]
  ------------------
 1139|  32.9k|      case Opcode::I16X8MinS:
  ------------------
  |  Branch (1139:7): [True: 0, False: 793k]
  ------------------
 1140|  32.9k|      case Opcode::I32X4MinS:
  ------------------
  |  Branch (1140:7): [True: 0, False: 793k]
  ------------------
 1141|  34.0k|      case Opcode::I8X16MinU:
  ------------------
  |  Branch (1141:7): [True: 1.15k, False: 792k]
  ------------------
 1142|  34.0k|      case Opcode::I16X8MinU:
  ------------------
  |  Branch (1142:7): [True: 0, False: 793k]
  ------------------
 1143|  34.0k|      case Opcode::I32X4MinU:
  ------------------
  |  Branch (1143:7): [True: 3, False: 793k]
  ------------------
 1144|  34.0k|      case Opcode::I8X16MaxS:
  ------------------
  |  Branch (1144:7): [True: 29, False: 793k]
  ------------------
 1145|  34.1k|      case Opcode::I16X8MaxS:
  ------------------
  |  Branch (1145:7): [True: 13, False: 793k]
  ------------------
 1146|  34.1k|      case Opcode::I32X4MaxS:
  ------------------
  |  Branch (1146:7): [True: 47, False: 793k]
  ------------------
 1147|  34.1k|      case Opcode::I8X16MaxU:
  ------------------
  |  Branch (1147:7): [True: 14, False: 793k]
  ------------------
 1148|  35.4k|      case Opcode::I16X8MaxU:
  ------------------
  |  Branch (1148:7): [True: 1.32k, False: 792k]
  ------------------
 1149|  35.4k|      case Opcode::I32X4MaxU:
  ------------------
  |  Branch (1149:7): [True: 15, False: 793k]
  ------------------
 1150|  35.4k|      case Opcode::I8X16Shl:
  ------------------
  |  Branch (1150:7): [True: 0, False: 793k]
  ------------------
 1151|  35.4k|      case Opcode::I16X8Shl:
  ------------------
  |  Branch (1151:7): [True: 0, False: 793k]
  ------------------
 1152|  35.5k|      case Opcode::I32X4Shl:
  ------------------
  |  Branch (1152:7): [True: 9, False: 793k]
  ------------------
 1153|  35.5k|      case Opcode::I64X2Shl:
  ------------------
  |  Branch (1153:7): [True: 2, False: 793k]
  ------------------
 1154|  35.5k|      case Opcode::I8X16ShrS:
  ------------------
  |  Branch (1154:7): [True: 52, False: 793k]
  ------------------
 1155|  35.5k|      case Opcode::I8X16ShrU:
  ------------------
  |  Branch (1155:7): [True: 35, False: 793k]
  ------------------
 1156|  35.5k|      case Opcode::I16X8ShrS:
  ------------------
  |  Branch (1156:7): [True: 0, False: 793k]
  ------------------
 1157|  35.6k|      case Opcode::I16X8ShrU:
  ------------------
  |  Branch (1157:7): [True: 25, False: 793k]
  ------------------
 1158|  35.6k|      case Opcode::I32X4ShrS:
  ------------------
  |  Branch (1158:7): [True: 0, False: 793k]
  ------------------
 1159|  35.6k|      case Opcode::I32X4ShrU:
  ------------------
  |  Branch (1159:7): [True: 0, False: 793k]
  ------------------
 1160|  35.6k|      case Opcode::I64X2ShrS:
  ------------------
  |  Branch (1160:7): [True: 8, False: 793k]
  ------------------
 1161|  35.6k|      case Opcode::I64X2ShrU:
  ------------------
  |  Branch (1161:7): [True: 13, False: 793k]
  ------------------
 1162|  35.6k|      case Opcode::V128And:
  ------------------
  |  Branch (1162:7): [True: 0, False: 793k]
  ------------------
 1163|  35.6k|      case Opcode::V128Or:
  ------------------
  |  Branch (1163:7): [True: 0, False: 793k]
  ------------------
 1164|  38.7k|      case Opcode::V128Xor:
  ------------------
  |  Branch (1164:7): [True: 3.06k, False: 790k]
  ------------------
 1165|  38.7k|      case Opcode::F32X4Min:
  ------------------
  |  Branch (1165:7): [True: 0, False: 793k]
  ------------------
 1166|  38.8k|      case Opcode::F32X4PMin:
  ------------------
  |  Branch (1166:7): [True: 154, False: 793k]
  ------------------
 1167|  38.8k|      case Opcode::F64X2Min:
  ------------------
  |  Branch (1167:7): [True: 13, False: 793k]
  ------------------
 1168|  38.8k|      case Opcode::F64X2PMin:
  ------------------
  |  Branch (1168:7): [True: 0, False: 793k]
  ------------------
 1169|  38.8k|      case Opcode::F32X4Max:
  ------------------
  |  Branch (1169:7): [True: 0, False: 793k]
  ------------------
 1170|  38.8k|      case Opcode::F32X4PMax:
  ------------------
  |  Branch (1170:7): [True: 0, False: 793k]
  ------------------
 1171|  38.8k|      case Opcode::F64X2Max:
  ------------------
  |  Branch (1171:7): [True: 0, False: 793k]
  ------------------
 1172|  38.9k|      case Opcode::F64X2PMax:
  ------------------
  |  Branch (1172:7): [True: 38, False: 793k]
  ------------------
 1173|  38.9k|      case Opcode::F32X4Add:
  ------------------
  |  Branch (1173:7): [True: 0, False: 793k]
  ------------------
 1174|  38.9k|      case Opcode::F64X2Add:
  ------------------
  |  Branch (1174:7): [True: 0, False: 793k]
  ------------------
 1175|  38.9k|      case Opcode::F32X4Sub:
  ------------------
  |  Branch (1175:7): [True: 0, False: 793k]
  ------------------
 1176|  38.9k|      case Opcode::F64X2Sub:
  ------------------
  |  Branch (1176:7): [True: 0, False: 793k]
  ------------------
 1177|  38.9k|      case Opcode::F32X4Div:
  ------------------
  |  Branch (1177:7): [True: 0, False: 793k]
  ------------------
 1178|  38.9k|      case Opcode::F64X2Div:
  ------------------
  |  Branch (1178:7): [True: 0, False: 793k]
  ------------------
 1179|  38.9k|      case Opcode::F32X4Mul:
  ------------------
  |  Branch (1179:7): [True: 1, False: 793k]
  ------------------
 1180|  38.9k|      case Opcode::F64X2Mul:
  ------------------
  |  Branch (1180:7): [True: 0, False: 793k]
  ------------------
 1181|  38.9k|      case Opcode::I8X16Swizzle:
  ------------------
  |  Branch (1181:7): [True: 1, False: 793k]
  ------------------
 1182|  38.9k|      case Opcode::I8X16NarrowI16X8S:
  ------------------
  |  Branch (1182:7): [True: 1, False: 793k]
  ------------------
 1183|  38.9k|      case Opcode::I8X16NarrowI16X8U:
  ------------------
  |  Branch (1183:7): [True: 1, False: 793k]
  ------------------
 1184|  39.2k|      case Opcode::I16X8NarrowI32X4S:
  ------------------
  |  Branch (1184:7): [True: 345, False: 793k]
  ------------------
 1185|  39.3k|      case Opcode::I16X8NarrowI32X4U:
  ------------------
  |  Branch (1185:7): [True: 104, False: 793k]
  ------------------
 1186|  39.3k|      case Opcode::V128Andnot:
  ------------------
  |  Branch (1186:7): [True: 0, False: 793k]
  ------------------
 1187|  39.4k|      case Opcode::I8X16AvgrU:
  ------------------
  |  Branch (1187:7): [True: 49, False: 793k]
  ------------------
 1188|  39.4k|      case Opcode::I16X8AvgrU:
  ------------------
  |  Branch (1188:7): [True: 0, False: 793k]
  ------------------
 1189|  39.4k|      case Opcode::I16X8ExtmulLowI8X16S:
  ------------------
  |  Branch (1189:7): [True: 36, False: 793k]
  ------------------
 1190|  39.4k|      case Opcode::I16X8ExtmulHighI8X16S:
  ------------------
  |  Branch (1190:7): [True: 42, False: 793k]
  ------------------
 1191|  39.4k|      case Opcode::I16X8ExtmulLowI8X16U:
  ------------------
  |  Branch (1191:7): [True: 3, False: 793k]
  ------------------
 1192|  39.5k|      case Opcode::I16X8ExtmulHighI8X16U:
  ------------------
  |  Branch (1192:7): [True: 10, False: 793k]
  ------------------
 1193|  39.5k|      case Opcode::I32X4ExtmulLowI16X8S:
  ------------------
  |  Branch (1193:7): [True: 4, False: 793k]
  ------------------
 1194|  39.5k|      case Opcode::I32X4ExtmulHighI16X8S:
  ------------------
  |  Branch (1194:7): [True: 0, False: 793k]
  ------------------
 1195|  39.5k|      case Opcode::I32X4ExtmulLowI16X8U:
  ------------------
  |  Branch (1195:7): [True: 0, False: 793k]
  ------------------
 1196|  39.5k|      case Opcode::I32X4ExtmulHighI16X8U:
  ------------------
  |  Branch (1196:7): [True: 0, False: 793k]
  ------------------
 1197|  39.6k|      case Opcode::I64X2ExtmulLowI32X4S:
  ------------------
  |  Branch (1197:7): [True: 99, False: 793k]
  ------------------
 1198|  39.6k|      case Opcode::I64X2ExtmulHighI32X4S:
  ------------------
  |  Branch (1198:7): [True: 0, False: 793k]
  ------------------
 1199|  39.6k|      case Opcode::I64X2ExtmulLowI32X4U:
  ------------------
  |  Branch (1199:7): [True: 20, False: 793k]
  ------------------
 1200|  39.6k|      case Opcode::I64X2ExtmulHighI32X4U:
  ------------------
  |  Branch (1200:7): [True: 21, False: 793k]
  ------------------
 1201|  39.6k|      case Opcode::I16X8Q15mulrSatS:
  ------------------
  |  Branch (1201:7): [True: 0, False: 793k]
  ------------------
 1202|  39.6k|      case Opcode::I32X4DotI16X8S:
  ------------------
  |  Branch (1202:7): [True: 0, False: 793k]
  ------------------
 1203|  39.6k|      case Opcode::I8X16RelaxedSwizzle:
  ------------------
  |  Branch (1203:7): [True: 0, False: 793k]
  ------------------
 1204|  39.6k|      case Opcode::F32X4RelaxedMin:
  ------------------
  |  Branch (1204:7): [True: 0, False: 793k]
  ------------------
 1205|  39.6k|      case Opcode::F32X4RelaxedMax:
  ------------------
  |  Branch (1205:7): [True: 6, False: 793k]
  ------------------
 1206|  39.6k|      case Opcode::F64X2RelaxedMin:
  ------------------
  |  Branch (1206:7): [True: 8, False: 793k]
  ------------------
 1207|  39.6k|      case Opcode::F64X2RelaxedMax:
  ------------------
  |  Branch (1207:7): [True: 0, False: 793k]
  ------------------
 1208|  39.6k|      case Opcode::I16X8RelaxedQ15mulrS:
  ------------------
  |  Branch (1208:7): [True: 0, False: 793k]
  ------------------
 1209|  39.6k|      case Opcode::I16X8DotI8X16I7X16S:
  ------------------
  |  Branch (1209:7): [True: 0, False: 793k]
  ------------------
 1210|  39.6k|        CALLBACK(OnBinaryExpr, opcode);
  ------------------
  |  |   66|  39.6k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  39.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  39.6k|  do {                      \
  |  |  |  |  |  |   48|  39.6k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 50, False: 39.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     50|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     50|  do {                       \
  |  |  |  |  |  |  |  |   42|     50|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     50|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     50|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     50|    }                       \
  |  |  |  |  |  |   51|  39.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  39.6k|               #member " callback failed")
  ------------------
 1211|  39.6k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|  39.6k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  39.6k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  39.6k|  do {                      \
  |  |  |  |  |  |   48|  39.6k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 39.6k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  39.6k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1212|  39.6k|        break;
 1213|       |
 1214|  39.6k|      case Opcode::I32Eq:
  ------------------
  |  Branch (1214:7): [True: 356, False: 793k]
  ------------------
 1215|    432|      case Opcode::I32Ne:
  ------------------
  |  Branch (1215:7): [True: 76, False: 793k]
  ------------------
 1216|    494|      case Opcode::I32LtS:
  ------------------
  |  Branch (1216:7): [True: 62, False: 793k]
  ------------------
 1217|    581|      case Opcode::I32LeS:
  ------------------
  |  Branch (1217:7): [True: 87, False: 793k]
  ------------------
 1218|    813|      case Opcode::I32LtU:
  ------------------
  |  Branch (1218:7): [True: 232, False: 793k]
  ------------------
 1219|  2.60k|      case Opcode::I32LeU:
  ------------------
  |  Branch (1219:7): [True: 1.78k, False: 792k]
  ------------------
 1220|  2.86k|      case Opcode::I32GtS:
  ------------------
  |  Branch (1220:7): [True: 258, False: 793k]
  ------------------
 1221|  3.17k|      case Opcode::I32GeS:
  ------------------
  |  Branch (1221:7): [True: 310, False: 793k]
  ------------------
 1222|  3.33k|      case Opcode::I32GtU:
  ------------------
  |  Branch (1222:7): [True: 167, False: 793k]
  ------------------
 1223|  3.38k|      case Opcode::I32GeU:
  ------------------
  |  Branch (1223:7): [True: 50, False: 793k]
  ------------------
 1224|  3.43k|      case Opcode::I64Eq:
  ------------------
  |  Branch (1224:7): [True: 47, False: 793k]
  ------------------
 1225|  3.51k|      case Opcode::I64Ne:
  ------------------
  |  Branch (1225:7): [True: 80, False: 793k]
  ------------------
 1226|  3.55k|      case Opcode::I64LtS:
  ------------------
  |  Branch (1226:7): [True: 42, False: 793k]
  ------------------
 1227|  3.60k|      case Opcode::I64LeS:
  ------------------
  |  Branch (1227:7): [True: 53, False: 793k]
  ------------------
 1228|  3.62k|      case Opcode::I64LtU:
  ------------------
  |  Branch (1228:7): [True: 11, False: 793k]
  ------------------
 1229|  4.00k|      case Opcode::I64LeU:
  ------------------
  |  Branch (1229:7): [True: 382, False: 793k]
  ------------------
 1230|  4.28k|      case Opcode::I64GtS:
  ------------------
  |  Branch (1230:7): [True: 284, False: 793k]
  ------------------
 1231|  4.51k|      case Opcode::I64GeS:
  ------------------
  |  Branch (1231:7): [True: 226, False: 793k]
  ------------------
 1232|  4.79k|      case Opcode::I64GtU:
  ------------------
  |  Branch (1232:7): [True: 283, False: 793k]
  ------------------
 1233|  4.82k|      case Opcode::I64GeU:
  ------------------
  |  Branch (1233:7): [True: 28, False: 793k]
  ------------------
 1234|  4.91k|      case Opcode::F32Eq:
  ------------------
  |  Branch (1234:7): [True: 92, False: 793k]
  ------------------
 1235|  4.98k|      case Opcode::F32Ne:
  ------------------
  |  Branch (1235:7): [True: 65, False: 793k]
  ------------------
 1236|  5.57k|      case Opcode::F32Lt:
  ------------------
  |  Branch (1236:7): [True: 592, False: 793k]
  ------------------
 1237|  5.59k|      case Opcode::F32Le:
  ------------------
  |  Branch (1237:7): [True: 19, False: 793k]
  ------------------
 1238|  5.64k|      case Opcode::F32Gt:
  ------------------
  |  Branch (1238:7): [True: 53, False: 793k]
  ------------------
 1239|  6.14k|      case Opcode::F32Ge:
  ------------------
  |  Branch (1239:7): [True: 501, False: 793k]
  ------------------
 1240|  6.44k|      case Opcode::F64Eq:
  ------------------
  |  Branch (1240:7): [True: 301, False: 793k]
  ------------------
 1241|  6.71k|      case Opcode::F64Ne:
  ------------------
  |  Branch (1241:7): [True: 270, False: 793k]
  ------------------
 1242|  7.66k|      case Opcode::F64Lt:
  ------------------
  |  Branch (1242:7): [True: 948, False: 792k]
  ------------------
 1243|  7.68k|      case Opcode::F64Le:
  ------------------
  |  Branch (1243:7): [True: 21, False: 793k]
  ------------------
 1244|  7.86k|      case Opcode::F64Gt:
  ------------------
  |  Branch (1244:7): [True: 181, False: 793k]
  ------------------
 1245|  8.13k|      case Opcode::F64Ge:
  ------------------
  |  Branch (1245:7): [True: 269, False: 793k]
  ------------------
 1246|  8.13k|      case Opcode::I8X16Eq:
  ------------------
  |  Branch (1246:7): [True: 0, False: 793k]
  ------------------
 1247|  8.16k|      case Opcode::I16X8Eq:
  ------------------
  |  Branch (1247:7): [True: 29, False: 793k]
  ------------------
 1248|  8.17k|      case Opcode::I32X4Eq:
  ------------------
  |  Branch (1248:7): [True: 12, False: 793k]
  ------------------
 1249|  8.17k|      case Opcode::I64X2Eq:
  ------------------
  |  Branch (1249:7): [True: 0, False: 793k]
  ------------------
 1250|  9.85k|      case Opcode::F32X4Eq:
  ------------------
  |  Branch (1250:7): [True: 1.67k, False: 792k]
  ------------------
 1251|  9.85k|      case Opcode::F64X2Eq:
  ------------------
  |  Branch (1251:7): [True: 0, False: 793k]
  ------------------
 1252|  9.92k|      case Opcode::I8X16Ne:
  ------------------
  |  Branch (1252:7): [True: 72, False: 793k]
  ------------------
 1253|  9.92k|      case Opcode::I16X8Ne:
  ------------------
  |  Branch (1253:7): [True: 0, False: 793k]
  ------------------
 1254|  9.96k|      case Opcode::I32X4Ne:
  ------------------
  |  Branch (1254:7): [True: 34, False: 793k]
  ------------------
 1255|  10.0k|      case Opcode::I64X2Ne:
  ------------------
  |  Branch (1255:7): [True: 86, False: 793k]
  ------------------
 1256|  10.0k|      case Opcode::F32X4Ne:
  ------------------
  |  Branch (1256:7): [True: 0, False: 793k]
  ------------------
 1257|  10.0k|      case Opcode::F64X2Ne:
  ------------------
  |  Branch (1257:7): [True: 0, False: 793k]
  ------------------
 1258|  10.0k|      case Opcode::I8X16LtS:
  ------------------
  |  Branch (1258:7): [True: 2, False: 793k]
  ------------------
 1259|  10.4k|      case Opcode::I8X16LtU:
  ------------------
  |  Branch (1259:7): [True: 360, False: 793k]
  ------------------
 1260|  10.4k|      case Opcode::I16X8LtS:
  ------------------
  |  Branch (1260:7): [True: 19, False: 793k]
  ------------------
 1261|  10.9k|      case Opcode::I16X8LtU:
  ------------------
  |  Branch (1261:7): [True: 567, False: 793k]
  ------------------
 1262|  12.1k|      case Opcode::I32X4LtS:
  ------------------
  |  Branch (1262:7): [True: 1.20k, False: 792k]
  ------------------
 1263|  12.8k|      case Opcode::I32X4LtU:
  ------------------
  |  Branch (1263:7): [True: 611, False: 793k]
  ------------------
 1264|  12.8k|      case Opcode::I64X2LtS:
  ------------------
  |  Branch (1264:7): [True: 0, False: 793k]
  ------------------
 1265|  12.8k|      case Opcode::F32X4Lt:
  ------------------
  |  Branch (1265:7): [True: 0, False: 793k]
  ------------------
 1266|  12.9k|      case Opcode::F64X2Lt:
  ------------------
  |  Branch (1266:7): [True: 132, False: 793k]
  ------------------
 1267|  14.7k|      case Opcode::I8X16LeS:
  ------------------
  |  Branch (1267:7): [True: 1.85k, False: 792k]
  ------------------
 1268|  14.7k|      case Opcode::I8X16LeU:
  ------------------
  |  Branch (1268:7): [True: 0, False: 793k]
  ------------------
 1269|  15.2k|      case Opcode::I16X8LeS:
  ------------------
  |  Branch (1269:7): [True: 424, False: 793k]
  ------------------
 1270|  15.5k|      case Opcode::I16X8LeU:
  ------------------
  |  Branch (1270:7): [True: 375, False: 793k]
  ------------------
 1271|  15.6k|      case Opcode::I32X4LeS:
  ------------------
  |  Branch (1271:7): [True: 45, False: 793k]
  ------------------
 1272|  15.6k|      case Opcode::I32X4LeU:
  ------------------
  |  Branch (1272:7): [True: 1, False: 793k]
  ------------------
 1273|  15.6k|      case Opcode::I64X2LeS:
  ------------------
  |  Branch (1273:7): [True: 0, False: 793k]
  ------------------
 1274|  15.6k|      case Opcode::F32X4Le:
  ------------------
  |  Branch (1274:7): [True: 0, False: 793k]
  ------------------
 1275|  15.6k|      case Opcode::F64X2Le:
  ------------------
  |  Branch (1275:7): [True: 10, False: 793k]
  ------------------
 1276|  15.6k|      case Opcode::I8X16GtS:
  ------------------
  |  Branch (1276:7): [True: 0, False: 793k]
  ------------------
 1277|  15.6k|      case Opcode::I8X16GtU:
  ------------------
  |  Branch (1277:7): [True: 0, False: 793k]
  ------------------
 1278|  16.6k|      case Opcode::I16X8GtS:
  ------------------
  |  Branch (1278:7): [True: 981, False: 792k]
  ------------------
 1279|  16.8k|      case Opcode::I16X8GtU:
  ------------------
  |  Branch (1279:7): [True: 224, False: 793k]
  ------------------
 1280|  16.8k|      case Opcode::I32X4GtS:
  ------------------
  |  Branch (1280:7): [True: 11, False: 793k]
  ------------------
 1281|  16.8k|      case Opcode::I32X4GtU:
  ------------------
  |  Branch (1281:7): [True: 0, False: 793k]
  ------------------
 1282|  16.8k|      case Opcode::I64X2GtS:
  ------------------
  |  Branch (1282:7): [True: 3, False: 793k]
  ------------------
 1283|  16.8k|      case Opcode::F32X4Gt:
  ------------------
  |  Branch (1283:7): [True: 1, False: 793k]
  ------------------
 1284|  16.8k|      case Opcode::F64X2Gt:
  ------------------
  |  Branch (1284:7): [True: 3, False: 793k]
  ------------------
 1285|  16.8k|      case Opcode::I8X16GeS:
  ------------------
  |  Branch (1285:7): [True: 2, False: 793k]
  ------------------
 1286|  17.5k|      case Opcode::I8X16GeU:
  ------------------
  |  Branch (1286:7): [True: 661, False: 793k]
  ------------------
 1287|  17.8k|      case Opcode::I16X8GeS:
  ------------------
  |  Branch (1287:7): [True: 283, False: 793k]
  ------------------
 1288|  17.8k|      case Opcode::I16X8GeU:
  ------------------
  |  Branch (1288:7): [True: 35, False: 793k]
  ------------------
 1289|  17.8k|      case Opcode::I32X4GeS:
  ------------------
  |  Branch (1289:7): [True: 6, False: 793k]
  ------------------
 1290|  17.8k|      case Opcode::I32X4GeU:
  ------------------
  |  Branch (1290:7): [True: 20, False: 793k]
  ------------------
 1291|  17.8k|      case Opcode::I64X2GeS:
  ------------------
  |  Branch (1291:7): [True: 13, False: 793k]
  ------------------
 1292|  17.8k|      case Opcode::F32X4Ge:
  ------------------
  |  Branch (1292:7): [True: 1, False: 793k]
  ------------------
 1293|  17.8k|      case Opcode::F64X2Ge:
  ------------------
  |  Branch (1293:7): [True: 0, False: 793k]
  ------------------
 1294|  17.8k|        CALLBACK(OnCompareExpr, opcode);
  ------------------
  |  |   66|  17.8k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  17.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  17.8k|  do {                      \
  |  |  |  |  |  |   48|  17.8k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 29, False: 17.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     29|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     29|  do {                       \
  |  |  |  |  |  |  |  |   42|     29|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     29|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     29|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     29|    }                       \
  |  |  |  |  |  |   51|  17.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  17.8k|               #member " callback failed")
  ------------------
 1295|  17.8k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|  17.8k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  17.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  17.8k|  do {                      \
  |  |  |  |  |  |   48|  17.8k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 17.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  17.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1296|  17.8k|        break;
 1297|       |
 1298|  17.8k|      case Opcode::I32Clz:
  ------------------
  |  Branch (1298:7): [True: 5.94k, False: 787k]
  ------------------
 1299|  6.98k|      case Opcode::I32Ctz:
  ------------------
  |  Branch (1299:7): [True: 1.04k, False: 792k]
  ------------------
 1300|  8.71k|      case Opcode::I32Popcnt:
  ------------------
  |  Branch (1300:7): [True: 1.72k, False: 792k]
  ------------------
 1301|  16.2k|      case Opcode::I64Clz:
  ------------------
  |  Branch (1301:7): [True: 7.56k, False: 786k]
  ------------------
 1302|  19.2k|      case Opcode::I64Ctz:
  ------------------
  |  Branch (1302:7): [True: 3.01k, False: 790k]
  ------------------
 1303|  20.0k|      case Opcode::I64Popcnt:
  ------------------
  |  Branch (1303:7): [True: 800, False: 793k]
  ------------------
 1304|  22.6k|      case Opcode::F32Abs:
  ------------------
  |  Branch (1304:7): [True: 2.51k, False: 791k]
  ------------------
 1305|  23.3k|      case Opcode::F32Neg:
  ------------------
  |  Branch (1305:7): [True: 697, False: 793k]
  ------------------
 1306|  30.6k|      case Opcode::F32Ceil:
  ------------------
  |  Branch (1306:7): [True: 7.38k, False: 786k]
  ------------------
 1307|  31.8k|      case Opcode::F32Floor:
  ------------------
  |  Branch (1307:7): [True: 1.13k, False: 792k]
  ------------------
 1308|  38.7k|      case Opcode::F32Trunc:
  ------------------
  |  Branch (1308:7): [True: 6.94k, False: 786k]
  ------------------
 1309|  40.3k|      case Opcode::F32Nearest:
  ------------------
  |  Branch (1309:7): [True: 1.62k, False: 792k]
  ------------------
 1310|  44.3k|      case Opcode::F32Sqrt:
  ------------------
  |  Branch (1310:7): [True: 3.99k, False: 789k]
  ------------------
 1311|  45.6k|      case Opcode::F64Abs:
  ------------------
  |  Branch (1311:7): [True: 1.29k, False: 792k]
  ------------------
 1312|  48.0k|      case Opcode::F64Neg:
  ------------------
  |  Branch (1312:7): [True: 2.41k, False: 791k]
  ------------------
 1313|  49.8k|      case Opcode::F64Ceil:
  ------------------
  |  Branch (1313:7): [True: 1.79k, False: 792k]
  ------------------
 1314|  50.5k|      case Opcode::F64Floor:
  ------------------
  |  Branch (1314:7): [True: 656, False: 793k]
  ------------------
 1315|  51.2k|      case Opcode::F64Trunc:
  ------------------
  |  Branch (1315:7): [True: 721, False: 793k]
  ------------------
 1316|  51.4k|      case Opcode::F64Nearest:
  ------------------
  |  Branch (1316:7): [True: 215, False: 793k]
  ------------------
 1317|  52.3k|      case Opcode::F64Sqrt:
  ------------------
  |  Branch (1317:7): [True: 883, False: 793k]
  ------------------
 1318|  52.7k|      case Opcode::I8X16Splat:
  ------------------
  |  Branch (1318:7): [True: 401, False: 793k]
  ------------------
 1319|  53.0k|      case Opcode::I16X8Splat:
  ------------------
  |  Branch (1319:7): [True: 243, False: 793k]
  ------------------
 1320|  53.3k|      case Opcode::I32X4Splat:
  ------------------
  |  Branch (1320:7): [True: 319, False: 793k]
  ------------------
 1321|  53.9k|      case Opcode::I64X2Splat:
  ------------------
  |  Branch (1321:7): [True: 675, False: 793k]
  ------------------
 1322|  54.2k|      case Opcode::F32X4Splat:
  ------------------
  |  Branch (1322:7): [True: 212, False: 793k]
  ------------------
 1323|  54.6k|      case Opcode::F64X2Splat:
  ------------------
  |  Branch (1323:7): [True: 420, False: 793k]
  ------------------
 1324|  54.7k|      case Opcode::I8X16Neg:
  ------------------
  |  Branch (1324:7): [True: 104, False: 793k]
  ------------------
 1325|  56.8k|      case Opcode::I16X8Neg:
  ------------------
  |  Branch (1325:7): [True: 2.16k, False: 791k]
  ------------------
 1326|  57.2k|      case Opcode::I32X4Neg:
  ------------------
  |  Branch (1326:7): [True: 348, False: 793k]
  ------------------
 1327|  58.3k|      case Opcode::I64X2Neg:
  ------------------
  |  Branch (1327:7): [True: 1.11k, False: 792k]
  ------------------
 1328|  59.2k|      case Opcode::V128Not:
  ------------------
  |  Branch (1328:7): [True: 852, False: 793k]
  ------------------
 1329|  59.2k|      case Opcode::V128AnyTrue:
  ------------------
  |  Branch (1329:7): [True: 0, False: 793k]
  ------------------
 1330|  59.2k|      case Opcode::I8X16Bitmask:
  ------------------
  |  Branch (1330:7): [True: 79, False: 793k]
  ------------------
 1331|  59.3k|      case Opcode::I16X8Bitmask:
  ------------------
  |  Branch (1331:7): [True: 96, False: 793k]
  ------------------
 1332|  59.7k|      case Opcode::I32X4Bitmask:
  ------------------
  |  Branch (1332:7): [True: 381, False: 793k]
  ------------------
 1333|  60.0k|      case Opcode::I64X2Bitmask:
  ------------------
  |  Branch (1333:7): [True: 245, False: 793k]
  ------------------
 1334|  60.2k|      case Opcode::I8X16AllTrue:
  ------------------
  |  Branch (1334:7): [True: 242, False: 793k]
  ------------------
 1335|  60.5k|      case Opcode::I16X8AllTrue:
  ------------------
  |  Branch (1335:7): [True: 305, False: 793k]
  ------------------
 1336|  60.7k|      case Opcode::I32X4AllTrue:
  ------------------
  |  Branch (1336:7): [True: 237, False: 793k]
  ------------------
 1337|  61.1k|      case Opcode::I64X2AllTrue:
  ------------------
  |  Branch (1337:7): [True: 309, False: 793k]
  ------------------
 1338|  61.2k|      case Opcode::F32X4Ceil:
  ------------------
  |  Branch (1338:7): [True: 167, False: 793k]
  ------------------
 1339|  61.6k|      case Opcode::F64X2Ceil:
  ------------------
  |  Branch (1339:7): [True: 332, False: 793k]
  ------------------
 1340|  61.8k|      case Opcode::F32X4Floor:
  ------------------
  |  Branch (1340:7): [True: 227, False: 793k]
  ------------------
 1341|  63.2k|      case Opcode::F64X2Floor:
  ------------------
  |  Branch (1341:7): [True: 1.44k, False: 792k]
  ------------------
 1342|  63.4k|      case Opcode::F32X4Trunc:
  ------------------
  |  Branch (1342:7): [True: 214, False: 793k]
  ------------------
 1343|  63.9k|      case Opcode::F64X2Trunc:
  ------------------
  |  Branch (1343:7): [True: 460, False: 793k]
  ------------------
 1344|  64.6k|      case Opcode::F32X4Nearest:
  ------------------
  |  Branch (1344:7): [True: 697, False: 793k]
  ------------------
 1345|  65.1k|      case Opcode::F64X2Nearest:
  ------------------
  |  Branch (1345:7): [True: 460, False: 793k]
  ------------------
 1346|  69.8k|      case Opcode::F32X4Neg:
  ------------------
  |  Branch (1346:7): [True: 4.71k, False: 789k]
  ------------------
 1347|  70.0k|      case Opcode::F64X2Neg:
  ------------------
  |  Branch (1347:7): [True: 269, False: 793k]
  ------------------
 1348|  70.2k|      case Opcode::F32X4Abs:
  ------------------
  |  Branch (1348:7): [True: 194, False: 793k]
  ------------------
 1349|  70.3k|      case Opcode::F64X2Abs:
  ------------------
  |  Branch (1349:7): [True: 99, False: 793k]
  ------------------
 1350|  70.7k|      case Opcode::F32X4Sqrt:
  ------------------
  |  Branch (1350:7): [True: 402, False: 793k]
  ------------------
 1351|  71.0k|      case Opcode::F64X2Sqrt:
  ------------------
  |  Branch (1351:7): [True: 310, False: 793k]
  ------------------
 1352|  75.8k|      case Opcode::I16X8ExtendLowI8X16S:
  ------------------
  |  Branch (1352:7): [True: 4.76k, False: 789k]
  ------------------
 1353|  76.2k|      case Opcode::I16X8ExtendHighI8X16S:
  ------------------
  |  Branch (1353:7): [True: 364, False: 793k]
  ------------------
 1354|  76.4k|      case Opcode::I16X8ExtendLowI8X16U:
  ------------------
  |  Branch (1354:7): [True: 183, False: 793k]
  ------------------
 1355|  76.5k|      case Opcode::I16X8ExtendHighI8X16U:
  ------------------
  |  Branch (1355:7): [True: 99, False: 793k]
  ------------------
 1356|  79.3k|      case Opcode::I32X4ExtendLowI16X8S:
  ------------------
  |  Branch (1356:7): [True: 2.79k, False: 791k]
  ------------------
 1357|  79.4k|      case Opcode::I32X4ExtendHighI16X8S:
  ------------------
  |  Branch (1357:7): [True: 102, False: 793k]
  ------------------
 1358|  80.1k|      case Opcode::I32X4ExtendLowI16X8U:
  ------------------
  |  Branch (1358:7): [True: 745, False: 793k]
  ------------------
 1359|  80.2k|      case Opcode::I32X4ExtendHighI16X8U:
  ------------------
  |  Branch (1359:7): [True: 104, False: 793k]
  ------------------
 1360|  80.3k|      case Opcode::I64X2ExtendLowI32X4S:
  ------------------
  |  Branch (1360:7): [True: 105, False: 793k]
  ------------------
 1361|  80.8k|      case Opcode::I64X2ExtendHighI32X4S:
  ------------------
  |  Branch (1361:7): [True: 511, False: 793k]
  ------------------
 1362|  80.9k|      case Opcode::I64X2ExtendLowI32X4U:
  ------------------
  |  Branch (1362:7): [True: 35, False: 793k]
  ------------------
 1363|  81.0k|      case Opcode::I64X2ExtendHighI32X4U:
  ------------------
  |  Branch (1363:7): [True: 121, False: 793k]
  ------------------
 1364|  85.3k|      case Opcode::I8X16Abs:
  ------------------
  |  Branch (1364:7): [True: 4.36k, False: 789k]
  ------------------
 1365|  86.1k|      case Opcode::I16X8Abs:
  ------------------
  |  Branch (1365:7): [True: 717, False: 793k]
  ------------------
 1366|  86.2k|      case Opcode::I32X4Abs:
  ------------------
  |  Branch (1366:7): [True: 146, False: 793k]
  ------------------
 1367|  86.3k|      case Opcode::I64X2Abs:
  ------------------
  |  Branch (1367:7): [True: 74, False: 793k]
  ------------------
 1368|  86.5k|      case Opcode::I8X16Popcnt:
  ------------------
  |  Branch (1368:7): [True: 235, False: 793k]
  ------------------
 1369|  96.9k|      case Opcode::I16X8ExtaddPairwiseI8X16S:
  ------------------
  |  Branch (1369:7): [True: 10.4k, False: 783k]
  ------------------
 1370|  97.1k|      case Opcode::I16X8ExtaddPairwiseI8X16U:
  ------------------
  |  Branch (1370:7): [True: 169, False: 793k]
  ------------------
 1371|  97.3k|      case Opcode::I32X4ExtaddPairwiseI16X8S:
  ------------------
  |  Branch (1371:7): [True: 169, False: 793k]
  ------------------
 1372|  97.8k|      case Opcode::I32X4ExtaddPairwiseI16X8U:
  ------------------
  |  Branch (1372:7): [True: 507, False: 793k]
  ------------------
 1373|  97.8k|      case Opcode::I32X4RelaxedTruncF32X4S:
  ------------------
  |  Branch (1373:7): [True: 0, False: 793k]
  ------------------
 1374|  97.8k|      case Opcode::I32X4RelaxedTruncF32X4U:
  ------------------
  |  Branch (1374:7): [True: 0, False: 793k]
  ------------------
 1375|  97.8k|      case Opcode::I32X4RelaxedTruncF64X2SZero:
  ------------------
  |  Branch (1375:7): [True: 0, False: 793k]
  ------------------
 1376|  97.8k|      case Opcode::I32X4RelaxedTruncF64X2UZero:
  ------------------
  |  Branch (1376:7): [True: 0, False: 793k]
  ------------------
 1377|  97.8k|        CALLBACK(OnUnaryExpr, opcode);
  ------------------
  |  |   66|  97.8k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  97.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  97.8k|  do {                      \
  |  |  |  |  |  |   48|  97.8k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 18, False: 97.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     18|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     18|  do {                       \
  |  |  |  |  |  |  |  |   42|     18|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     18|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     18|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     18|    }                       \
  |  |  |  |  |  |   51|  97.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  97.8k|               #member " callback failed")
  ------------------
 1378|  97.8k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|  97.8k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  97.8k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  97.8k|  do {                      \
  |  |  |  |  |  |   48|  97.8k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 97.8k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  97.8k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1379|  97.8k|        break;
 1380|       |
 1381|  97.8k|      case Opcode::V128BitSelect:
  ------------------
  |  Branch (1381:7): [True: 6, False: 793k]
  ------------------
 1382|     13|      case Opcode::F32X4RelaxedMadd:
  ------------------
  |  Branch (1382:7): [True: 7, False: 793k]
  ------------------
 1383|     13|      case Opcode::F32X4RelaxedNmadd:
  ------------------
  |  Branch (1383:7): [True: 0, False: 793k]
  ------------------
 1384|     13|      case Opcode::F64X2RelaxedMadd:
  ------------------
  |  Branch (1384:7): [True: 0, False: 793k]
  ------------------
 1385|     13|      case Opcode::F64X2RelaxedNmadd:
  ------------------
  |  Branch (1385:7): [True: 0, False: 793k]
  ------------------
 1386|     13|      case Opcode::I8X16RelaxedLaneSelect:
  ------------------
  |  Branch (1386:7): [True: 0, False: 793k]
  ------------------
 1387|     13|      case Opcode::I16X8RelaxedLaneSelect:
  ------------------
  |  Branch (1387:7): [True: 0, False: 793k]
  ------------------
 1388|     13|      case Opcode::I32X4RelaxedLaneSelect:
  ------------------
  |  Branch (1388:7): [True: 0, False: 793k]
  ------------------
 1389|     13|      case Opcode::I64X2RelaxedLaneSelect:
  ------------------
  |  Branch (1389:7): [True: 0, False: 793k]
  ------------------
 1390|     13|      case Opcode::I32X4DotI8X16I7X16AddS:
  ------------------
  |  Branch (1390:7): [True: 0, False: 793k]
  ------------------
 1391|     13|        CALLBACK(OnTernaryExpr, opcode);
  ------------------
  |  |   66|     13|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     13|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     13|  do {                      \
  |  |  |  |  |  |   48|     13|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 13]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     13|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     13|               #member " callback failed")
  ------------------
 1392|     13|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|     13|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|     13|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     13|  do {                      \
  |  |  |  |  |  |   48|     13|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 13]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     13|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1393|     13|        break;
 1394|       |
 1395|    298|      case Opcode::I8X16ExtractLaneS:
  ------------------
  |  Branch (1395:7): [True: 298, False: 793k]
  ------------------
 1396|    470|      case Opcode::I8X16ExtractLaneU:
  ------------------
  |  Branch (1396:7): [True: 172, False: 793k]
  ------------------
 1397|    596|      case Opcode::I16X8ExtractLaneS:
  ------------------
  |  Branch (1397:7): [True: 126, False: 793k]
  ------------------
 1398|    921|      case Opcode::I16X8ExtractLaneU:
  ------------------
  |  Branch (1398:7): [True: 325, False: 793k]
  ------------------
 1399|  1.01k|      case Opcode::I32X4ExtractLane:
  ------------------
  |  Branch (1399:7): [True: 95, False: 793k]
  ------------------
 1400|  1.63k|      case Opcode::I64X2ExtractLane:
  ------------------
  |  Branch (1400:7): [True: 622, False: 793k]
  ------------------
 1401|  2.38k|      case Opcode::F32X4ExtractLane:
  ------------------
  |  Branch (1401:7): [True: 750, False: 793k]
  ------------------
 1402|  2.84k|      case Opcode::F64X2ExtractLane:
  ------------------
  |  Branch (1402:7): [True: 457, False: 793k]
  ------------------
 1403|  2.91k|      case Opcode::I8X16ReplaceLane:
  ------------------
  |  Branch (1403:7): [True: 72, False: 793k]
  ------------------
 1404|  3.09k|      case Opcode::I16X8ReplaceLane:
  ------------------
  |  Branch (1404:7): [True: 176, False: 793k]
  ------------------
 1405|  3.10k|      case Opcode::I32X4ReplaceLane:
  ------------------
  |  Branch (1405:7): [True: 7, False: 793k]
  ------------------
 1406|  3.10k|      case Opcode::I64X2ReplaceLane:
  ------------------
  |  Branch (1406:7): [True: 0, False: 793k]
  ------------------
 1407|  3.11k|      case Opcode::F32X4ReplaceLane:
  ------------------
  |  Branch (1407:7): [True: 16, False: 793k]
  ------------------
 1408|  3.11k|      case Opcode::F64X2ReplaceLane: {
  ------------------
  |  Branch (1408:7): [True: 0, False: 793k]
  ------------------
 1409|  3.11k|        uint8_t lane_val;
 1410|  3.11k|        CHECK_RESULT(ReadU8(&lane_val, "Lane idx"));
  ------------------
  |  |   55|  3.11k|  do {                              \
  |  |   56|  3.11k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 3.11k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  3.11k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1411|  3.11k|        CALLBACK(OnSimdLaneOpExpr, opcode, lane_val);
  ------------------
  |  |   66|  3.11k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.11k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.11k|  do {                      \
  |  |  |  |  |  |   48|  3.11k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 3.11k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|  3.11k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.11k|               #member " callback failed")
  ------------------
 1412|  3.11k|        CALLBACK(OnOpcodeUint64, lane_val);
  ------------------
  |  |   66|  3.11k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.11k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.11k|  do {                      \
  |  |  |  |  |  |   48|  3.11k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3.11k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  3.11k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.11k|               #member " callback failed")
  ------------------
 1413|  3.11k|        break;
 1414|  3.11k|      }
 1415|       |
 1416|  3.11k|      case Opcode::I8X16Shuffle: {
  ------------------
  |  Branch (1416:7): [True: 2, False: 793k]
  ------------------
 1417|      2|        v128 value;
 1418|      2|        CHECK_RESULT(ReadV128(&value, "Lane idx [16]"));
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1419|      2|        CALLBACK(OnSimdShuffleOpExpr, opcode, value);
  ------------------
  |  |   66|      2|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      2|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      2|  do {                      \
  |  |  |  |  |  |   48|      2|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|      2|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      2|               #member " callback failed")
  ------------------
 1420|      0|        CALLBACK(OnOpcodeV128, value);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 1421|      0|        break;
 1422|      0|      }
 1423|       |
 1424|    250|      case Opcode::V128Load8Splat:
  ------------------
  |  Branch (1424:7): [True: 250, False: 793k]
  ------------------
 1425|    402|      case Opcode::V128Load16Splat:
  ------------------
  |  Branch (1425:7): [True: 152, False: 793k]
  ------------------
 1426|    556|      case Opcode::V128Load32Splat:
  ------------------
  |  Branch (1426:7): [True: 154, False: 793k]
  ------------------
 1427|    612|      case Opcode::V128Load64Splat: {
  ------------------
  |  Branch (1427:7): [True: 56, False: 793k]
  ------------------
 1428|    612|        Address alignment_log2;
 1429|    612|        Index memidx;
 1430|    612|        Address offset;
 1431|    612|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|    612|  do {                              \
  |  |   56|    612|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 612]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    612|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1432|    612|                                     "load alignment", "load memidx",
 1433|    612|                                     "load offset"));
 1434|    612|        CALLBACK(OnLoadSplatExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   66|    612|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    612|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    612|  do {                      \
  |  |  |  |  |  |   48|    612|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 612]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    612|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    612|               #member " callback failed")
  ------------------
 1435|    612|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|    612|  do {                              \
  |  |   56|    612|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 612]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    612|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1436|    612|        break;
 1437|    612|      }
 1438|    612|      case Opcode::V128Load8Lane:
  ------------------
  |  Branch (1438:7): [True: 11, False: 793k]
  ------------------
 1439|     15|      case Opcode::V128Load16Lane:
  ------------------
  |  Branch (1439:7): [True: 4, False: 793k]
  ------------------
 1440|     67|      case Opcode::V128Load32Lane:
  ------------------
  |  Branch (1440:7): [True: 52, False: 793k]
  ------------------
 1441|     87|      case Opcode::V128Load64Lane: {
  ------------------
  |  Branch (1441:7): [True: 20, False: 793k]
  ------------------
 1442|     87|        Address alignment_log2;
 1443|     87|        Index memidx;
 1444|     87|        Address offset;
 1445|     87|        uint8_t lane_val;
 1446|     87|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|     87|  do {                              \
  |  |   56|     87|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 87]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     87|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1447|     87|                                     "load alignment", "load memidx",
 1448|     87|                                     "load offset", &lane_val));
 1449|     87|        CALLBACK(OnSimdLoadLaneExpr, opcode, memidx, alignment_log2, offset,
  ------------------
  |  |   66|     87|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     87|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     87|  do {                      \
  |  |  |  |  |  |   48|     87|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 86]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|     87|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     87|               #member " callback failed")
  ------------------
 1450|     86|                 lane_val);
 1451|     86|        CHECK_RESULT(
  ------------------
  |  |   55|     86|  do {                              \
  |  |   56|     86|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 86]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     86|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1452|     86|            CallbackMemLocation(&alignment_log2, &memidx, &offset, &lane_val));
 1453|     86|        break;
 1454|     86|      }
 1455|     86|      case Opcode::V128Store8Lane:
  ------------------
  |  Branch (1455:7): [True: 37, False: 793k]
  ------------------
 1456|    810|      case Opcode::V128Store16Lane:
  ------------------
  |  Branch (1456:7): [True: 773, False: 793k]
  ------------------
 1457|    810|      case Opcode::V128Store32Lane:
  ------------------
  |  Branch (1457:7): [True: 0, False: 793k]
  ------------------
 1458|    822|      case Opcode::V128Store64Lane: {
  ------------------
  |  Branch (1458:7): [True: 12, False: 793k]
  ------------------
 1459|    822|        Address alignment_log2;
 1460|    822|        Index memidx;
 1461|    822|        Address offset;
 1462|    822|        uint8_t lane_val;
 1463|    822|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|    822|  do {                              \
  |  |   56|    822|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 821]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    822|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1464|    822|                                     "store alignment", "store memidx",
 1465|    822|                                     "store offset", &lane_val));
 1466|    821|        CALLBACK(OnSimdStoreLaneExpr, opcode, memidx, alignment_log2, offset,
  ------------------
  |  |   66|    821|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    821|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    821|  do {                      \
  |  |  |  |  |  |   48|    821|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 10, False: 811]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     10|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     10|  do {                       \
  |  |  |  |  |  |  |  |   42|     10|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     10|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     10|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     10|    }                       \
  |  |  |  |  |  |   51|    821|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    821|               #member " callback failed")
  ------------------
 1467|    811|                 lane_val);
 1468|    811|        CHECK_RESULT(
  ------------------
  |  |   55|    811|  do {                              \
  |  |   56|    811|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 811]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    811|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1469|    811|            CallbackMemLocation(&alignment_log2, &memidx, &offset, &lane_val));
 1470|    811|        break;
 1471|    811|      }
 1472|    811|      case Opcode::V128Load32Zero:
  ------------------
  |  Branch (1472:7): [True: 81, False: 793k]
  ------------------
 1473|    102|      case Opcode::V128Load64Zero: {
  ------------------
  |  Branch (1473:7): [True: 21, False: 793k]
  ------------------
 1474|    102|        Address alignment_log2;
 1475|    102|        Index memidx;
 1476|    102|        Address offset;
 1477|    102|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|    102|  do {                              \
  |  |   56|    102|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 102]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    102|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1478|    102|                                     "load alignment", "load memidx",
 1479|    102|                                     "load offset"));
 1480|    102|        CALLBACK(OnLoadZeroExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   66|    102|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    102|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    102|  do {                      \
  |  |  |  |  |  |   48|    102|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 100]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|    102|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    102|               #member " callback failed")
  ------------------
 1481|    100|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|    100|  do {                              \
  |  |   56|    100|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 100]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    100|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1482|    100|        break;
 1483|    100|      }
 1484|    685|      case Opcode::I32TruncF32S:
  ------------------
  |  Branch (1484:7): [True: 685, False: 793k]
  ------------------
 1485|  2.00k|      case Opcode::I32TruncF64S:
  ------------------
  |  Branch (1485:7): [True: 1.32k, False: 792k]
  ------------------
 1486|  2.29k|      case Opcode::I32TruncF32U:
  ------------------
  |  Branch (1486:7): [True: 282, False: 793k]
  ------------------
 1487|  2.46k|      case Opcode::I32TruncF64U:
  ------------------
  |  Branch (1487:7): [True: 170, False: 793k]
  ------------------
 1488|  2.76k|      case Opcode::I32WrapI64:
  ------------------
  |  Branch (1488:7): [True: 302, False: 793k]
  ------------------
 1489|  4.29k|      case Opcode::I64TruncF32S:
  ------------------
  |  Branch (1489:7): [True: 1.52k, False: 792k]
  ------------------
 1490|  4.63k|      case Opcode::I64TruncF64S:
  ------------------
  |  Branch (1490:7): [True: 339, False: 793k]
  ------------------
 1491|  7.24k|      case Opcode::I64TruncF32U:
  ------------------
  |  Branch (1491:7): [True: 2.61k, False: 791k]
  ------------------
 1492|  7.72k|      case Opcode::I64TruncF64U:
  ------------------
  |  Branch (1492:7): [True: 484, False: 793k]
  ------------------
 1493|  8.17k|      case Opcode::I64ExtendI32S:
  ------------------
  |  Branch (1493:7): [True: 448, False: 793k]
  ------------------
 1494|  12.4k|      case Opcode::I64ExtendI32U:
  ------------------
  |  Branch (1494:7): [True: 4.29k, False: 789k]
  ------------------
 1495|  12.7k|      case Opcode::F32ConvertI32S:
  ------------------
  |  Branch (1495:7): [True: 300, False: 793k]
  ------------------
 1496|  13.0k|      case Opcode::F32ConvertI32U:
  ------------------
  |  Branch (1496:7): [True: 241, False: 793k]
  ------------------
 1497|  16.6k|      case Opcode::F32ConvertI64S:
  ------------------
  |  Branch (1497:7): [True: 3.62k, False: 790k]
  ------------------
 1498|  20.1k|      case Opcode::F32ConvertI64U:
  ------------------
  |  Branch (1498:7): [True: 3.50k, False: 790k]
  ------------------
 1499|  21.3k|      case Opcode::F32DemoteF64:
  ------------------
  |  Branch (1499:7): [True: 1.20k, False: 792k]
  ------------------
 1500|  22.2k|      case Opcode::F32ReinterpretI32:
  ------------------
  |  Branch (1500:7): [True: 928, False: 792k]
  ------------------
 1501|  25.1k|      case Opcode::F64ConvertI32S:
  ------------------
  |  Branch (1501:7): [True: 2.85k, False: 791k]
  ------------------
 1502|  25.3k|      case Opcode::F64ConvertI32U:
  ------------------
  |  Branch (1502:7): [True: 263, False: 793k]
  ------------------
 1503|  25.5k|      case Opcode::F64ConvertI64S:
  ------------------
  |  Branch (1503:7): [True: 195, False: 793k]
  ------------------
 1504|  26.3k|      case Opcode::F64ConvertI64U:
  ------------------
  |  Branch (1504:7): [True: 751, False: 793k]
  ------------------
 1505|  27.7k|      case Opcode::F64PromoteF32:
  ------------------
  |  Branch (1505:7): [True: 1.39k, False: 792k]
  ------------------
 1506|  28.3k|      case Opcode::F64ReinterpretI64:
  ------------------
  |  Branch (1506:7): [True: 661, False: 793k]
  ------------------
 1507|  30.2k|      case Opcode::I32ReinterpretF32:
  ------------------
  |  Branch (1507:7): [True: 1.88k, False: 792k]
  ------------------
 1508|  31.7k|      case Opcode::I64ReinterpretF64:
  ------------------
  |  Branch (1508:7): [True: 1.51k, False: 792k]
  ------------------
 1509|  36.4k|      case Opcode::I32Eqz:
  ------------------
  |  Branch (1509:7): [True: 4.70k, False: 789k]
  ------------------
 1510|  40.7k|      case Opcode::I64Eqz:
  ------------------
  |  Branch (1510:7): [True: 4.24k, False: 789k]
  ------------------
 1511|  42.4k|      case Opcode::F32X4ConvertI32X4S:
  ------------------
  |  Branch (1511:7): [True: 1.68k, False: 792k]
  ------------------
 1512|  42.6k|      case Opcode::F32X4ConvertI32X4U:
  ------------------
  |  Branch (1512:7): [True: 197, False: 793k]
  ------------------
 1513|  43.9k|      case Opcode::I32X4TruncSatF32X4S:
  ------------------
  |  Branch (1513:7): [True: 1.32k, False: 792k]
  ------------------
 1514|  44.5k|      case Opcode::I32X4TruncSatF32X4U:
  ------------------
  |  Branch (1514:7): [True: 636, False: 793k]
  ------------------
 1515|  45.2k|      case Opcode::F32X4DemoteF64X2Zero:
  ------------------
  |  Branch (1515:7): [True: 695, False: 793k]
  ------------------
 1516|  45.8k|      case Opcode::F64X2PromoteLowF32X4:
  ------------------
  |  Branch (1516:7): [True: 600, False: 793k]
  ------------------
 1517|  68.4k|      case Opcode::I32X4TruncSatF64X2SZero:
  ------------------
  |  Branch (1517:7): [True: 22.5k, False: 771k]
  ------------------
 1518|  68.9k|      case Opcode::I32X4TruncSatF64X2UZero:
  ------------------
  |  Branch (1518:7): [True: 558, False: 793k]
  ------------------
 1519|  69.9k|      case Opcode::F64X2ConvertLowI32X4S:
  ------------------
  |  Branch (1519:7): [True: 1.00k, False: 792k]
  ------------------
 1520|  71.0k|      case Opcode::F64X2ConvertLowI32X4U:
  ------------------
  |  Branch (1520:7): [True: 1.12k, False: 792k]
  ------------------
 1521|  71.0k|        CALLBACK(OnConvertExpr, opcode);
  ------------------
  |  |   66|  71.0k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  71.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  71.0k|  do {                      \
  |  |  |  |  |  |   48|  71.0k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 30, False: 71.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     30|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     30|  do {                       \
  |  |  |  |  |  |  |  |   42|     30|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     30|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     30|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     30|    }                       \
  |  |  |  |  |  |   51|  71.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  71.0k|               #member " callback failed")
  ------------------
 1522|  71.0k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|  71.0k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  71.0k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  71.0k|  do {                      \
  |  |  |  |  |  |   48|  71.0k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 71.0k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  71.0k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1523|  71.0k|        break;
 1524|       |
 1525|  71.0k|      case Opcode::Try: {
  ------------------
  |  Branch (1525:7): [True: 33, False: 793k]
  ------------------
 1526|     33|        nested_blocks.push(opcode);
 1527|     33|        Type sig_type;
 1528|     33|        CHECK_RESULT(ReadType(&sig_type, "try signature type"));
  ------------------
  |  |   55|     33|  do {                              \
  |  |   56|     33|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 33]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     33|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1529|     33|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   53|     33|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|     33|  do {                      \
  |  |  |  |   48|     33|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 33]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|     33|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1530|     33|                     "expected valid block signature type");
 1531|     33|        CALLBACK(OnTryExpr, sig_type);
  ------------------
  |  |   66|     33|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     33|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     33|  do {                      \
  |  |  |  |  |  |   48|     33|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 5, False: 28]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      5|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      5|  do {                       \
  |  |  |  |  |  |  |  |   42|      5|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      5|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      5|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|    }                       \
  |  |  |  |  |  |   51|     33|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     33|               #member " callback failed")
  ------------------
 1532|     28|        CALLBACK(OnOpcodeBlockSig, sig_type);
  ------------------
  |  |   66|     28|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     28|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     28|  do {                      \
  |  |  |  |  |  |   48|     28|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 28]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     28|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     28|               #member " callback failed")
  ------------------
 1533|     28|        break;
 1534|     28|      }
 1535|       |
 1536|     28|      case Opcode::TryTable: {
  ------------------
  |  Branch (1536:7): [True: 2, False: 793k]
  ------------------
 1537|      2|        nested_blocks.push(opcode);
 1538|      2|        Type sig_type;
 1539|      2|        CHECK_RESULT(ReadType(&sig_type, "try_table signature type"));
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1540|      2|        ERROR_UNLESS(IsBlockType(sig_type),
  ------------------
  |  |   53|      2|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      2|  do {                      \
  |  |  |  |   48|      2|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 2]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|      2|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1541|      2|                     "expected valid block signature type");
 1542|      2|        Index count;
 1543|      2|        CHECK_RESULT(ReadCount(&count, "catch count"));
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1544|       |
 1545|      2|        catches_.resize(count);
 1546|      2|        for (Index i = 0; i < count; i++) {
  ------------------
  |  Branch (1546:27): [True: 0, False: 2]
  ------------------
 1547|      0|          uint8_t handler;
 1548|      0|          CHECK_RESULT(ReadU8(&handler, "catch handler"));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1549|      0|          ERROR_UNLESS(handler < 4, "expected valid catch handler");
  ------------------
  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      0|  do {                      \
  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1550|      0|          bool is_catch_all = handler & 2;
 1551|      0|          Index tag = kInvalidIndex;
 1552|      0|          if (!(is_catch_all)) {
  ------------------
  |  Branch (1552:15): [True: 0, False: 0]
  ------------------
 1553|      0|            CHECK_RESULT(ReadIndex(&tag, "catch tag"));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1554|      0|          }
 1555|      0|          Index depth;
 1556|      0|          CHECK_RESULT(ReadIndex(&depth, "catch depth"));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1557|      0|          CatchClause catch_;
 1558|      0|          catch_.kind = CatchKind(handler);
 1559|      0|          catch_.tag = tag;
 1560|      0|          catch_.depth = depth;
 1561|      0|          catches_[i] = catch_;
 1562|      0|        }
 1563|       |
 1564|      2|        CALLBACK(OnTryTableExpr, sig_type, catches_);
  ------------------
  |  |   66|      2|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      2|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      2|  do {                      \
  |  |  |  |  |  |   48|      2|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|      2|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      2|               #member " callback failed")
  ------------------
 1565|      0|        break;
 1566|      2|      }
 1567|       |
 1568|      5|      case Opcode::Catch: {
  ------------------
  |  Branch (1568:7): [True: 5, False: 793k]
  ------------------
 1569|      5|        Index index;
 1570|      5|        CHECK_RESULT(ReadIndex(&index, "tag index"));
  ------------------
  |  |   55|      5|  do {                              \
  |  |   56|      5|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 4]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|      5|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1571|      4|        CALLBACK(OnCatchExpr, index);
  ------------------
  |  |   66|      4|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      4|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      4|  do {                      \
  |  |  |  |  |  |   48|      4|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 4, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      4|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      4|  do {                       \
  |  |  |  |  |  |  |  |   42|      4|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      4|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      4|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|    }                       \
  |  |  |  |  |  |   51|      4|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      4|               #member " callback failed")
  ------------------
 1572|      0|        CALLBACK(OnOpcodeIndex, index);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 1573|      0|        break;
 1574|      0|      }
 1575|       |
 1576|      1|      case Opcode::CatchAll: {
  ------------------
  |  Branch (1576:7): [True: 1, False: 793k]
  ------------------
 1577|      1|        CALLBACK(OnCatchAllExpr);
  ------------------
  |  |   66|      1|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      1|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      1|  do {                      \
  |  |  |  |  |  |   48|      1|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|      1|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      1|               #member " callback failed")
  ------------------
 1578|      0|        CALLBACK(OnOpcodeBare);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 1579|      0|        break;
 1580|      0|      }
 1581|       |
 1582|      1|      case Opcode::Delegate: {
  ------------------
  |  Branch (1582:7): [True: 1, False: 793k]
  ------------------
 1583|      1|        ERROR_IF(nested_blocks.empty() || (nested_blocks.top() != Opcode::Try),
  ------------------
  |  |   47|      1|  do {                      \
  |  |   48|      3|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 0, False: 1]
  |  |  |  Branch (48:9): [True: 0, False: 1]
  |  |  ------------------
  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      0|  do {                       \
  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      0|    }                       \
  |  |   51|      1|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1584|      1|                 "delegate outside try block");
 1585|      1|        nested_blocks.pop();
 1586|      1|        Index index;
 1587|      1|        CHECK_RESULT(ReadIndex(&index, "depth"));
  ------------------
  |  |   55|      1|  do {                              \
  |  |   56|      1|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      1|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1588|      1|        CALLBACK(OnDelegateExpr, index);
  ------------------
  |  |   66|      1|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      1|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      1|  do {                      \
  |  |  |  |  |  |   48|      1|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      1|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      1|               #member " callback failed")
  ------------------
 1589|      1|        CALLBACK(OnOpcodeIndex, index);
  ------------------
  |  |   66|      1|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      1|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      1|  do {                      \
  |  |  |  |  |  |   48|      1|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      1|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      1|               #member " callback failed")
  ------------------
 1590|      1|        break;
 1591|      1|      }
 1592|       |
 1593|      2|      case Opcode::Rethrow: {
  ------------------
  |  Branch (1593:7): [True: 2, False: 793k]
  ------------------
 1594|      2|        Index depth;
 1595|      2|        CHECK_RESULT(ReadIndex(&depth, "catch depth"));
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1596|      2|        CALLBACK(OnRethrowExpr, depth);
  ------------------
  |  |   66|      2|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      2|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      2|  do {                      \
  |  |  |  |  |  |   48|      2|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|      2|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      2|               #member " callback failed")
  ------------------
 1597|      0|        CALLBACK(OnOpcodeIndex, depth);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 1598|      0|        break;
 1599|      0|      }
 1600|       |
 1601|      2|      case Opcode::Throw: {
  ------------------
  |  Branch (1601:7): [True: 2, False: 793k]
  ------------------
 1602|      2|        Index index;
 1603|      2|        CHECK_RESULT(ReadIndex(&index, "tag index"));
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1604|      2|        CALLBACK(OnThrowExpr, index);
  ------------------
  |  |   66|      2|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      2|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      2|  do {                      \
  |  |  |  |  |  |   48|      2|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|      2|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      2|               #member " callback failed")
  ------------------
 1605|      0|        CALLBACK(OnOpcodeIndex, index);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 1606|      0|        break;
 1607|      0|      }
 1608|       |
 1609|     34|      case Opcode::ThrowRef: {
  ------------------
  |  Branch (1609:7): [True: 34, False: 793k]
  ------------------
 1610|     34|        CALLBACK(OnThrowRefExpr);
  ------------------
  |  |   66|     34|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     34|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     34|  do {                      \
  |  |  |  |  |  |   48|     34|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 3, False: 31]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      3|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      3|  do {                       \
  |  |  |  |  |  |  |  |   42|      3|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      3|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      3|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|    }                       \
  |  |  |  |  |  |   51|     34|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     34|               #member " callback failed")
  ------------------
 1611|     31|        CALLBACK(OnOpcodeBare);
  ------------------
  |  |   66|     31|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     31|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     31|  do {                      \
  |  |  |  |  |  |   48|     31|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 31]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     31|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     31|               #member " callback failed")
  ------------------
 1612|     31|        break;
 1613|     31|      }
 1614|       |
 1615|  4.89k|      case Opcode::I32Extend8S:
  ------------------
  |  Branch (1615:7): [True: 4.89k, False: 789k]
  ------------------
 1616|  5.57k|      case Opcode::I32Extend16S:
  ------------------
  |  Branch (1616:7): [True: 680, False: 793k]
  ------------------
 1617|  6.98k|      case Opcode::I64Extend8S:
  ------------------
  |  Branch (1617:7): [True: 1.41k, False: 792k]
  ------------------
 1618|  7.96k|      case Opcode::I64Extend16S:
  ------------------
  |  Branch (1618:7): [True: 977, False: 792k]
  ------------------
 1619|  9.43k|      case Opcode::I64Extend32S:
  ------------------
  |  Branch (1619:7): [True: 1.46k, False: 792k]
  ------------------
 1620|  9.43k|        CALLBACK(OnUnaryExpr, opcode);
  ------------------
  |  |   66|  9.43k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  9.43k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  9.43k|  do {                      \
  |  |  |  |  |  |   48|  9.43k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 9.43k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|  9.43k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  9.43k|               #member " callback failed")
  ------------------
 1621|  9.43k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|  9.43k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  9.43k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  9.43k|  do {                      \
  |  |  |  |  |  |   48|  9.43k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 9.43k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  9.43k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1622|  9.43k|        break;
 1623|       |
 1624|  9.43k|      case Opcode::I32TruncSatF32S:
  ------------------
  |  Branch (1624:7): [True: 984, False: 792k]
  ------------------
 1625|  4.23k|      case Opcode::I32TruncSatF32U:
  ------------------
  |  Branch (1625:7): [True: 3.24k, False: 790k]
  ------------------
 1626|  4.51k|      case Opcode::I32TruncSatF64S:
  ------------------
  |  Branch (1626:7): [True: 283, False: 793k]
  ------------------
 1627|  5.33k|      case Opcode::I32TruncSatF64U:
  ------------------
  |  Branch (1627:7): [True: 824, False: 793k]
  ------------------
 1628|  6.24k|      case Opcode::I64TruncSatF32S:
  ------------------
  |  Branch (1628:7): [True: 906, False: 793k]
  ------------------
 1629|  6.54k|      case Opcode::I64TruncSatF32U:
  ------------------
  |  Branch (1629:7): [True: 301, False: 793k]
  ------------------
 1630|  6.85k|      case Opcode::I64TruncSatF64S:
  ------------------
  |  Branch (1630:7): [True: 307, False: 793k]
  ------------------
 1631|  6.93k|      case Opcode::I64TruncSatF64U:
  ------------------
  |  Branch (1631:7): [True: 84, False: 793k]
  ------------------
 1632|  6.93k|        CALLBACK(OnConvertExpr, opcode);
  ------------------
  |  |   66|  6.93k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  6.93k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  6.93k|  do {                      \
  |  |  |  |  |  |   48|  6.93k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 3, False: 6.93k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      3|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      3|  do {                       \
  |  |  |  |  |  |  |  |   42|      3|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      3|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      3|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|    }                       \
  |  |  |  |  |  |   51|  6.93k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  6.93k|               #member " callback failed")
  ------------------
 1633|  6.93k|        CALLBACK0(OnOpcodeBare);
  ------------------
  |  |   63|  6.93k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  6.93k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  6.93k|  do {                      \
  |  |  |  |  |  |   48|  6.93k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 6.93k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  6.93k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1634|  6.93k|        break;
 1635|       |
 1636|  6.93k|      case Opcode::MemoryAtomicNotify: {
  ------------------
  |  Branch (1636:7): [True: 1, False: 793k]
  ------------------
 1637|      1|        Address alignment_log2;
 1638|      1|        Index memidx;
 1639|      1|        Address offset;
 1640|      1|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|      1|  do {                              \
  |  |   56|      1|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      1|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1641|      1|                                     "notify alignment", "notify memidx",
 1642|      1|                                     "notify offset"));
 1643|      1|        CALLBACK(OnAtomicNotifyExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   66|      1|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      1|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      1|  do {                      \
  |  |  |  |  |  |   48|      1|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|      1|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      1|               #member " callback failed")
  ------------------
 1644|      0|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1645|      0|        break;
 1646|      0|      }
 1647|       |
 1648|      0|      case Opcode::MemoryAtomicWait32:
  ------------------
  |  Branch (1648:7): [True: 0, False: 793k]
  ------------------
 1649|      0|      case Opcode::MemoryAtomicWait64: {
  ------------------
  |  Branch (1649:7): [True: 0, False: 793k]
  ------------------
 1650|      0|        Address alignment_log2;
 1651|      0|        Index memidx;
 1652|      0|        Address offset;
 1653|      0|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1654|      0|                                     "wait alignment", "wait memidx",
 1655|      0|                                     "wait offset"));
 1656|      0|        CALLBACK(OnAtomicWaitExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 1657|      0|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1658|      0|        break;
 1659|      0|      }
 1660|       |
 1661|    257|      case Opcode::AtomicFence: {
  ------------------
  |  Branch (1661:7): [True: 257, False: 793k]
  ------------------
 1662|    257|        uint8_t consistency_model;
 1663|    257|        CHECK_RESULT(ReadU8(&consistency_model, "consistency model"));
  ------------------
  |  |   55|    257|  do {                              \
  |  |   56|    257|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 257]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    257|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1664|    257|        ERROR_UNLESS(consistency_model == 0,
  ------------------
  |  |   53|    257|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|    257|  do {                      \
  |  |  |  |   48|    257|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 257]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|    257|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1665|    257|                     "atomic.fence consistency model must be 0");
 1666|    257|        CALLBACK(OnAtomicFenceExpr, consistency_model);
  ------------------
  |  |   66|    257|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    257|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    257|  do {                      \
  |  |  |  |  |  |   48|    257|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 257]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    257|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    257|               #member " callback failed")
  ------------------
 1667|    257|        CALLBACK(OnOpcodeUint32, consistency_model);
  ------------------
  |  |   66|    257|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    257|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    257|  do {                      \
  |  |  |  |  |  |   48|    257|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 257]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    257|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    257|               #member " callback failed")
  ------------------
 1668|    257|        break;
 1669|    257|      }
 1670|       |
 1671|    257|      case Opcode::I32AtomicLoad8U:
  ------------------
  |  Branch (1671:7): [True: 0, False: 793k]
  ------------------
 1672|      0|      case Opcode::I32AtomicLoad16U:
  ------------------
  |  Branch (1672:7): [True: 0, False: 793k]
  ------------------
 1673|      0|      case Opcode::I64AtomicLoad8U:
  ------------------
  |  Branch (1673:7): [True: 0, False: 793k]
  ------------------
 1674|      0|      case Opcode::I64AtomicLoad16U:
  ------------------
  |  Branch (1674:7): [True: 0, False: 793k]
  ------------------
 1675|      0|      case Opcode::I64AtomicLoad32U:
  ------------------
  |  Branch (1675:7): [True: 0, False: 793k]
  ------------------
 1676|      0|      case Opcode::I32AtomicLoad:
  ------------------
  |  Branch (1676:7): [True: 0, False: 793k]
  ------------------
 1677|      0|      case Opcode::I64AtomicLoad: {
  ------------------
  |  Branch (1677:7): [True: 0, False: 793k]
  ------------------
 1678|      0|        Address alignment_log2;
 1679|      0|        Index memidx;
 1680|      0|        Address offset;
 1681|      0|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1682|      0|                                     "load alignment", "load memidx",
 1683|      0|                                     "load offset"));
 1684|      0|        CALLBACK(OnAtomicLoadExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 1685|      0|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1686|      0|        break;
 1687|      0|      }
 1688|       |
 1689|      0|      case Opcode::I32AtomicStore8:
  ------------------
  |  Branch (1689:7): [True: 0, False: 793k]
  ------------------
 1690|      0|      case Opcode::I32AtomicStore16:
  ------------------
  |  Branch (1690:7): [True: 0, False: 793k]
  ------------------
 1691|      0|      case Opcode::I64AtomicStore8:
  ------------------
  |  Branch (1691:7): [True: 0, False: 793k]
  ------------------
 1692|      0|      case Opcode::I64AtomicStore16:
  ------------------
  |  Branch (1692:7): [True: 0, False: 793k]
  ------------------
 1693|      0|      case Opcode::I64AtomicStore32:
  ------------------
  |  Branch (1693:7): [True: 0, False: 793k]
  ------------------
 1694|      0|      case Opcode::I32AtomicStore:
  ------------------
  |  Branch (1694:7): [True: 0, False: 793k]
  ------------------
 1695|      0|      case Opcode::I64AtomicStore: {
  ------------------
  |  Branch (1695:7): [True: 0, False: 793k]
  ------------------
 1696|      0|        Address alignment_log2;
 1697|      0|        Index memidx;
 1698|      0|        Address offset;
 1699|      0|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1700|      0|                                     "store alignment", "store memidx",
 1701|      0|                                     "store offset"));
 1702|      0|        CALLBACK(OnAtomicStoreExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 1703|      0|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1704|      0|        break;
 1705|      0|      }
 1706|       |
 1707|      0|      case Opcode::I32AtomicRmwAdd:
  ------------------
  |  Branch (1707:7): [True: 0, False: 793k]
  ------------------
 1708|      0|      case Opcode::I64AtomicRmwAdd:
  ------------------
  |  Branch (1708:7): [True: 0, False: 793k]
  ------------------
 1709|      0|      case Opcode::I32AtomicRmw8AddU:
  ------------------
  |  Branch (1709:7): [True: 0, False: 793k]
  ------------------
 1710|      0|      case Opcode::I32AtomicRmw16AddU:
  ------------------
  |  Branch (1710:7): [True: 0, False: 793k]
  ------------------
 1711|      0|      case Opcode::I64AtomicRmw8AddU:
  ------------------
  |  Branch (1711:7): [True: 0, False: 793k]
  ------------------
 1712|      0|      case Opcode::I64AtomicRmw16AddU:
  ------------------
  |  Branch (1712:7): [True: 0, False: 793k]
  ------------------
 1713|      0|      case Opcode::I64AtomicRmw32AddU:
  ------------------
  |  Branch (1713:7): [True: 0, False: 793k]
  ------------------
 1714|      0|      case Opcode::I32AtomicRmwSub:
  ------------------
  |  Branch (1714:7): [True: 0, False: 793k]
  ------------------
 1715|      0|      case Opcode::I64AtomicRmwSub:
  ------------------
  |  Branch (1715:7): [True: 0, False: 793k]
  ------------------
 1716|      0|      case Opcode::I32AtomicRmw8SubU:
  ------------------
  |  Branch (1716:7): [True: 0, False: 793k]
  ------------------
 1717|      0|      case Opcode::I32AtomicRmw16SubU:
  ------------------
  |  Branch (1717:7): [True: 0, False: 793k]
  ------------------
 1718|      0|      case Opcode::I64AtomicRmw8SubU:
  ------------------
  |  Branch (1718:7): [True: 0, False: 793k]
  ------------------
 1719|      0|      case Opcode::I64AtomicRmw16SubU:
  ------------------
  |  Branch (1719:7): [True: 0, False: 793k]
  ------------------
 1720|      0|      case Opcode::I64AtomicRmw32SubU:
  ------------------
  |  Branch (1720:7): [True: 0, False: 793k]
  ------------------
 1721|      0|      case Opcode::I32AtomicRmwAnd:
  ------------------
  |  Branch (1721:7): [True: 0, False: 793k]
  ------------------
 1722|      0|      case Opcode::I64AtomicRmwAnd:
  ------------------
  |  Branch (1722:7): [True: 0, False: 793k]
  ------------------
 1723|      0|      case Opcode::I32AtomicRmw8AndU:
  ------------------
  |  Branch (1723:7): [True: 0, False: 793k]
  ------------------
 1724|      0|      case Opcode::I32AtomicRmw16AndU:
  ------------------
  |  Branch (1724:7): [True: 0, False: 793k]
  ------------------
 1725|      0|      case Opcode::I64AtomicRmw8AndU:
  ------------------
  |  Branch (1725:7): [True: 0, False: 793k]
  ------------------
 1726|      0|      case Opcode::I64AtomicRmw16AndU:
  ------------------
  |  Branch (1726:7): [True: 0, False: 793k]
  ------------------
 1727|      0|      case Opcode::I64AtomicRmw32AndU:
  ------------------
  |  Branch (1727:7): [True: 0, False: 793k]
  ------------------
 1728|      0|      case Opcode::I32AtomicRmwOr:
  ------------------
  |  Branch (1728:7): [True: 0, False: 793k]
  ------------------
 1729|      0|      case Opcode::I64AtomicRmwOr:
  ------------------
  |  Branch (1729:7): [True: 0, False: 793k]
  ------------------
 1730|    128|      case Opcode::I32AtomicRmw8OrU:
  ------------------
  |  Branch (1730:7): [True: 128, False: 793k]
  ------------------
 1731|    128|      case Opcode::I32AtomicRmw16OrU:
  ------------------
  |  Branch (1731:7): [True: 0, False: 793k]
  ------------------
 1732|    128|      case Opcode::I64AtomicRmw8OrU:
  ------------------
  |  Branch (1732:7): [True: 0, False: 793k]
  ------------------
 1733|    128|      case Opcode::I64AtomicRmw16OrU:
  ------------------
  |  Branch (1733:7): [True: 0, False: 793k]
  ------------------
 1734|    128|      case Opcode::I64AtomicRmw32OrU:
  ------------------
  |  Branch (1734:7): [True: 0, False: 793k]
  ------------------
 1735|    128|      case Opcode::I32AtomicRmwXor:
  ------------------
  |  Branch (1735:7): [True: 0, False: 793k]
  ------------------
 1736|    128|      case Opcode::I64AtomicRmwXor:
  ------------------
  |  Branch (1736:7): [True: 0, False: 793k]
  ------------------
 1737|    128|      case Opcode::I32AtomicRmw8XorU:
  ------------------
  |  Branch (1737:7): [True: 0, False: 793k]
  ------------------
 1738|    128|      case Opcode::I32AtomicRmw16XorU:
  ------------------
  |  Branch (1738:7): [True: 0, False: 793k]
  ------------------
 1739|    128|      case Opcode::I64AtomicRmw8XorU:
  ------------------
  |  Branch (1739:7): [True: 0, False: 793k]
  ------------------
 1740|    128|      case Opcode::I64AtomicRmw16XorU:
  ------------------
  |  Branch (1740:7): [True: 0, False: 793k]
  ------------------
 1741|    128|      case Opcode::I64AtomicRmw32XorU:
  ------------------
  |  Branch (1741:7): [True: 0, False: 793k]
  ------------------
 1742|    128|      case Opcode::I32AtomicRmwXchg:
  ------------------
  |  Branch (1742:7): [True: 0, False: 793k]
  ------------------
 1743|    128|      case Opcode::I64AtomicRmwXchg:
  ------------------
  |  Branch (1743:7): [True: 0, False: 793k]
  ------------------
 1744|    128|      case Opcode::I32AtomicRmw8XchgU:
  ------------------
  |  Branch (1744:7): [True: 0, False: 793k]
  ------------------
 1745|    128|      case Opcode::I32AtomicRmw16XchgU:
  ------------------
  |  Branch (1745:7): [True: 0, False: 793k]
  ------------------
 1746|    128|      case Opcode::I64AtomicRmw8XchgU:
  ------------------
  |  Branch (1746:7): [True: 0, False: 793k]
  ------------------
 1747|    128|      case Opcode::I64AtomicRmw16XchgU:
  ------------------
  |  Branch (1747:7): [True: 0, False: 793k]
  ------------------
 1748|    128|      case Opcode::I64AtomicRmw32XchgU: {
  ------------------
  |  Branch (1748:7): [True: 0, False: 793k]
  ------------------
 1749|    128|        Address alignment_log2;
 1750|    128|        Index memidx;
 1751|    128|        Address offset;
 1752|    128|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   55|    128|  do {                              \
  |  |   56|    128|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 128]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    128|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1753|    128|                                     "memory alignment", "memory memidx",
 1754|    128|                                     "memory offset"));
 1755|    128|        CALLBACK(OnAtomicRmwExpr, opcode, memidx, alignment_log2, offset);
  ------------------
  |  |   66|    128|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    128|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    128|  do {                      \
  |  |  |  |  |  |   48|    128|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 128]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    128|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    128|               #member " callback failed")
  ------------------
 1756|    128|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   55|    128|  do {                              \
  |  |   56|    128|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 128]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    128|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1757|    128|        break;
 1758|    128|      }
 1759|       |
 1760|    128|      case Opcode::I32AtomicRmwCmpxchg:
  ------------------
  |  Branch (1760:7): [True: 0, False: 793k]
  ------------------
 1761|      0|      case Opcode::I64AtomicRmwCmpxchg:
  ------------------
  |  Branch (1761:7): [True: 0, False: 793k]
  ------------------
 1762|      0|      case Opcode::I32AtomicRmw8CmpxchgU:
  ------------------
  |  Branch (1762:7): [True: 0, False: 793k]
  ------------------
 1763|      0|      case Opcode::I32AtomicRmw16CmpxchgU:
  ------------------
  |  Branch (1763:7): [True: 0, False: 793k]
  ------------------
 1764|      0|      case Opcode::I64AtomicRmw8CmpxchgU:
  ------------------
  |  Branch (1764:7): [True: 0, False: 793k]
  ------------------
 1765|      0|      case Opcode::I64AtomicRmw16CmpxchgU:
  ------------------
  |  Branch (1765:7): [True: 0, False: 793k]
  ------------------
 1766|      0|      case Opcode::I64AtomicRmw32CmpxchgU: {
  ------------------
  |  Branch (1766:7): [True: 0, False: 793k]
  ------------------
 1767|      0|        Address alignment_log2;
 1768|      0|        Index memidx;
 1769|      0|        Address offset;
 1770|      0|        CHECK_RESULT(ReadMemLocation(&alignment_log2, &memidx, &offset,
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1771|      0|                                     "memory alignment", "memory memidx",
 1772|      0|                                     "memory offset"));
 1773|      0|        CALLBACK(OnAtomicRmwCmpxchgExpr, opcode, memidx, alignment_log2,
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 1774|      0|                 offset);
 1775|      0|        CHECK_RESULT(CallbackMemLocation(&alignment_log2, &memidx, &offset));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1776|      0|        break;
 1777|      0|      }
 1778|       |
 1779|     30|      case Opcode::TableInit: {
  ------------------
  |  Branch (1779:7): [True: 30, False: 793k]
  ------------------
 1780|     30|        Index segment;
 1781|     30|        CHECK_RESULT(ReadIndex(&segment, "elem segment index"));
  ------------------
  |  |   55|     30|  do {                              \
  |  |   56|     30|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 30]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     30|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1782|     30|        Index table_index;
 1783|     30|        CHECK_RESULT(ReadIndex(&table_index, "reserved table index"));
  ------------------
  |  |   55|     30|  do {                              \
  |  |   56|     30|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 30]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     30|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1784|     30|        CALLBACK(OnTableInitExpr, segment, table_index);
  ------------------
  |  |   66|     30|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     30|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     30|  do {                      \
  |  |  |  |  |  |   48|     30|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 3, False: 27]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      3|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      3|  do {                       \
  |  |  |  |  |  |  |  |   42|      3|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      3|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      3|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|    }                       \
  |  |  |  |  |  |   51|     30|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     30|               #member " callback failed")
  ------------------
 1785|     27|        CALLBACK(OnOpcodeUint32Uint32, segment, table_index);
  ------------------
  |  |   66|     27|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     27|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     27|  do {                      \
  |  |  |  |  |  |   48|     27|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 27]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     27|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     27|               #member " callback failed")
  ------------------
 1786|     27|        break;
 1787|     27|      }
 1788|       |
 1789|     27|      case Opcode::MemoryInit: {
  ------------------
  |  Branch (1789:7): [True: 0, False: 793k]
  ------------------
 1790|      0|        Index segment;
 1791|      0|        ERROR_IF(data_count_ == kInvalidIndex,
  ------------------
  |  |   47|      0|  do {                      \
  |  |   48|      0|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      0|  do {                       \
  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      0|    }                       \
  |  |   51|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1792|      0|                 "memory.init requires data count section");
 1793|      0|        CHECK_RESULT(ReadIndex(&segment, "elem segment index"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1794|      0|        Index memidx = 0;
 1795|      0|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1795:13): [True: 0, False: 0]
  ------------------
 1796|      0|          uint8_t reserved;
 1797|      0|          CHECK_RESULT(ReadU8(&reserved, "reserved memory index"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1798|      0|          ERROR_UNLESS(reserved == 0, "reserved value must be 0");
  ------------------
  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      0|  do {                      \
  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1799|      0|        } else {
 1800|      0|          CHECK_RESULT(ReadMemidx(&memidx, "memory.init memidx"));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1801|      0|        }
 1802|      0|        CALLBACK(OnMemoryInitExpr, segment, memidx);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 1803|      0|        CALLBACK(OnOpcodeUint32Uint32, segment, memidx);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 1804|      0|        break;
 1805|      0|      }
 1806|       |
 1807|    160|      case Opcode::DataDrop:
  ------------------
  |  Branch (1807:7): [True: 160, False: 793k]
  ------------------
 1808|    160|        ERROR_IF(data_count_ == kInvalidIndex,
  ------------------
  |  |   47|    160|  do {                      \
  |  |   48|    160|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 0, False: 160]
  |  |  ------------------
  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      0|  do {                       \
  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      0|    }                       \
  |  |   51|    160|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1809|    160|                 "data.drop requires data count section");
 1810|    160|        [[fallthrough]];
 1811|  4.88k|      case Opcode::ElemDrop: {
  ------------------
  |  Branch (1811:7): [True: 4.72k, False: 789k]
  ------------------
 1812|  4.88k|        Index segment;
 1813|  4.88k|        CHECK_RESULT(ReadIndex(&segment, "segment index"));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1814|  4.88k|        if (opcode == Opcode::DataDrop) {
  ------------------
  |  Branch (1814:13): [True: 160, False: 4.72k]
  ------------------
 1815|    160|          CALLBACK(OnDataDropExpr, segment);
  ------------------
  |  |   66|    160|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    160|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    160|  do {                      \
  |  |  |  |  |  |   48|    160|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 159]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|    160|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    160|               #member " callback failed")
  ------------------
 1816|  4.72k|        } else {
 1817|  4.72k|          CALLBACK(OnElemDropExpr, segment);
  ------------------
  |  |   66|  4.72k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  4.72k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  4.72k|  do {                      \
  |  |  |  |  |  |   48|  4.72k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 4.71k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|  4.72k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  4.72k|               #member " callback failed")
  ------------------
 1818|  4.72k|        }
 1819|  4.87k|        CALLBACK(OnOpcodeUint32, segment);
  ------------------
  |  |   66|  4.87k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  4.87k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  4.87k|  do {                      \
  |  |  |  |  |  |   48|  4.87k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 4.87k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  4.87k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  4.87k|               #member " callback failed")
  ------------------
 1820|  4.87k|        break;
 1821|  4.87k|      }
 1822|       |
 1823|  4.87k|      case Opcode::MemoryFill: {
  ------------------
  |  Branch (1823:7): [True: 439, False: 793k]
  ------------------
 1824|    439|        Index memidx = 0;
 1825|    439|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1825:13): [True: 215, False: 224]
  ------------------
 1826|    215|          uint8_t reserved;
 1827|    215|          CHECK_RESULT(ReadU8(&reserved, "memory.fill reserved"));
  ------------------
  |  |   55|    215|  do {                              \
  |  |   56|    215|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 215]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    215|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1828|    215|          ERROR_UNLESS(reserved == 0, "memory.fill reserved value must be 0");
  ------------------
  |  |   53|    215|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|    215|  do {                      \
  |  |  |  |   48|    215|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 215]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|    215|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1829|    224|        } else {
 1830|    224|          CHECK_RESULT(ReadMemidx(&memidx, "memory.fill memidx"));
  ------------------
  |  |   55|    224|  do {                              \
  |  |   56|    224|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 224]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    224|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1831|    224|        }
 1832|    439|        CALLBACK(OnMemoryFillExpr, memidx);
  ------------------
  |  |   66|    439|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    439|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    439|  do {                      \
  |  |  |  |  |  |   48|    439|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 438]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|    439|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    439|               #member " callback failed")
  ------------------
 1833|    438|        CALLBACK(OnOpcodeUint32, memidx);
  ------------------
  |  |   66|    438|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    438|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    438|  do {                      \
  |  |  |  |  |  |   48|    438|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 438]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    438|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    438|               #member " callback failed")
  ------------------
 1834|    438|        break;
 1835|    438|      }
 1836|       |
 1837|    438|      case Opcode::MemoryCopy: {
  ------------------
  |  Branch (1837:7): [True: 4, False: 793k]
  ------------------
 1838|      4|        Index destmemidx = 0;
 1839|      4|        Index srcmemidx = 0;
 1840|      4|        if (!options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (1840:13): [True: 0, False: 4]
  ------------------
 1841|      0|          uint8_t reserved;
 1842|      0|          CHECK_RESULT(ReadU8(&reserved, "reserved memory index"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1843|      0|          ERROR_UNLESS(reserved == 0, "reserved value must be 0");
  ------------------
  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      0|  do {                      \
  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1844|      0|          CHECK_RESULT(ReadU8(&reserved, "reserved memory index"));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1845|      0|          ERROR_UNLESS(reserved == 0, "reserved value must be 0");
  ------------------
  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      0|  do {                      \
  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1846|      4|        } else {
 1847|      4|          CHECK_RESULT(ReadMemidx(&destmemidx, "memory.copy destmemindex"));
  ------------------
  |  |   55|      4|  do {                              \
  |  |   56|      4|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      4|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1848|      4|          CHECK_RESULT(ReadMemidx(&srcmemidx, "memory.copy srcmemidx"));
  ------------------
  |  |   55|      4|  do {                              \
  |  |   56|      4|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      4|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1849|      4|        }
 1850|      4|        CALLBACK(OnMemoryCopyExpr, destmemidx, srcmemidx);
  ------------------
  |  |   66|      4|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      4|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      4|  do {                      \
  |  |  |  |  |  |   48|      4|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 4]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      4|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      4|               #member " callback failed")
  ------------------
 1851|      4|        CALLBACK(OnOpcodeUint32Uint32, destmemidx, srcmemidx);
  ------------------
  |  |   66|      4|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      4|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      4|  do {                      \
  |  |  |  |  |  |   48|      4|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 4]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      4|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      4|               #member " callback failed")
  ------------------
 1852|      4|        break;
 1853|      4|      }
 1854|       |
 1855|    118|      case Opcode::TableCopy: {
  ------------------
  |  Branch (1855:7): [True: 118, False: 793k]
  ------------------
 1856|    118|        Index table_dst;
 1857|    118|        Index table_src;
 1858|    118|        CHECK_RESULT(ReadIndex(&table_dst, "reserved table index"));
  ------------------
  |  |   55|    118|  do {                              \
  |  |   56|    118|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 118]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    118|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1859|    118|        CHECK_RESULT(ReadIndex(&table_src, "table src"));
  ------------------
  |  |   55|    118|  do {                              \
  |  |   56|    118|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 118]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    118|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1860|    118|        CALLBACK(OnTableCopyExpr, table_dst, table_src);
  ------------------
  |  |   66|    118|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    118|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    118|  do {                      \
  |  |  |  |  |  |   48|    118|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 117]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|    118|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    118|               #member " callback failed")
  ------------------
 1861|    117|        CALLBACK(OnOpcodeUint32Uint32, table_dst, table_src);
  ------------------
  |  |   66|    117|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    117|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    117|  do {                      \
  |  |  |  |  |  |   48|    117|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 117]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    117|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    117|               #member " callback failed")
  ------------------
 1862|    117|        break;
 1863|    117|      }
 1864|       |
 1865|    117|      case Opcode::TableGet: {
  ------------------
  |  Branch (1865:7): [True: 83, False: 793k]
  ------------------
 1866|     83|        Index table;
 1867|     83|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|     83|  do {                              \
  |  |   56|     83|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 83]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     83|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1868|     83|        CALLBACK(OnTableGetExpr, table);
  ------------------
  |  |   66|     83|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     83|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     83|  do {                      \
  |  |  |  |  |  |   48|     83|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 82]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|     83|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     83|               #member " callback failed")
  ------------------
 1869|     82|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   66|     82|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     82|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     82|  do {                      \
  |  |  |  |  |  |   48|     82|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 82]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     82|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     82|               #member " callback failed")
  ------------------
 1870|     82|        break;
 1871|     82|      }
 1872|       |
 1873|     82|      case Opcode::TableSet: {
  ------------------
  |  Branch (1873:7): [True: 12, False: 793k]
  ------------------
 1874|     12|        Index table;
 1875|     12|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|     12|  do {                              \
  |  |   56|     12|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 12]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     12|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1876|     12|        CALLBACK(OnTableSetExpr, table);
  ------------------
  |  |   66|     12|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     12|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     12|  do {                      \
  |  |  |  |  |  |   48|     12|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 12]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     12|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     12|               #member " callback failed")
  ------------------
 1877|     12|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   66|     12|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     12|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     12|  do {                      \
  |  |  |  |  |  |   48|     12|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 12]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     12|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     12|               #member " callback failed")
  ------------------
 1878|     12|        break;
 1879|     12|      }
 1880|       |
 1881|     12|      case Opcode::TableGrow: {
  ------------------
  |  Branch (1881:7): [True: 1, False: 793k]
  ------------------
 1882|      1|        Index table;
 1883|      1|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|      1|  do {                              \
  |  |   56|      1|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      1|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1884|      1|        CALLBACK(OnTableGrowExpr, table);
  ------------------
  |  |   66|      1|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      1|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      1|  do {                      \
  |  |  |  |  |  |   48|      1|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|      1|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      1|               #member " callback failed")
  ------------------
 1885|      0|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 1886|      0|        break;
 1887|      0|      }
 1888|       |
 1889|    238|      case Opcode::TableSize: {
  ------------------
  |  Branch (1889:7): [True: 238, False: 793k]
  ------------------
 1890|    238|        Index table;
 1891|    238|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|    238|  do {                              \
  |  |   56|    238|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 238]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    238|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1892|    238|        CALLBACK(OnTableSizeExpr, table);
  ------------------
  |  |   66|    238|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    238|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    238|  do {                      \
  |  |  |  |  |  |   48|    238|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 238]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    238|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    238|               #member " callback failed")
  ------------------
 1893|    238|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   66|    238|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    238|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    238|  do {                      \
  |  |  |  |  |  |   48|    238|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 238]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    238|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    238|               #member " callback failed")
  ------------------
 1894|    238|        break;
 1895|    238|      }
 1896|       |
 1897|    238|      case Opcode::TableFill: {
  ------------------
  |  Branch (1897:7): [True: 110, False: 793k]
  ------------------
 1898|    110|        Index table;
 1899|    110|        CHECK_RESULT(ReadIndex(&table, "table index"));
  ------------------
  |  |   55|    110|  do {                              \
  |  |   56|    110|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 110]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    110|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1900|    110|        CALLBACK(OnTableFillExpr, table);
  ------------------
  |  |   66|    110|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    110|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    110|  do {                      \
  |  |  |  |  |  |   48|    110|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 110]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    110|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    110|               #member " callback failed")
  ------------------
 1901|    110|        CALLBACK(OnOpcodeUint32, table);
  ------------------
  |  |   66|    110|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    110|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    110|  do {                      \
  |  |  |  |  |  |   48|    110|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 110]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    110|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    110|               #member " callback failed")
  ------------------
 1902|    110|        break;
 1903|    110|      }
 1904|       |
 1905|    462|      case Opcode::RefFunc: {
  ------------------
  |  Branch (1905:7): [True: 462, False: 793k]
  ------------------
 1906|    462|        Index func;
 1907|    462|        CHECK_RESULT(ReadIndex(&func, "func index"));
  ------------------
  |  |   55|    462|  do {                              \
  |  |   56|    462|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 461]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    462|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1908|    461|        CALLBACK(OnRefFuncExpr, func);
  ------------------
  |  |   66|    461|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    461|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    461|  do {                      \
  |  |  |  |  |  |   48|    461|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 5, False: 456]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      5|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      5|  do {                       \
  |  |  |  |  |  |  |  |   42|      5|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      5|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      5|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|    }                       \
  |  |  |  |  |  |   51|    461|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    461|               #member " callback failed")
  ------------------
 1909|    456|        CALLBACK(OnOpcodeUint32, func);
  ------------------
  |  |   66|    456|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    456|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    456|  do {                      \
  |  |  |  |  |  |   48|    456|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 456]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    456|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    456|               #member " callback failed")
  ------------------
 1910|    456|        break;
 1911|    456|      }
 1912|       |
 1913|  5.01k|      case Opcode::RefNull: {
  ------------------
  |  Branch (1913:7): [True: 5.01k, False: 788k]
  ------------------
 1914|  5.01k|        Type type;
 1915|  5.01k|        CHECK_RESULT(ReadRefType(&type, "ref.null type"));
  ------------------
  |  |   55|  5.01k|  do {                              \
  |  |   56|  5.01k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 5.00k]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|  5.01k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1916|  5.00k|        CALLBACK(OnRefNullExpr, type);
  ------------------
  |  |   66|  5.00k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  5.00k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  5.00k|  do {                      \
  |  |  |  |  |  |   48|  5.00k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 5.00k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  5.00k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  5.00k|               #member " callback failed")
  ------------------
 1917|  5.00k|        CALLBACK(OnOpcodeType, type);
  ------------------
  |  |   66|  5.00k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  5.00k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  5.00k|  do {                      \
  |  |  |  |  |  |   48|  5.00k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 5.00k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  5.00k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  5.00k|               #member " callback failed")
  ------------------
 1918|  5.00k|        break;
 1919|  5.00k|      }
 1920|       |
 1921|  5.00k|      case Opcode::RefIsNull:
  ------------------
  |  Branch (1921:7): [True: 223, False: 793k]
  ------------------
 1922|    223|        CALLBACK(OnRefIsNullExpr);
  ------------------
  |  |   66|    223|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    223|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    223|  do {                      \
  |  |  |  |  |  |   48|    223|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 222]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|    223|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    223|               #member " callback failed")
  ------------------
 1923|    222|        CALLBACK(OnOpcodeBare);
  ------------------
  |  |   66|    222|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    222|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    222|  do {                      \
  |  |  |  |  |  |   48|    222|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 222]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    222|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    222|               #member " callback failed")
  ------------------
 1924|    222|        break;
 1925|       |
 1926|    222|      case Opcode::CallRef:
  ------------------
  |  Branch (1926:7): [True: 142, False: 793k]
  ------------------
 1927|    142|        CALLBACK(OnCallRefExpr);
  ------------------
  |  |   66|    142|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    142|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    142|  do {                      \
  |  |  |  |  |  |   48|    142|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 142]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    142|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    142|               #member " callback failed")
  ------------------
 1928|    142|        CALLBACK(OnOpcodeBare);
  ------------------
  |  |   66|    142|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    142|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    142|  do {                      \
  |  |  |  |  |  |   48|    142|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 142]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    142|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    142|               #member " callback failed")
  ------------------
 1929|    142|        break;
 1930|       |
 1931|    142|      default:
  ------------------
  |  Branch (1931:7): [True: 128, False: 793k]
  ------------------
 1932|    128|        return ReportUnexpectedOpcode(opcode);
 1933|   793k|    }
 1934|   793k|  }
 1935|       |
 1936|     95|  PrintError("%s must end with END opcode", context);
 1937|     95|  return Result::Error;
 1938|  12.9k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadOpcodeEPNS_6OpcodeEPKc:
  271|   793k|Result BinaryReader::ReadOpcode(Opcode* out_value, const char* desc) {
  272|   793k|  uint8_t value = 0;
  273|   793k|  CHECK_RESULT(ReadU8(&value, desc));
  ------------------
  |  |   55|   793k|  do {                              \
  |  |   56|   793k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 793k]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|   793k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  274|       |
  275|   793k|  if (Opcode::IsPrefixByte(value)) {
  ------------------
  |  Branch (275:7): [True: 117k, False: 676k]
  ------------------
  276|   117k|    uint32_t code;
  277|   117k|    CHECK_RESULT(ReadU32Leb128(&code, desc));
  ------------------
  |  |   55|   117k|  do {                              \
  |  |   56|   117k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 117k]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|   117k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  278|   117k|    *out_value = Opcode::FromCode(value, code);
  279|   676k|  } else {
  280|   676k|    *out_value = Opcode::FromCode(value);
  281|   676k|  }
  282|   793k|  return Result::Ok;
  283|   793k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader22ReportUnexpectedOpcodeENS_6OpcodeEPKc:
  251|    150|Result BinaryReader::ReportUnexpectedOpcode(Opcode opcode, const char* where) {
  252|    150|  std::string message = "unexpected opcode";
  253|    150|  if (where) {
  ------------------
  |  Branch (253:7): [True: 0, False: 150]
  ------------------
  254|      0|    message += ' ';
  255|      0|    message += where;
  256|      0|  }
  257|       |
  258|    150|  message += ":";
  259|       |
  260|    150|  std::vector<uint8_t> bytes = opcode.GetBytes();
  261|    150|  assert(bytes.size() > 0);
  262|       |
  263|    215|  for (uint8_t byte : bytes) {
  ------------------
  |  Branch (263:21): [True: 215, False: 150]
  ------------------
  264|    215|    message += StringPrintf(" 0x%x", byte);
  265|    215|  }
  266|       |
  267|    150|  PrintError("%s", message.c_str());
  268|    150|  return Result::Error;
  269|    150|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader11IsBlockTypeENS_4TypeE:
  581|  26.5k|bool BinaryReader::IsBlockType(Type type) {
  582|  26.5k|  if (IsConcreteType(type) || type == Type::Void) {
  ------------------
  |  Branch (582:7): [True: 5.61k, False: 20.9k]
  |  Branch (582:31): [True: 18.8k, False: 2.13k]
  ------------------
  583|  24.4k|    return true;
  584|  24.4k|  }
  585|       |
  586|  2.13k|  if (!(options_.features.multi_value_enabled() && type.IsIndex())) {
  ------------------
  |  Branch (586:9): [True: 2.13k, False: 0]
  |  Branch (586:52): [True: 2.12k, False: 13]
  ------------------
  587|     13|    return false;
  588|     13|  }
  589|       |
  590|  2.12k|  return true;
  591|  2.13k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13ReadS64Leb128EPmPKc:
  356|  6.78k|Result BinaryReader::ReadS64Leb128(uint64_t* out_value, const char* desc) {
  357|  6.78k|  const uint8_t* p = state_.data + state_.offset;
  358|  6.78k|  const uint8_t* end = state_.data + read_end_;
  359|  6.78k|  size_t bytes_read = wabt::ReadS64Leb128(p, end, out_value);
  360|  6.78k|  ERROR_UNLESS(bytes_read > 0, "unable to read i64 leb128: %s", desc);
  ------------------
  |  |   53|  6.78k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  6.78k|  do {                      \
  |  |  |  |   48|  6.78k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 2, False: 6.78k]
  |  |  |  |  ------------------
  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      2|    }                       \
  |  |  |  |   51|  6.78k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  361|  6.78k|  state_.offset += bytes_read;
  362|  6.78k|  return Result::Ok;
  363|  6.78k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadF32EPjPKc:
  317|  18.9k|Result BinaryReader::ReadF32(uint32_t* out_value, const char* desc) {
  318|  18.9k|  return ReadT(out_value, "float", desc);
  319|  18.9k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader7ReadF64EPmPKc:
  321|  2.45k|Result BinaryReader::ReadF64(uint64_t* out_value, const char* desc) {
  322|  2.45k|  return ReadT(out_value, "double", desc);
  323|  2.45k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTImEENS_6ResultEPT_PKcS7_:
  288|  2.45k|                           const char* desc) {
  289|  2.45k|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (289:7): [True: 0, False: 2.45k]
  ------------------
  290|      0|    PrintError("unable to read %s: %s", type_name, desc);
  291|      0|    return Result::Error;
  292|      0|  }
  293|       |#if WABT_BIG_ENDIAN
  294|       |  uint8_t tmp[sizeof(T)];
  295|       |  memcpy(tmp, state_.data + state_.offset, sizeof(tmp));
  296|       |  SwapBytesSized(tmp, sizeof(tmp));
  297|       |  memcpy(out_value, tmp, sizeof(T));
  298|       |#else
  299|  2.45k|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  300|  2.45k|#endif
  301|  2.45k|  state_.offset += sizeof(T);
  302|  2.45k|  return Result::Ok;
  303|  2.45k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader8ReadV128EP4v128PKc:
  325|  4.61k|Result BinaryReader::ReadV128(v128* out_value, const char* desc) {
  326|  4.61k|  return ReadT(out_value, "v128", desc);
  327|  4.61k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader5ReadTI4v128EENS_6ResultEPT_PKcS8_:
  288|  4.61k|                           const char* desc) {
  289|  4.61k|  if (state_.offset + sizeof(T) > read_end_) {
  ------------------
  |  Branch (289:7): [True: 0, False: 4.61k]
  ------------------
  290|      0|    PrintError("unable to read %s: %s", type_name, desc);
  291|      0|    return Result::Error;
  292|      0|  }
  293|       |#if WABT_BIG_ENDIAN
  294|       |  uint8_t tmp[sizeof(T)];
  295|       |  memcpy(tmp, state_.data + state_.offset, sizeof(tmp));
  296|       |  SwapBytesSized(tmp, sizeof(tmp));
  297|       |  memcpy(out_value, tmp, sizeof(T));
  298|       |#else
  299|  4.61k|  memcpy(out_value, state_.data + state_.offset, sizeof(T));
  300|  4.61k|#endif
  301|  4.61k|  state_.offset += sizeof(T);
  302|  4.61k|  return Result::Ok;
  303|  4.61k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadMemLocationEPmPjS2_PKcS5_S5_Ph:
  480|  25.4k|                                     uint8_t* lane_val) {
  481|  25.4k|  bool has_memidx = false;
  482|  25.4k|  CHECK_RESULT(ReadAlignment(alignment_log2, desc_align));
  ------------------
  |  |   55|  25.4k|  do {                              \
  |  |   56|  25.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4, False: 25.4k]
  |  |  ------------------
  |  |   57|      4|      return ::wabt::Result::Error; \
  |  |   58|      4|    }                               \
  |  |   59|  25.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  483|  25.4k|  CHECK_RESULT(TakeHasMemidx(alignment_log2, &has_memidx));
  ------------------
  |  |   55|  25.4k|  do {                              \
  |  |   56|  25.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 25.4k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  25.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  484|  25.4k|  CHECK_RESULT(CheckAlignment(alignment_log2, desc_align));
  ------------------
  |  |   55|  25.4k|  do {                              \
  |  |   56|  25.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 52, False: 25.4k]
  |  |  ------------------
  |  |   57|     52|      return ::wabt::Result::Error; \
  |  |   58|     52|    }                               \
  |  |   59|  25.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  485|  25.4k|  *memidx = 0;
  486|  25.4k|  if (has_memidx) {
  ------------------
  |  Branch (486:7): [True: 2, False: 25.4k]
  ------------------
  487|      2|    ERROR_IF(!options_.features.multi_memory_enabled(),
  ------------------
  |  |   47|      2|  do {                      \
  |  |   48|      2|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 0, False: 2]
  |  |  ------------------
  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      0|  do {                       \
  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      0|    }                       \
  |  |   51|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  488|      2|             "multi_memory not allowed");
  489|      2|    CHECK_RESULT(ReadMemidx(memidx, desc_memidx));
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 0]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  490|      2|  }
  491|  25.4k|  CHECK_RESULT(ReadAddress(offset, 0, desc_offset));
  ------------------
  |  |   55|  25.4k|  do {                              \
  |  |   56|  25.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 25.4k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  25.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  492|       |
  493|  25.4k|  if (lane_val) {
  ------------------
  |  Branch (493:7): [True: 908, False: 24.5k]
  ------------------
  494|    908|    CHECK_RESULT(ReadU8(lane_val, "Lane idx"));
  ------------------
  |  |   55|    908|  do {                              \
  |  |   56|    908|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 908]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    908|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  495|    908|  }
  496|       |
  497|  25.4k|  return Result::Ok;
  498|  25.4k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader13TakeHasMemidxEPmPb:
  461|  25.4k|Result BinaryReader::TakeHasMemidx(Address* align_log2, bool* has_memidx) {
  462|       |  // extract the has_memidx flag
  463|  25.4k|  *has_memidx = (*align_log2 >> 6) & 1;
  464|       |  // then clear it
  465|  25.4k|  *align_log2 &= ~(1 << 6);
  466|  25.4k|  return Result::Ok;
  467|  25.4k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader11ReadAddressEPmjPKc:
  700|  25.4k|                                 const char* desc) {
  701|  25.4k|  if (options_.features.memory64_enabled()) {
  ------------------
  |  Branch (701:7): [True: 19.0k, False: 6.37k]
  ------------------
  702|  19.0k|    return ReadU64Leb128(out_value, desc);
  703|  19.0k|  } else {
  704|  6.37k|    uint32_t val;
  705|  6.37k|    Result res = ReadU32Leb128(&val, desc);
  706|  6.37k|    *out_value = val;
  707|  6.37k|    return res;
  708|  6.37k|  }
  709|  25.4k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader19CallbackMemLocationEPKmPKjS3_PKh:
  503|  25.4k|                                         const uint8_t* lane_val) {
  504|  25.4k|  if (lane_val) {
  ------------------
  |  Branch (504:7): [True: 897, False: 24.5k]
  ------------------
  505|    897|    if (*memidx) {
  ------------------
  |  Branch (505:9): [True: 0, False: 897]
  ------------------
  506|      0|      CALLBACK(OnOpcodeUint32Uint32Uint32Uint32, *alignment_log2, *memidx,
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
  507|      0|               *offset, *lane_val);
  508|    897|    } else {
  509|    897|      CALLBACK(OnOpcodeUint32Uint32Uint32, *alignment_log2, *offset, *lane_val);
  ------------------
  |  |   66|    897|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    897|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    897|  do {                      \
  |  |  |  |  |  |   48|    897|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 897]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    897|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    897|               #member " callback failed")
  ------------------
  510|    897|    }
  511|  24.5k|  } else {
  512|  24.5k|    if (*memidx) {
  ------------------
  |  Branch (512:9): [True: 0, False: 24.5k]
  ------------------
  513|      0|      CALLBACK(OnOpcodeUint32Uint32Uint32, *alignment_log2, *memidx, *offset);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
  514|  24.5k|    } else {
  515|  24.5k|      CALLBACK(OnOpcodeUint32Uint32, *alignment_log2, *offset);
  ------------------
  |  |   66|  24.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  24.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  24.5k|  do {                      \
  |  |  |  |  |  |   48|  24.5k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 24.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  24.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  24.5k|               #member " callback failed")
  ------------------
  516|  24.5k|    }
  517|  24.5k|  }
  518|       |
  519|  25.4k|  return Result::Ok;
  520|  25.4k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader10ReadMemidxEPjPKc:
  469|  11.0k|Result BinaryReader::ReadMemidx(Index* memidx, const char* desc) {
  470|  11.0k|  CHECK_RESULT(ReadIndex(memidx, desc));
  ------------------
  |  |   55|  11.0k|  do {                              \
  |  |   56|  11.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 11.0k]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|  11.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  471|  11.0k|  return Result::Ok;
  472|  11.0k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ReadExportSectionEm:
 2757|    483|Result BinaryReader::ReadExportSection(Offset section_size) {
 2758|    483|  CALLBACK(BeginExportSection, section_size);
  ------------------
  |  |   66|    483|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    483|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    483|  do {                      \
  |  |  |  |  |  |   48|    483|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 483]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    483|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    483|               #member " callback failed")
  ------------------
 2759|    483|  Index num_exports;
 2760|    483|  CHECK_RESULT(ReadCount(&num_exports, "export count"));
  ------------------
  |  |   55|    483|  do {                              \
  |  |   56|    483|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 473]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|    483|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2761|    473|  CALLBACK(OnExportCount, num_exports);
  ------------------
  |  |   66|    473|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    473|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    473|  do {                      \
  |  |  |  |  |  |   48|    473|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 473]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    473|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    473|               #member " callback failed")
  ------------------
 2762|  5.74k|  for (Index i = 0; i < num_exports; ++i) {
  ------------------
  |  Branch (2762:21): [True: 5.46k, False: 276]
  ------------------
 2763|  5.46k|    std::string_view name;
 2764|  5.46k|    CHECK_RESULT(ReadStr(&name, "export item name"));
  ------------------
  |  |   55|  5.46k|  do {                              \
  |  |   56|  5.46k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 88, False: 5.37k]
  |  |  ------------------
  |  |   57|     88|      return ::wabt::Result::Error; \
  |  |   58|     88|    }                               \
  |  |   59|  5.46k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2765|       |
 2766|  5.37k|    ExternalKind kind;
 2767|  5.37k|    CHECK_RESULT(ReadExternalKind(&kind, "export kind"));
  ------------------
  |  |   55|  5.37k|  do {                              \
  |  |   56|  5.37k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 35, False: 5.34k]
  |  |  ------------------
  |  |   57|     35|      return ::wabt::Result::Error; \
  |  |   58|     35|    }                               \
  |  |   59|  5.37k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2768|       |
 2769|  5.34k|    Index item_index;
 2770|  5.34k|    CHECK_RESULT(ReadIndex(&item_index, "export item index"));
  ------------------
  |  |   55|  5.34k|  do {                              \
  |  |   56|  5.34k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 5.33k]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|  5.34k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2771|  5.33k|    if (kind == ExternalKind::Tag) {
  ------------------
  |  Branch (2771:9): [True: 0, False: 5.33k]
  ------------------
 2772|      0|      ERROR_UNLESS(options_.features.exceptions_enabled(),
  ------------------
  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|      0|  do {                      \
  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2773|      0|                   "invalid export tag kind: exceptions not allowed");
 2774|      0|    }
 2775|       |
 2776|  5.33k|    CALLBACK(OnExport, i, static_cast<ExternalKind>(kind), item_index, name);
  ------------------
  |  |   66|  5.33k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  5.33k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  5.33k|  do {                      \
  |  |  |  |  |  |   48|  5.33k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 68, False: 5.26k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     68|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     68|  do {                       \
  |  |  |  |  |  |  |  |   42|     68|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     68|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     68|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     68|    }                       \
  |  |  |  |  |  |   51|  5.33k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  5.33k|               #member " callback failed")
  ------------------
 2777|  5.33k|  }
 2778|    276|  CALLBACK0(EndExportSection);
  ------------------
  |  |   63|    276|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    276|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    276|  do {                      \
  |  |  |  |  |  |   48|    276|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 276]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    276|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2779|    276|  return Result::Ok;
 2780|    276|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadExternalKindEPNS_12ExternalKindEPKc:
  385|  5.64k|                                      const char* desc) {
  386|  5.64k|  uint8_t value = 0;
  387|  5.64k|  CHECK_RESULT(ReadU8(&value, desc));
  ------------------
  |  |   55|  5.64k|  do {                              \
  |  |   56|  5.64k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 5.64k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  5.64k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  388|  5.64k|  ERROR_UNLESS(value < kExternalKindCount, "invalid export external kind: %d",
  ------------------
  |  |   53|  5.64k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  5.64k|  do {                      \
  |  |  |  |   48|  5.64k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 37, False: 5.60k]
  |  |  |  |  ------------------
  |  |  |  |   49|     37|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     37|  do {                       \
  |  |  |  |  |  |   42|     37|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|     37|    return Result::Error;    \
  |  |  |  |  |  |   44|     37|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|     37|    }                       \
  |  |  |  |   51|  5.64k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  389|  5.60k|               value);
  390|  5.60k|  *out_value = static_cast<ExternalKind>(value);
  391|  5.60k|  return Result::Ok;
  392|  5.64k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadStartSectionEm:
 2782|     66|Result BinaryReader::ReadStartSection(Offset section_size) {
 2783|     66|  CALLBACK(BeginStartSection, section_size);
  ------------------
  |  |   66|     66|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     66|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     66|  do {                      \
  |  |  |  |  |  |   48|     66|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 66]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     66|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     66|               #member " callback failed")
  ------------------
 2784|     66|  Index func_index;
 2785|     66|  CHECK_RESULT(ReadIndex(&func_index, "start function index"));
  ------------------
  |  |   55|     66|  do {                              \
  |  |   56|     66|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 65]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|     66|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2786|     65|  CALLBACK(OnStartFunction, func_index);
  ------------------
  |  |   66|     65|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     65|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     65|  do {                      \
  |  |  |  |  |  |   48|     65|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 30, False: 35]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|     30|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|     30|  do {                       \
  |  |  |  |  |  |  |  |   42|     30|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|     30|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|     30|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     30|    }                       \
  |  |  |  |  |  |   51|     65|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     65|               #member " callback failed")
  ------------------
 2787|     35|  CALLBACK0(EndStartSection);
  ------------------
  |  |   63|     35|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|     35|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     35|  do {                      \
  |  |  |  |  |  |   48|     35|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 35]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     35|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2788|     35|  return Result::Ok;
 2789|     35|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadElemSectionEm:
 2791|    185|Result BinaryReader::ReadElemSection(Offset section_size) {
 2792|    185|  CALLBACK(BeginElemSection, section_size);
  ------------------
  |  |   66|    185|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    185|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    185|  do {                      \
  |  |  |  |  |  |   48|    185|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 185]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    185|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    185|               #member " callback failed")
  ------------------
 2793|    185|  Index num_elem_segments;
 2794|    185|  CHECK_RESULT(ReadCount(&num_elem_segments, "elem segment count"));
  ------------------
  |  |   55|    185|  do {                              \
  |  |   56|    185|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 14, False: 171]
  |  |  ------------------
  |  |   57|     14|      return ::wabt::Result::Error; \
  |  |   58|     14|    }                               \
  |  |   59|    185|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2795|    171|  CALLBACK(OnElemSegmentCount, num_elem_segments);
  ------------------
  |  |   66|    171|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    171|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    171|  do {                      \
  |  |  |  |  |  |   48|    171|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 171]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    171|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    171|               #member " callback failed")
  ------------------
 2796|  2.56k|  for (Index i = 0; i < num_elem_segments; ++i) {
  ------------------
  |  Branch (2796:21): [True: 2.45k, False: 115]
  ------------------
 2797|  2.45k|    uint32_t flags;
 2798|  2.45k|    CHECK_RESULT(ReadU32Leb128(&flags, "elem segment flags"));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 2799|  2.45k|    ERROR_IF(flags > SegFlagMax, "invalid elem segment flags: %#x", flags);
  ------------------
  |  |   47|  2.45k|  do {                      \
  |  |   48|  2.45k|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 4, False: 2.44k]
  |  |  ------------------
  |  |   49|      4|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      4|  do {                       \
  |  |  |  |   42|      4|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      4|    return Result::Error;    \
  |  |  |  |   44|      4|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      4|    }                       \
  |  |   51|  2.45k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2800|  2.44k|    Index table_index(0);
 2801|  2.44k|    if ((flags & (SegPassive | SegExplicitIndex)) == SegExplicitIndex) {
  ------------------
  |  Branch (2801:9): [True: 1.85k, False: 593]
  ------------------
 2802|  1.85k|      CHECK_RESULT(ReadIndex(&table_index, "elem segment table index"));
  ------------------
  |  |   55|  1.85k|  do {                              \
  |  |   56|  1.85k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.85k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.85k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2803|  1.85k|    }
 2804|  2.44k|    Type elem_type = Type::FuncRef;
 2805|       |
 2806|  2.44k|    CALLBACK(BeginElemSegment, i, table_index, flags);
  ------------------
  |  |   66|  2.44k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.44k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.44k|  do {                      \
  |  |  |  |  |  |   48|  2.44k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 4, False: 2.44k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      4|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      4|  do {                       \
  |  |  |  |  |  |  |  |   42|      4|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      4|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      4|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|    }                       \
  |  |  |  |  |  |   51|  2.44k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.44k|               #member " callback failed")
  ------------------
 2807|       |
 2808|  2.44k|    if (!(flags & SegPassive)) {
  ------------------
  |  Branch (2808:9): [True: 1.91k, False: 523]
  ------------------
 2809|  1.91k|      CALLBACK(BeginElemSegmentInitExpr, i);
  ------------------
  |  |   66|  1.91k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.91k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.91k|  do {                      \
  |  |  |  |  |  |   48|  1.91k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.91k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  1.91k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.91k|               #member " callback failed")
  ------------------
 2810|  1.91k|      CHECK_RESULT(ReadInitExpr(i));
  ------------------
  |  |   55|  1.91k|  do {                              \
  |  |   56|  1.91k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 1.91k]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|  1.91k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2811|  1.91k|      CALLBACK(EndElemSegmentInitExpr, i);
  ------------------
  |  |   66|  1.91k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  1.91k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  1.91k|  do {                      \
  |  |  |  |  |  |   48|  1.91k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 1.91k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  1.91k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  1.91k|               #member " callback failed")
  ------------------
 2812|  1.91k|    }
 2813|       |
 2814|       |    // For backwards compat we support not declaring the element kind.
 2815|  2.44k|    if (flags & (SegPassive | SegExplicitIndex)) {
  ------------------
  |  Branch (2815:9): [True: 2.37k, False: 67]
  ------------------
 2816|  2.37k|      if (flags & SegUseElemExprs) {
  ------------------
  |  Branch (2816:11): [True: 2.10k, False: 266]
  ------------------
 2817|  2.10k|        CHECK_RESULT(ReadRefType(&elem_type, "table elem type"));
  ------------------
  |  |   55|  2.10k|  do {                              \
  |  |   56|  2.10k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 2.10k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  2.10k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2818|  2.10k|      } else {
 2819|    266|        ExternalKind kind;
 2820|    266|        CHECK_RESULT(ReadExternalKind(&kind, "export kind"));
  ------------------
  |  |   55|    266|  do {                              \
  |  |   56|    266|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 264]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|    266|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2821|    264|        ERROR_UNLESS(kind == ExternalKind::Func,
  ------------------
  |  |   53|    264|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|    264|  do {                      \
  |  |  |  |   48|    264|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 6, False: 258]
  |  |  |  |  ------------------
  |  |  |  |   49|      6|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      6|  do {                       \
  |  |  |  |  |  |   42|      6|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      6|    return Result::Error;    \
  |  |  |  |  |  |   44|      6|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      6|    }                       \
  |  |  |  |   51|    264|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2822|    258|                     "segment elem type must be func (%s)",
 2823|    258|                     elem_type.GetName().c_str());
 2824|    258|        elem_type = Type::FuncRef;
 2825|    258|      }
 2826|  2.37k|    }
 2827|       |
 2828|  2.43k|    CALLBACK(OnElemSegmentElemType, i, elem_type);
  ------------------
  |  |   66|  2.43k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.43k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.43k|  do {                      \
  |  |  |  |  |  |   48|  2.43k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 8, False: 2.42k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      8|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      8|  do {                       \
  |  |  |  |  |  |  |  |   42|      8|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      8|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      8|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|    }                       \
  |  |  |  |  |  |   51|  2.43k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.43k|               #member " callback failed")
  ------------------
 2829|       |
 2830|  2.42k|    Index num_elem_exprs;
 2831|  2.42k|    CHECK_RESULT(ReadCount(&num_elem_exprs, "elem count"));
  ------------------
  |  |   55|  2.42k|  do {                              \
  |  |   56|  2.42k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 2.42k]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|  2.42k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2832|       |
 2833|  2.42k|    CALLBACK(OnElemSegmentElemExprCount, i, num_elem_exprs);
  ------------------
  |  |   66|  2.42k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.42k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.42k|  do {                      \
  |  |  |  |  |  |   48|  2.42k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.42k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.42k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.42k|               #member " callback failed")
  ------------------
 2834|  12.9k|    for (Index j = 0; j < num_elem_exprs; ++j) {
  ------------------
  |  Branch (2834:23): [True: 10.5k, False: 2.39k]
  ------------------
 2835|  10.5k|      CALLBACK(BeginElemExpr, i, j);
  ------------------
  |  |   66|  10.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  10.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  10.5k|  do {                      \
  |  |  |  |  |  |   48|  10.5k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 10.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  10.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  10.5k|               #member " callback failed")
  ------------------
 2836|  10.5k|      if (flags & SegUseElemExprs) {
  ------------------
  |  Branch (2836:11): [True: 3.89k, False: 6.68k]
  ------------------
 2837|  3.89k|        CHECK_RESULT(ReadInitExpr(j));
  ------------------
  |  |   55|  3.89k|  do {                              \
  |  |   56|  3.89k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 21, False: 3.87k]
  |  |  ------------------
  |  |   57|     21|      return ::wabt::Result::Error; \
  |  |   58|     21|    }                               \
  |  |   59|  3.89k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2838|  6.68k|      } else {
 2839|  6.68k|        Index func_index;
 2840|  6.68k|        CHECK_RESULT(ReadIndex(&func_index, "elem expr func index"));
  ------------------
  |  |   55|  6.68k|  do {                              \
  |  |   56|  6.68k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 6.68k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  6.68k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2841|  6.68k|        CALLBACK(OnOpcode, Opcode::RefFunc);
  ------------------
  |  |   66|  6.68k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  6.68k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  6.68k|  do {                      \
  |  |  |  |  |  |   48|  6.68k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 6.68k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  6.68k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  6.68k|               #member " callback failed")
  ------------------
 2842|  6.68k|        CALLBACK(OnRefFuncExpr, func_index);
  ------------------
  |  |   66|  6.68k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  6.68k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  6.68k|  do {                      \
  |  |  |  |  |  |   48|  6.68k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 6, False: 6.68k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      6|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      6|  do {                       \
  |  |  |  |  |  |  |  |   42|      6|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      6|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      6|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|    }                       \
  |  |  |  |  |  |   51|  6.68k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  6.68k|               #member " callback failed")
  ------------------
 2843|  6.68k|        CALLBACK(OnOpcodeUint32, func_index);
  ------------------
  |  |   66|  6.68k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  6.68k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  6.68k|  do {                      \
  |  |  |  |  |  |   48|  6.68k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 6.68k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  6.68k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  6.68k|               #member " callback failed")
  ------------------
 2844|  6.68k|        CALLBACK0(OnEndExpr);
  ------------------
  |  |   63|  6.68k|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|  6.68k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  6.68k|  do {                      \
  |  |  |  |  |  |   48|  6.68k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 6.68k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  6.68k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2845|  6.68k|      }
 2846|  10.5k|      CALLBACK(EndElemExpr, i, j);
  ------------------
  |  |   66|  10.5k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  10.5k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  10.5k|  do {                      \
  |  |  |  |  |  |   48|  10.5k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 10.5k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  10.5k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  10.5k|               #member " callback failed")
  ------------------
 2847|  10.5k|    }
 2848|  2.39k|    CALLBACK(EndElemSegment, i);
  ------------------
  |  |   66|  2.39k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.39k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.39k|  do {                      \
  |  |  |  |  |  |   48|  2.39k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2.39k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  2.39k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.39k|               #member " callback failed")
  ------------------
 2849|  2.39k|  }
 2850|    115|  CALLBACK0(EndElemSection);
  ------------------
  |  |   63|    115|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    115|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    115|  do {                      \
  |  |  |  |  |  |   48|    115|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 115]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    115|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2851|    115|  return Result::Ok;
 2852|    115|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadCodeSectionEm:
 2854|    703|Result BinaryReader::ReadCodeSection(Offset section_size) {
 2855|    703|  CALLBACK(BeginCodeSection, section_size);
  ------------------
  |  |   66|    703|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    703|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    703|  do {                      \
  |  |  |  |  |  |   48|    703|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 703]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    703|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    703|               #member " callback failed")
  ------------------
 2856|    703|  CHECK_RESULT(ReadCount(&num_function_bodies_, "function body count"));
  ------------------
  |  |   55|    703|  do {                              \
  |  |   56|    703|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 702]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    703|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2857|    702|  ERROR_UNLESS(num_function_signatures_ == num_function_bodies_,
  ------------------
  |  |   53|    702|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|    702|  do {                      \
  |  |  |  |   48|    702|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 5, False: 697]
  |  |  |  |  ------------------
  |  |  |  |   49|      5|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      5|  do {                       \
  |  |  |  |  |  |   42|      5|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      5|    return Result::Error;    \
  |  |  |  |  |  |   44|      5|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      5|    }                       \
  |  |  |  |   51|    702|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2858|    697|               "function signature count != function body count");
 2859|    697|  CALLBACK(OnFunctionBodyCount, num_function_bodies_);
  ------------------
  |  |   66|    697|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    697|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    697|  do {                      \
  |  |  |  |  |  |   48|    697|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 697]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    697|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    697|               #member " callback failed")
  ------------------
 2860|  3.16k|  for (Index i = 0; i < num_function_bodies_; ++i) {
  ------------------
  |  Branch (2860:21): [True: 3.15k, False: 6]
  ------------------
 2861|  3.15k|    Index func_index = num_func_imports_ + i;
 2862|  3.15k|    Offset func_offset = state_.offset;
 2863|  3.15k|    state_.offset = func_offset;
 2864|  3.15k|    uint32_t body_size;
 2865|  3.15k|    CHECK_RESULT(ReadU32Leb128(&body_size, "function body size"));
  ------------------
  |  |   55|  3.15k|  do {                              \
  |  |   56|  3.15k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 3.15k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  3.15k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2866|  3.15k|    Offset body_start_offset = state_.offset;
 2867|  3.15k|    Offset end_offset = body_start_offset + body_size;
 2868|  3.15k|    CALLBACK(BeginFunctionBody, func_index, body_size);
  ------------------
  |  |   66|  3.15k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.15k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.15k|  do {                      \
  |  |  |  |  |  |   48|  3.15k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3.15k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  3.15k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.15k|               #member " callback failed")
  ------------------
 2869|       |
 2870|  3.15k|    uint64_t total_locals = 0;
 2871|  3.15k|    Index num_local_decls;
 2872|  3.15k|    CHECK_RESULT(ReadCount(&num_local_decls, "local declaration count"));
  ------------------
  |  |   55|  3.15k|  do {                              \
  |  |   56|  3.15k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 3.15k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  3.15k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2873|  3.15k|    CALLBACK(OnLocalDeclCount, num_local_decls);
  ------------------
  |  |   66|  3.15k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.15k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.15k|  do {                      \
  |  |  |  |  |  |   48|  3.15k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3.15k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  3.15k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.15k|               #member " callback failed")
  ------------------
 2874|  16.4k|    for (Index k = 0; k < num_local_decls; ++k) {
  ------------------
  |  Branch (2874:23): [True: 13.3k, False: 3.13k]
  ------------------
 2875|  13.3k|      Index num_local_types;
 2876|  13.3k|      CHECK_RESULT(ReadIndex(&num_local_types, "local type count"));
  ------------------
  |  |   55|  13.3k|  do {                              \
  |  |   56|  13.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 13.3k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  13.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2877|  13.3k|      total_locals += num_local_types;
 2878|  13.3k|      ERROR_UNLESS(total_locals <= UINT32_MAX, "local count must be <= 0x%x",
  ------------------
  |  |   53|  13.3k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  13.3k|  do {                      \
  |  |  |  |   48|  13.3k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 0, False: 13.3k]
  |  |  |  |  ------------------
  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      0|    }                       \
  |  |  |  |   51|  13.3k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2879|  13.3k|                   UINT32_MAX);
 2880|  13.3k|      Type local_type;
 2881|  13.3k|      CHECK_RESULT(ReadType(&local_type, "local type"));
  ------------------
  |  |   55|  13.3k|  do {                              \
  |  |   56|  13.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 13.3k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  13.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2882|  13.3k|      ERROR_UNLESS(IsConcreteType(local_type), "expected valid local type");
  ------------------
  |  |   53|  13.3k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  13.3k|  do {                      \
  |  |  |  |   48|  13.3k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 14, False: 13.2k]
  |  |  |  |  ------------------
  |  |  |  |   49|     14|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     14|  do {                       \
  |  |  |  |  |  |   42|     14|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|     14|    return Result::Error;    \
  |  |  |  |  |  |   44|     14|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|     14|    }                       \
  |  |  |  |   51|  13.3k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2883|  13.2k|      CALLBACK(OnLocalDecl, k, num_local_types, local_type);
  ------------------
  |  |   66|  13.2k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  13.2k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  13.2k|  do {                      \
  |  |  |  |  |  |   48|  13.2k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 1, False: 13.2k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      1|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      1|  do {                       \
  |  |  |  |  |  |  |  |   42|      1|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      1|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      1|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|    }                       \
  |  |  |  |  |  |   51|  13.2k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  13.2k|               #member " callback failed")
  ------------------
 2884|  13.2k|    }
 2885|  3.13k|    CALLBACK(EndLocalDecls);
  ------------------
  |  |   66|  3.13k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  3.13k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  3.13k|  do {                      \
  |  |  |  |  |  |   48|  3.13k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 3.13k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|  3.13k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  3.13k|               #member " callback failed")
  ------------------
 2886|       |
 2887|  3.13k|    if (options_.skip_function_bodies) {
  ------------------
  |  Branch (2887:9): [True: 0, False: 3.13k]
  ------------------
 2888|      0|      state_.offset = end_offset;
 2889|  3.13k|    } else {
 2890|  3.13k|      CHECK_RESULT(ReadFunctionBody(end_offset));
  ------------------
  |  |   55|  3.13k|  do {                              \
  |  |   56|  3.13k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 667, False: 2.47k]
  |  |  ------------------
  |  |   57|    667|      return ::wabt::Result::Error; \
  |  |   58|    667|    }                               \
  |  |   59|  3.13k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2891|  3.13k|    }
 2892|       |
 2893|  2.47k|    CALLBACK(EndFunctionBody, func_index);
  ------------------
  |  |   66|  2.47k|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|  2.47k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|  2.47k|  do {                      \
  |  |  |  |  |  |   48|  2.47k|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 6, False: 2.46k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      6|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      6|  do {                       \
  |  |  |  |  |  |  |  |   42|      6|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      6|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      6|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|    }                       \
  |  |  |  |  |  |   51|  2.47k|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|  2.47k|               #member " callback failed")
  ------------------
 2894|  2.47k|  }
 2895|      6|  CALLBACK0(EndCodeSection);
  ------------------
  |  |   63|      6|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|      6|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      6|  do {                      \
  |  |  |  |  |  |   48|      6|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 6]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      6|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2896|      6|  return Result::Ok;
 2897|      6|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader16ReadFunctionBodyEm:
  711|  3.13k|Result BinaryReader::ReadFunctionBody(Offset end_offset) {
  712|  3.13k|  CHECK_RESULT(ReadInstructions(end_offset, "function body"));
  ------------------
  |  |   55|  3.13k|  do {                              \
  |  |   56|  3.13k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 654, False: 2.48k]
  |  |  ------------------
  |  |   57|    654|      return ::wabt::Result::Error; \
  |  |   58|    654|    }                               \
  |  |   59|  3.13k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  713|  2.48k|  ERROR_UNLESS(state_.offset == end_offset,
  ------------------
  |  |   53|  2.48k|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|  2.48k|  do {                      \
  |  |  |  |   48|  2.48k|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 13, False: 2.47k]
  |  |  |  |  ------------------
  |  |  |  |   49|     13|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|     13|  do {                       \
  |  |  |  |  |  |   42|     13|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|     13|    return Result::Error;    \
  |  |  |  |  |  |   44|     13|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|     13|    }                       \
  |  |  |  |   51|  2.48k|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  714|  2.47k|               "function body shorter than given size");
  715|  2.47k|  return Result::Ok;
  716|  2.48k|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader15ReadDataSectionEm:
 2899|     50|Result BinaryReader::ReadDataSection(Offset section_size) {
 2900|     50|  CALLBACK(BeginDataSection, section_size);
  ------------------
  |  |   66|     50|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     50|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     50|  do {                      \
  |  |  |  |  |  |   48|     50|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 50]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     50|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     50|               #member " callback failed")
  ------------------
 2901|     50|  CHECK_RESULT(ReadCount(&num_data_segments_, "data segment count"));
  ------------------
  |  |   55|     50|  do {                              \
  |  |   56|     50|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 18, False: 32]
  |  |  ------------------
  |  |   57|     18|      return ::wabt::Result::Error; \
  |  |   58|     18|    }                               \
  |  |   59|     50|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2902|     32|  CALLBACK(OnDataSegmentCount, num_data_segments_);
  ------------------
  |  |   66|     32|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     32|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     32|  do {                      \
  |  |  |  |  |  |   48|     32|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 32]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     32|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     32|               #member " callback failed")
  ------------------
 2903|       |  // If the DataCount section is not present, then data_count_ will be invalid.
 2904|     32|  ERROR_UNLESS(
  ------------------
  |  |   53|     32|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   47|     32|  do {                      \
  |  |  |  |   48|     74|    if (expr) {             \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:9): [True: 22, False: 10]
  |  |  |  |  |  Branch (48:9): [True: 5, False: 5]
  |  |  |  |  ------------------
  |  |  |  |   49|      5|      ERROR(__VA_ARGS__);   \
  |  |  |  |  ------------------
  |  |  |  |  |  |   41|      5|  do {                       \
  |  |  |  |  |  |   42|      5|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |   43|      5|    return Result::Error;    \
  |  |  |  |  |  |   44|      5|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   50|      5|    }                       \
  |  |  |  |   51|     32|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2905|     27|      data_count_ == kInvalidIndex || data_count_ == num_data_segments_,
 2906|     27|      "data segment count does not equal count in DataCount section");
 2907|    280|  for (Index i = 0; i < num_data_segments_; ++i) {
  ------------------
  |  Branch (2907:21): [True: 276, False: 4]
  ------------------
 2908|    276|    uint32_t flags;
 2909|    276|    CHECK_RESULT(ReadU32Leb128(&flags, "data segment flags"));
  ------------------
  |  |   55|    276|  do {                              \
  |  |   56|    276|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 273]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|    276|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2910|    273|    ERROR_IF(flags != 0 && !options_.features.bulk_memory_enabled(),
  ------------------
  |  |   47|    273|  do {                      \
  |  |   48|    767|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 221, False: 52]
  |  |  |  Branch (48:9): [True: 0, False: 221]
  |  |  ------------------
  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      0|  do {                       \
  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      0|    }                       \
  |  |   51|    273|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2911|    273|             "invalid memory index %d: bulk memory not allowed", flags);
 2912|    273|    ERROR_IF(flags > SegFlagMax, "invalid data segment flags: %#x", flags);
  ------------------
  |  |   47|    273|  do {                      \
  |  |   48|    273|    if (expr) {             \
  |  |  ------------------
  |  |  |  Branch (48:9): [True: 9, False: 264]
  |  |  ------------------
  |  |   49|      9|      ERROR(__VA_ARGS__);   \
  |  |  ------------------
  |  |  |  |   41|      9|  do {                       \
  |  |  |  |   42|      9|    PrintError(__VA_ARGS__); \
  |  |  |  |   43|      9|    return Result::Error;    \
  |  |  |  |   44|      9|  } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|      9|    }                       \
  |  |   51|    273|  } while (0)
  |  |  ------------------
  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2913|    264|    Index memory_index(0);
 2914|    264|    if (flags & SegExplicitIndex) {
  ------------------
  |  Branch (2914:9): [True: 10, False: 254]
  ------------------
 2915|     10|      CHECK_RESULT(ReadIndex(&memory_index, "data segment memory index"));
  ------------------
  |  |   55|     10|  do {                              \
  |  |   56|     10|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 10]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     10|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2916|     10|    }
 2917|    264|    CALLBACK(BeginDataSegment, i, memory_index, flags);
  ------------------
  |  |   66|    264|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    264|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    264|  do {                      \
  |  |  |  |  |  |   48|    264|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 2, False: 262]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      2|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      2|  do {                       \
  |  |  |  |  |  |  |  |   42|      2|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      2|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      2|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|    }                       \
  |  |  |  |  |  |   51|    264|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    264|               #member " callback failed")
  ------------------
 2918|    262|    if (!(flags & SegPassive)) {
  ------------------
  |  Branch (2918:9): [True: 57, False: 205]
  ------------------
 2919|     57|      CALLBACK(BeginDataSegmentInitExpr, i);
  ------------------
  |  |   66|     57|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     57|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     57|  do {                      \
  |  |  |  |  |  |   48|     57|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 57]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|     57|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     57|               #member " callback failed")
  ------------------
 2920|     57|      CHECK_RESULT(ReadInitExpr(i));
  ------------------
  |  |   55|     57|  do {                              \
  |  |   56|     57|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 54]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|     57|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2921|     54|      CALLBACK(EndDataSegmentInitExpr, i);
  ------------------
  |  |   66|     54|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|     54|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|     54|  do {                      \
  |  |  |  |  |  |   48|     54|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 5, False: 49]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      5|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      5|  do {                       \
  |  |  |  |  |  |  |  |   42|      5|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      5|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      5|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|    }                       \
  |  |  |  |  |  |   51|     54|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|     54|               #member " callback failed")
  ------------------
 2922|     54|    }
 2923|       |
 2924|    254|    Address data_size;
 2925|    254|    const void* data;
 2926|    254|    CHECK_RESULT(ReadBytes(&data, &data_size, "data segment data"));
  ------------------
  |  |   55|    254|  do {                              \
  |  |   56|    254|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 253]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    254|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2927|    253|    CALLBACK(OnDataSegmentData, i, data, data_size);
  ------------------
  |  |   66|    253|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    253|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    253|  do {                      \
  |  |  |  |  |  |   48|    253|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 253]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    253|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    253|               #member " callback failed")
  ------------------
 2928|    253|    CALLBACK(EndDataSegment, i);
  ------------------
  |  |   66|    253|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    253|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    253|  do {                      \
  |  |  |  |  |  |   48|    253|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 253]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    253|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    253|               #member " callback failed")
  ------------------
 2929|    253|  }
 2930|      4|  CALLBACK0(EndDataSection);
  ------------------
  |  |   63|      4|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|      4|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      4|  do {                      \
  |  |  |  |  |  |   48|      4|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 4]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      4|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2931|      4|  return Result::Ok;
 2932|      4|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader14ReadTagSectionEm:
 2414|      2|Result BinaryReader::ReadTagSection(Offset section_size) {
 2415|      2|  CALLBACK(BeginTagSection, section_size);
  ------------------
  |  |   66|      2|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      2|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      2|  do {                      \
  |  |  |  |  |  |   48|      2|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 2]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      2|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      2|               #member " callback failed")
  ------------------
 2416|      2|  Index num_tags;
 2417|      2|  CHECK_RESULT(ReadCount(&num_tags, "tag count"));
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 0]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2418|      0|  CALLBACK(OnTagCount, num_tags);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 2419|       |
 2420|      0|  for (Index i = 0; i < num_tags; ++i) {
  ------------------
  |  Branch (2420:21): [True: 0, False: 0]
  ------------------
 2421|      0|    Index tag_index = num_tag_imports_ + i;
 2422|      0|    Index sig_index;
 2423|      0|    CHECK_RESULT(ReadTagType(&sig_index));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2424|      0|    CALLBACK(OnTagType, tag_index, sig_index);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 2425|      0|  }
 2426|       |
 2427|      0|  CALLBACK(EndTagSection);
  ------------------
  |  |   66|      0|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|      0|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|      0|  do {                      \
  |  |  |  |  |  |   48|      0|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|      0|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|      0|               #member " callback failed")
  ------------------
 2428|      0|  return Result::Ok;
 2429|      0|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader20ReadDataCountSectionEm:
 2934|    110|Result BinaryReader::ReadDataCountSection(Offset section_size) {
 2935|    110|  CALLBACK(BeginDataCountSection, section_size);
  ------------------
  |  |   66|    110|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    110|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    110|  do {                      \
  |  |  |  |  |  |   48|    110|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 110]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    110|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    110|               #member " callback failed")
  ------------------
 2936|    110|  Index data_count;
 2937|    110|  CHECK_RESULT(ReadIndex(&data_count, "data count"));
  ------------------
  |  |   55|    110|  do {                              \
  |  |   56|    110|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 109]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    110|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2938|    109|  CALLBACK(OnDataCount, data_count);
  ------------------
  |  |   66|    109|  ERROR_UNLESS(Succeeded(delegate_->member(__VA_ARGS__)), \
  |  |  ------------------
  |  |  |  |   53|    109|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    109|  do {                      \
  |  |  |  |  |  |   48|    109|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 109]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    109|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   67|    109|               #member " callback failed")
  ------------------
 2939|    109|  CALLBACK0(EndDataCountSection);
  ------------------
  |  |   63|    109|  ERROR_UNLESS(Succeeded(delegate_->member()), #member " callback failed")
  |  |  ------------------
  |  |  |  |   53|    109|#define ERROR_UNLESS(expr, ...) ERROR_IF(!(expr), __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   47|    109|  do {                      \
  |  |  |  |  |  |   48|    109|    if (expr) {             \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (48:9): [True: 0, False: 109]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   49|      0|      ERROR(__VA_ARGS__);   \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   41|      0|  do {                       \
  |  |  |  |  |  |  |  |   42|      0|    PrintError(__VA_ARGS__); \
  |  |  |  |  |  |  |  |   43|      0|    return Result::Error;    \
  |  |  |  |  |  |  |  |   44|      0|  } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (44:12): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|    }                       \
  |  |  |  |  |  |   51|    109|  } while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (51:12): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2940|    109|  data_count_ = data_count;
 2941|    109|  return Result::Ok;
 2942|    109|}
binary-reader.cc:_ZN4wabt12_GLOBAL__N_112BinaryReader17ValueRestoreGuardImXadL_ZNS1_9read_end_EEEED2Ev:
   91|  1.10M|    ~ValueRestoreGuard() { this_->*member = previous_value_; }

_ZN4wabt15GetSectionOrderENS_13BinarySectionE:
   21|  7.74k|BinarySectionOrder GetSectionOrder(BinarySection sec) {
   22|  7.74k|  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)
  ------------------
  |  |   47|      0|  V(Custom, custom, 0)                 \
  |  |  ------------------
  |  |  |  |   26|      0|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|      0|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 0, False: 7.74k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|      0|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   48|    887|  V(Type, type, 1)                     \
  |  |  ------------------
  |  |  |  |   26|    887|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    887|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 887, False: 6.85k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    887|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   49|    887|  V(Import, import, 2)                 \
  |  |  ------------------
  |  |  |  |   26|    706|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    706|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 706, False: 7.03k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    706|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|  1.62k|  V(Function, function, 3)             \
  |  |  ------------------
  |  |  |  |   26|  1.62k|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|  1.62k|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 1.62k, False: 6.11k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|  1.62k|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   51|  1.62k|  V(Table, table, 4)                   \
  |  |  ------------------
  |  |  |  |   26|    637|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    637|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 637, False: 7.10k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    637|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   52|    849|  V(Memory, memory, 5)                 \
  |  |  ------------------
  |  |  |  |   26|    849|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    849|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 849, False: 6.89k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    849|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   53|    849|  V(Tag, tag, 13)                      \
  |  |  ------------------
  |  |  |  |   26|     11|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|     11|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 11, False: 7.72k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|     11|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   54|    682|  V(Global, global, 6)                 \
  |  |  ------------------
  |  |  |  |   26|    682|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    682|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 682, False: 7.05k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    682|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   55|    899|  V(Export, export, 7)                 \
  |  |  ------------------
  |  |  |  |   26|    899|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    899|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 899, False: 6.84k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    899|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   56|    899|  V(Start, start, 8)                   \
  |  |  ------------------
  |  |  |  |   26|    109|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    109|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 109, False: 7.63k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    109|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   57|    322|  V(Elem, elem, 9)                     \
  |  |  ------------------
  |  |  |  |   26|    322|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    322|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 322, False: 7.41k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    322|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   58|    322|  V(DataCount, data_count, 12)         \
  |  |  ------------------
  |  |  |  |   26|    210|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    210|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 210, False: 7.53k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    210|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   59|    758|  V(Code, code, 10)                    \
  |  |  ------------------
  |  |  |  |   26|    758|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|    758|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 758, False: 6.98k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|    758|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   60|    758|  V(Data, data, 11)
  |  |  ------------------
  |  |  |  |   26|     47|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   24|     47|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (24:3): [True: 47, False: 7.69k]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   25|     47|    return BinarySectionOrder::Name;
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   27|      0|#undef V
   28|      0|    default:
  ------------------
  |  Branch (28:5): [True: 0, False: 7.74k]
  ------------------
   29|      0|      WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
   30|  7.74k|  }
   31|  7.74k|}
_ZN4wabt14GetSectionNameENS_13BinarySectionE:
   33|    253|const char* GetSectionName(BinarySection sec) {
   34|    253|  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)
  ------------------
  |  |   47|      0|  V(Custom, custom, 0)                 \
  |  |  ------------------
  |  |  |  |   38|      0|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      0|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 0, False: 253]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      0|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   48|    131|  V(Type, type, 1)                     \
  |  |  ------------------
  |  |  |  |   38|    131|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|    131|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 131, False: 122]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|    131|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   49|    131|  V(Import, import, 2)                 \
  |  |  ------------------
  |  |  |  |   38|     38|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|     38|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 38, False: 215]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|     38|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   50|     38|  V(Function, function, 3)             \
  |  |  ------------------
  |  |  |  |   38|     21|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|     21|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 21, False: 232]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|     21|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   51|     21|  V(Table, table, 4)                   \
  |  |  ------------------
  |  |  |  |   38|     17|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|     17|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 17, False: 236]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|     17|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   52|     17|  V(Memory, memory, 5)                 \
  |  |  ------------------
  |  |  |  |   38|      4|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      4|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 4, False: 249]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      4|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   53|      7|  V(Tag, tag, 13)                      \
  |  |  ------------------
  |  |  |  |   38|      7|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      7|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 7, False: 246]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      7|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   54|      8|  V(Global, global, 6)                 \
  |  |  ------------------
  |  |  |  |   38|      8|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      8|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 8, False: 245]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      8|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   55|      8|  V(Export, export, 7)                 \
  |  |  ------------------
  |  |  |  |   38|      8|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      8|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 8, False: 245]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      8|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   56|      8|  V(Start, start, 8)                   \
  |  |  ------------------
  |  |  |  |   38|      2|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      2|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 2, False: 251]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      2|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   57|      6|  V(Elem, elem, 9)                     \
  |  |  ------------------
  |  |  |  |   38|      6|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      6|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 6, False: 247]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      6|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   58|      6|  V(DataCount, data_count, 12)         \
  |  |  ------------------
  |  |  |  |   38|      1|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      1|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 1, False: 252]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      1|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   59|      3|  V(Code, code, 10)                    \
  |  |  ------------------
  |  |  |  |   38|      3|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      3|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 3, False: 250]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      3|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   60|      7|  V(Data, data, 11)
  |  |  ------------------
  |  |  |  |   38|      7|    WABT_FOREACH_BINARY_SECTION(V)
  |  |  |  |  ------------------
  |  |  |  |  |  |   36|      7|  case BinarySection::Name: \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (36:3): [True: 7, False: 246]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      7|    return #Name;
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   39|      0|#undef V
   40|      0|    default:
  ------------------
  |  Branch (40:5): [True: 0, False: 253]
  ------------------
   41|      0|      WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
   42|    253|  }
   43|    253|}

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

_ZN4wabt6interp16ReadBinaryInterpENSt3__117basic_string_viewIcNS1_11char_traitsIcEEEEPKvmRKNS_17ReadBinaryOptionsEPNS1_6vectorINS_5ErrorENS1_9allocatorISC_EEEEPNS0_10ModuleDescE:
 1740|  1.35k|                        ModuleDesc* out_module) {
 1741|  1.35k|  BinaryReaderInterp reader(out_module, filename, errors, options.features);
 1742|  1.35k|  return ReadBinary(data, size, &reader, options);
 1743|  1.35k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterpC2EPNS0_10ModuleDescENSt3__117basic_string_viewIcNS5_11char_traitsIcEEEEPNS5_6vectorINS_5ErrorENS5_9allocatorISB_EEEERKNS_8FeaturesE:
  383|  1.35k|    : errors_(errors),
  384|  1.35k|      module_(*module),
  385|  1.35k|      istream_(module->istream),
  386|  1.35k|      validator_(errors, ValidateOptions(features)),
  387|  1.35k|      filename_(filename) {}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp7OnErrorERKNS_5ErrorE:
  487|   922k|bool BinaryReaderInterp::OnError(const Error& error) {
  488|   922k|  errors_->push_back(error);
  489|   922k|  return true;
  490|   922k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp9EndModuleEv:
  492|      9|Result BinaryReaderInterp::EndModule() {
  493|      9|  CHECK_RESULT(validator_.EndModule());
  ------------------
  |  |   55|      9|  do {                              \
  |  |   56|      9|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 9]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      9|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  494|      9|  return Result::Ok;
  495|      9|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp11OnTypeCountEj:
  497|    896|Result BinaryReaderInterp::OnTypeCount(Index count) {
  498|    896|  module_.func_types.reserve(count);
  499|    896|  return Result::Ok;
  500|    896|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp10OnFuncTypeEjjPNS_4TypeEjS4_:
  506|  4.52k|                                      Type* result_types) {
  507|  4.52k|  CHECK_RESULT(validator_.OnFuncType(GetLocation(), param_count, param_types,
  ------------------
  |  |   55|  4.52k|  do {                              \
  |  |   56|  4.52k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4.52k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  4.52k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  508|  4.52k|                                     result_count, result_types, index));
  509|  4.52k|  module_.func_types.push_back(FuncType(ToInterp(param_count, param_types),
  510|  4.52k|                                        ToInterp(result_count, result_types)));
  511|  4.52k|  return Result::Ok;
  512|  4.52k|}
binary-reader-interp.cc:_ZNK4wabt6interp12_GLOBAL__N_118BinaryReaderInterp11GetLocationEv:
  353|   992k|Location BinaryReaderInterp::GetLocation() const {
  354|   992k|  Location loc;
  355|   992k|  loc.filename = filename_;
  356|   992k|  loc.offset = state->offset;
  357|   992k|  return loc;
  358|   992k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_18ToInterpEjPNS_4TypeE:
   33|  9.05k|ValueTypes ToInterp(Index count, Type* types) {
   34|  9.05k|  return ValueTypes(&types[0], &types[count]);
   35|  9.05k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp12OnImportFuncEjNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEES7_jj:
  518|  2.13k|                                        Index sig_index) {
  519|  2.13k|  CHECK_RESULT(
  ------------------
  |  |   55|  2.13k|  do {                              \
  |  |   56|  2.13k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 14, False: 2.11k]
  |  |  ------------------
  |  |   57|     14|      return ::wabt::Result::Error; \
  |  |   58|     14|    }                               \
  |  |   59|  2.13k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  520|  2.13k|      validator_.OnFunction(GetLocation(), Var(sig_index, GetLocation())));
  521|  2.11k|  FuncType& func_type = module_.func_types[sig_index];
  522|  2.11k|  module_.imports.push_back(ImportDesc{ImportType(
  523|  2.11k|      std::string(module_name), std::string(field_name), func_type.Clone())});
  524|  2.11k|  func_types_.push_back(func_type);
  525|  2.11k|  return Result::Ok;
  526|  2.13k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13OnImportTableEjNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEES7_jNS_4TypeEPKNS_6LimitsE:
  533|    362|                                         const Limits* elem_limits) {
  534|    362|  CHECK_RESULT(validator_.OnTable(GetLocation(), elem_type, *elem_limits));
  ------------------
  |  |   55|    362|  do {                              \
  |  |   56|    362|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 361]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    362|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  535|    361|  TableType table_type{elem_type, *elem_limits};
  536|    361|  module_.imports.push_back(ImportDesc{ImportType(
  537|    361|      std::string(module_name), std::string(field_name), table_type.Clone())});
  538|    361|  table_types_.push_back(table_type);
  539|    361|  return Result::Ok;
  540|    362|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnImportMemoryEjNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEES7_jPKNS_6LimitsEj:
  547|    113|                                          uint32_t page_size) {
  548|    113|  CHECK_RESULT(validator_.OnMemory(GetLocation(), *page_limits, page_size));
  ------------------
  |  |   55|    113|  do {                              \
  |  |   56|    113|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 113]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    113|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  549|    113|  MemoryType memory_type{*page_limits, page_size};
  550|    113|  module_.imports.push_back(ImportDesc{ImportType(
  551|    113|      std::string(module_name), std::string(field_name), memory_type.Clone())});
  552|    113|  memory_types_.push_back(memory_type);
  553|    113|  return Result::Ok;
  554|    113|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnImportGlobalEjNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEES7_jNS_4TypeEb:
  561|    401|                                          bool mutable_) {
  562|    401|  CHECK_RESULT(validator_.OnGlobalImport(GetLocation(), type, mutable_));
  ------------------
  |  |   55|    401|  do {                              \
  |  |   56|    401|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 401]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    401|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  563|    401|  GlobalType global_type{type, ToMutability(mutable_)};
  564|    401|  module_.imports.push_back(ImportDesc{ImportType(
  565|    401|      std::string(module_name), std::string(field_name), global_type.Clone())});
  566|    401|  global_types_.push_back(global_type);
  567|    401|  return Result::Ok;
  568|    401|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_112ToMutabilityEb:
   37|  4.30k|Mutability ToMutability(bool mut) {
   38|  4.30k|  return mut ? Mutability::Var : Mutability::Const;
  ------------------
  |  Branch (38:10): [True: 3.92k, False: 380]
  ------------------
   39|  4.30k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnFunctionCountEj:
  584|    815|Result BinaryReaderInterp::OnFunctionCount(Index count) {
  585|    815|  module_.funcs.reserve(count);
  586|    815|  return Result::Ok;
  587|    815|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp10OnFunctionEjj:
  589|  11.6k|Result BinaryReaderInterp::OnFunction(Index index, Index sig_index) {
  590|  11.6k|  CHECK_RESULT(
  ------------------
  |  |   55|  11.6k|  do {                              \
  |  |   56|  11.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 52, False: 11.6k]
  |  |  ------------------
  |  |   57|     52|      return ::wabt::Result::Error; \
  |  |   58|     52|    }                               \
  |  |   59|  11.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  591|  11.6k|      validator_.OnFunction(GetLocation(), Var(sig_index, GetLocation())));
  592|  11.6k|  FuncType& func_type = module_.func_types[sig_index];
  593|  11.6k|  module_.funcs.push_back(FuncDesc{func_type, {}, Istream::kInvalidOffset, {}});
  594|  11.6k|  func_types_.push_back(func_type);
  595|  11.6k|  return Result::Ok;
  596|  11.6k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp12OnTableCountEj:
  598|    318|Result BinaryReaderInterp::OnTableCount(Index count) {
  599|    318|  module_.tables.reserve(count);
  600|    318|  return Result::Ok;
  601|    318|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp7OnTableEjNS_4TypeEPKNS_6LimitsE:
  605|  1.08k|                                   const Limits* elem_limits) {
  606|  1.08k|  CHECK_RESULT(validator_.OnTable(GetLocation(), elem_type, *elem_limits));
  ------------------
  |  |   55|  1.08k|  do {                              \
  |  |   56|  1.08k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 1.08k]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|  1.08k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  607|  1.08k|  TableType table_type{elem_type, *elem_limits};
  608|  1.08k|  module_.tables.push_back(TableDesc{table_type});
  609|  1.08k|  table_types_.push_back(table_type);
  610|  1.08k|  return Result::Ok;
  611|  1.08k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13OnMemoryCountEj:
  613|    425|Result BinaryReaderInterp::OnMemoryCount(Index count) {
  614|    425|  module_.memories.reserve(count);
  615|    425|  return Result::Ok;
  616|    425|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp8OnMemoryEjPKNS_6LimitsEj:
  620|    540|                                    uint32_t page_size) {
  621|    540|  CHECK_RESULT(validator_.OnMemory(GetLocation(), *limits, page_size));
  ------------------
  |  |   55|    540|  do {                              \
  |  |   56|    540|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 534]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|    540|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  622|    534|  MemoryType memory_type{*limits, page_size};
  623|    534|  module_.memories.push_back(MemoryDesc{memory_type});
  624|    534|  memory_types_.push_back(memory_type);
  625|    534|  return Result::Ok;
  626|    540|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13OnGlobalCountEj:
  628|    362|Result BinaryReaderInterp::OnGlobalCount(Index count) {
  629|    362|  module_.globals.reserve(count);
  630|    362|  return Result::Ok;
  631|    362|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp11BeginGlobalEjNS_4TypeEb:
  633|  3.90k|Result BinaryReaderInterp::BeginGlobal(Index index, Type type, bool mutable_) {
  634|  3.90k|  CHECK_RESULT(validator_.OnGlobal(GetLocation(), type, mutable_));
  ------------------
  |  |   55|  3.90k|  do {                              \
  |  |   56|  3.90k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 3.90k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  3.90k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  635|  3.90k|  GlobalType global_type{type, ToMutability(mutable_)};
  636|  3.90k|  FuncDesc init_func{FuncType{{}, {type}}, {}, Istream::kInvalidOffset, {}};
  637|  3.90k|  module_.globals.push_back(GlobalDesc{global_type, init_func});
  638|  3.90k|  global_types_.push_back(global_type);
  639|  3.90k|  return Result::Ok;
  640|  3.90k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp19BeginGlobalInitExprEj:
  642|  3.90k|Result BinaryReaderInterp::BeginGlobalInitExpr(Index index) {
  643|  3.90k|  GlobalDesc& global = module_.globals.back();
  644|  3.90k|  return BeginInitExpr(&global.init_func);
  645|  3.90k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13BeginInitExprEPNS0_8FuncDescE:
  655|  16.4k|Result BinaryReaderInterp::BeginInitExpr(FuncDesc* func) {
  656|  16.4k|  label_stack_.clear();
  657|  16.4k|  func_ = func;
  658|  16.4k|  func_->code_offset = istream_.end();
  659|  16.4k|  Type type = func->type.results[0];
  660|  16.4k|  CHECK_RESULT(validator_.BeginInitExpr(GetLocation(), type));
  ------------------
  |  |   55|  16.4k|  do {                              \
  |  |   56|  16.4k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 16.4k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  16.4k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  661|       |  // Push implicit init func label (equivalent to return).
  662|  16.4k|  PushLabel(LabelKind::Try, Istream::kInvalidOffset, Istream::kInvalidOffset);
  663|  16.4k|  return Result::Ok;
  664|  16.4k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp9PushLabelENS1_9LabelKindEjjj:
  818|  46.1k|                                   u32 handler_desc_index) {
  819|  46.1k|  label_stack_.push_back(Label{kind, offset, fixup_offset, handler_desc_index});
  820|  46.1k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp17EndGlobalInitExprEj:
  666|  3.83k|Result BinaryReaderInterp::EndGlobalInitExpr(Index index) {
  667|  3.83k|  return EndInitExpr();
  668|  3.83k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp11EndInitExprEv:
  647|  16.3k|Result BinaryReaderInterp::EndInitExpr() {
  648|  16.3k|  FixupTopLabel();
  649|  16.3k|  CHECK_RESULT(validator_.EndInitExpr());
  ------------------
  |  |   55|  16.3k|  do {                              \
  |  |   56|  16.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7, False: 16.3k]
  |  |  ------------------
  |  |   57|      7|      return ::wabt::Result::Error; \
  |  |   58|      7|    }                               \
  |  |   59|  16.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  650|  16.3k|  istream_.Emit(Opcode::Return);
  651|  16.3k|  PopLabel();
  652|  16.3k|  return Result::Ok;
  653|  16.3k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13FixupTopLabelEv:
  474|  39.1k|void BinaryReaderInterp::FixupTopLabel() {
  475|  39.1k|  depth_fixups_.Resolve(istream_, label_stack_.size() - 1);
  476|  39.1k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_18FixupMap7ResolveERNS0_7IstreamEj:
  368|  42.3k|void FixupMap::Resolve(Istream& istream, Index index) {
  369|  42.3k|  auto iter = map.find(index);
  370|  42.3k|  if (iter == map.end()) {
  ------------------
  |  Branch (370:7): [True: 41.3k, False: 1.02k]
  ------------------
  371|  41.3k|    return;
  372|  41.3k|  }
  373|  1.64k|  for (Offset offset : iter->second) {
  ------------------
  |  Branch (373:22): [True: 1.64k, False: 1.02k]
  ------------------
  374|  1.64k|    istream.ResolveFixupU32(offset);
  375|  1.64k|  }
  376|  1.02k|  map.erase(iter);
  377|  1.02k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp8PopLabelEv:
  822|  39.1k|void BinaryReaderInterp::PopLabel() {
  823|  39.1k|  label_stack_.pop_back();
  824|  39.1k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp8OnExportEjNS_12ExternalKindEjNSt3__117basic_string_viewIcNS4_11char_traitsIcEEEE:
  687|  5.33k|                                    std::string_view name) {
  688|  5.33k|  CHECK_RESULT(validator_.OnExport(GetLocation(), kind,
  ------------------
  |  |   55|  5.33k|  do {                              \
  |  |   56|  5.33k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 68, False: 5.26k]
  |  |  ------------------
  |  |   57|     68|      return ::wabt::Result::Error; \
  |  |   58|     68|    }                               \
  |  |   59|  5.33k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  689|  5.33k|                                   Var(item_index, GetLocation()), name));
  690|       |
  691|  5.26k|  std::unique_ptr<ExternType> type;
  692|  5.26k|  switch (kind) {
  ------------------
  |  Branch (692:11): [True: 0, False: 5.26k]
  ------------------
  693|  1.06k|    case ExternalKind::Func:   type = func_types_[item_index].Clone(); break;
  ------------------
  |  Branch (693:5): [True: 1.06k, False: 4.20k]
  ------------------
  694|  3.00k|    case ExternalKind::Table:  type = table_types_[item_index].Clone(); break;
  ------------------
  |  Branch (694:5): [True: 3.00k, False: 2.26k]
  ------------------
  695|     66|    case ExternalKind::Memory: type = memory_types_[item_index].Clone(); break;
  ------------------
  |  Branch (695:5): [True: 66, False: 5.20k]
  ------------------
  696|  1.13k|    case ExternalKind::Global: type = global_types_[item_index].Clone(); break;
  ------------------
  |  Branch (696:5): [True: 1.13k, False: 4.13k]
  ------------------
  697|      0|    case ExternalKind::Tag:    type = tag_types_[item_index].Clone(); break;
  ------------------
  |  Branch (697:5): [True: 0, False: 5.26k]
  ------------------
  698|  5.26k|  }
  699|  5.26k|  module_.exports.push_back(
  700|  5.26k|      ExportDesc{ExportType(std::string(name), std::move(type)), item_index});
  701|  5.26k|  return Result::Ok;
  702|  5.26k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnStartFunctionEj:
  704|     65|Result BinaryReaderInterp::OnStartFunction(Index func_index) {
  705|     65|  CHECK_RESULT(
  ------------------
  |  |   55|     65|  do {                              \
  |  |   56|     65|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 30, False: 35]
  |  |  ------------------
  |  |   57|     30|      return ::wabt::Result::Error; \
  |  |   58|     30|    }                               \
  |  |   59|     65|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  706|     65|      validator_.OnStart(GetLocation(), Var(func_index, GetLocation())));
  707|     35|  module_.starts.push_back(StartDesc{func_index});
  708|     35|  return Result::Ok;
  709|     65|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp17BeginFunctionBodyEjm:
  826|  3.15k|Result BinaryReaderInterp::BeginFunctionBody(Index index, Offset size) {
  827|  3.15k|  Index defined_index = index - num_func_imports();
  828|  3.15k|  func_ = &module_.funcs[defined_index];
  829|  3.15k|  func_->code_offset = istream_.end();
  830|       |
  831|  3.15k|  depth_fixups_.Clear();
  832|  3.15k|  label_stack_.clear();
  833|       |
  834|       |  // The fixups map is keyed by actual function index (not defined_index)
  835|       |  // (function imports don't have code and won't appear in the fixups map,
  836|       |  // but they still use function indexes)
  837|  3.15k|  func_fixups_.Resolve(istream_, index);
  838|       |
  839|  3.15k|  CHECK_RESULT(validator_.BeginFunctionBody(GetLocation(), index));
  ------------------
  |  |   55|  3.15k|  do {                              \
  |  |   56|  3.15k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 3.15k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  3.15k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  840|       |
  841|       |  // Push implicit func label (equivalent to return).
  842|       |  // With exception handling it acts as a catch-less try block, which is
  843|       |  // needed to support delegating to the caller of a function using the
  844|       |  // try-delegate instruction.
  845|  3.15k|  PushLabel(LabelKind::Try, Istream::kInvalidOffset, Istream::kInvalidOffset,
  846|  3.15k|            func_->handlers.size());
  847|  3.15k|  return Result::Ok;
  848|  3.15k|}
binary-reader-interp.cc:_ZNK4wabt6interp12_GLOBAL__N_118BinaryReaderInterp16num_func_importsEv:
  903|  5.48k|Index BinaryReaderInterp::num_func_imports() const {
  904|  5.48k|  return func_types_.size() - module_.funcs.size();
  905|  5.48k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_18FixupMap5ClearEv:
  360|  3.15k|void FixupMap::Clear() {
  361|  3.15k|  map.clear();
  362|  3.15k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp16OnLocalDeclCountEj:
  862|  3.15k|Result BinaryReaderInterp::OnLocalDeclCount(Index count) {
  863|  3.15k|  local_decl_count_ = count;
  864|  3.15k|  local_count_ = 0;
  865|  3.15k|  return Result::Ok;
  866|  3.15k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp11OnLocalDeclEjjNS_4TypeE:
  870|  13.2k|                                       Type type) {
  871|  13.2k|  CHECK_RESULT(validator_.OnLocalDecl(GetLocation(), count, type));
  ------------------
  |  |   55|  13.2k|  do {                              \
  |  |   56|  13.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 13.2k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  13.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  872|       |
  873|  13.2k|  local_count_ += count;
  874|  13.2k|  func_->locals.push_back(LocalDesc{type, count, local_count_});
  875|  13.2k|  return Result::Ok;
  876|  13.2k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13EndLocalDeclsEv:
  878|  3.13k|Result BinaryReaderInterp::EndLocalDecls() {
  879|  3.13k|  if (local_count_ != 0) {
  ------------------
  |  Branch (879:7): [True: 945, False: 2.19k]
  ------------------
  880|    945|    istream_.Emit(Opcode::InterpAlloca, local_count_);
  881|  70.4k|    for (Index i = 0; i < local_count_; i++) {
  ------------------
  |  Branch (881:23): [True: 69.5k, False: 945]
  ------------------
  882|  69.5k|      if (func_->GetLocalType(func_->type.params.size() + i).IsRef()) {
  ------------------
  |  Branch (882:11): [True: 23.5k, False: 45.9k]
  ------------------
  883|  23.5k|        istream_.Emit(Opcode::InterpMarkRef, local_count_ - i);
  884|  23.5k|      }
  885|  69.5k|    }
  886|    945|  }
  887|       |  // Continuation of the implicit func label, used for exception handling. (See
  888|       |  // BeginFunctionBody.)
  889|       |  // We need the local count for this, which is only available after processing
  890|       |  // all local decls.
  891|       |  // NOTE: we don't count the parameters, as they're not part of the frame.
  892|  3.13k|  func_->handlers.push_back(HandlerDesc{HandlerKind::Catch,
  893|  3.13k|                                        istream_.end(),
  894|  3.13k|                                        Istream::kInvalidOffset,
  895|  3.13k|                                        {},
  896|  3.13k|                                        {Istream::kInvalidOffset},
  897|  3.13k|                                        static_cast<u32>(local_count_),
  898|  3.13k|                                        0});
  899|       |
  900|  3.13k|  return Result::Ok;
  901|  3.13k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp8OnOpcodeENS_6OpcodeE:
  907|   800k|Result BinaryReaderInterp::OnOpcode(Opcode opcode) {
  908|   800k|  if (func_ == nullptr || label_stack_.empty()) {
  ------------------
  |  Branch (908:7): [True: 0, False: 800k]
  |  Branch (908:27): [True: 0, False: 800k]
  ------------------
  909|      0|    PrintError("Unexpected instruction after end of function");
  910|      0|    return Result::Error;
  911|      0|  }
  912|   800k|  return Result::Ok;
  913|   800k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_112GetAlignmentEm:
  933|  25.4k|uint32_t GetAlignment(Address alignment_log2) {
  934|  25.4k|  return alignment_log2 < 32 ? 1 << alignment_log2 : ~0u;
  ------------------
  |  Branch (934:10): [True: 25.4k, False: 0]
  ------------------
  935|  25.4k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnAtomicRmwExprENS_6OpcodeEjmm:
 1014|    128|                                           Address offset) {
 1015|    128|  CHECK_RESULT(validator_.OnAtomicRmw(GetLocation(), opcode,
  ------------------
  |  |   55|    128|  do {                              \
  |  |   56|    128|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 128]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    128|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1016|    128|                                      Var(memidx, GetLocation()),
 1017|    128|                                      GetAlignment(align_log2), offset));
 1018|    128|  istream_.Emit(opcode, memidx, offset);
 1019|    128|  return Result::Ok;
 1020|    128|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp17OnAtomicFenceExprEj:
 1459|    257|Result BinaryReaderInterp::OnAtomicFenceExpr(uint32_t consistency_model) {
 1460|    257|  CHECK_RESULT(validator_.OnAtomicFence(GetLocation(), consistency_model));
  ------------------
  |  |   55|    257|  do {                              \
  |  |   56|    257|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 257]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    257|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1461|    257|  istream_.Emit(Opcode::AtomicFence, consistency_model);
 1462|    257|  return Result::Ok;
 1463|    257|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp18OnAtomicNotifyExprENS_6OpcodeEjmm:
 1468|      1|                                              Address offset) {
 1469|      1|  CHECK_RESULT(validator_.OnAtomicNotify(GetLocation(), opcode,
  ------------------
  |  |   55|      1|  do {                              \
  |  |   56|      1|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 0]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|      1|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1470|      1|                                         Var(memidx, GetLocation()),
 1471|      1|                                         GetAlignment(align_log2), offset));
 1472|      0|  istream_.Emit(opcode, memidx, offset);
 1473|      0|  return Result::Ok;
 1474|      1|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp12OnBinaryExprENS_6OpcodeE:
 1033|  39.6k|Result BinaryReaderInterp::OnBinaryExpr(Opcode opcode) {
 1034|  39.6k|  CHECK_RESULT(validator_.OnBinary(GetLocation(), opcode));
  ------------------
  |  |   55|  39.6k|  do {                              \
  |  |   56|  39.6k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 50, False: 39.6k]
  |  |  ------------------
  |  |   57|     50|      return ::wabt::Result::Error; \
  |  |   58|     50|    }                               \
  |  |   59|  39.6k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1035|  39.6k|  istream_.Emit(opcode);
 1036|  39.6k|  return Result::Ok;
 1037|  39.6k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp11OnBlockExprENS_4TypeE:
 1039|  21.8k|Result BinaryReaderInterp::OnBlockExpr(Type sig_type) {
 1040|  21.8k|  CHECK_RESULT(validator_.OnBlock(GetLocation(), sig_type));
  ------------------
  |  |   55|  21.8k|  do {                              \
  |  |   56|  21.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 19, False: 21.7k]
  |  |  ------------------
  |  |   57|     19|      return ::wabt::Result::Error; \
  |  |   58|     19|    }                               \
  |  |   59|  21.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1041|  21.7k|  PushLabel();
 1042|  21.7k|  return Result::Ok;
 1043|  21.8k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp8OnBrExprEj:
 1099|  2.57k|Result BinaryReaderInterp::OnBrExpr(Index depth) {
 1100|  2.57k|  Index drop_count, keep_count, catch_drop_count;
 1101|  2.57k|  CHECK_RESULT(GetBrDropKeepCount(depth, &drop_count, &keep_count));
  ------------------
  |  |   55|  2.57k|  do {                              \
  |  |   56|  2.57k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 2.56k]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|  2.57k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1102|  2.56k|  CHECK_RESULT(validator_.GetCatchCount(depth, &catch_drop_count));
  ------------------
  |  |   55|  2.56k|  do {                              \
  |  |   56|  2.56k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.56k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.56k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1103|  2.56k|  CHECK_RESULT(validator_.OnBr(GetLocation(), Var(depth, GetLocation())));
  ------------------
  |  |   55|  2.56k|  do {                              \
  |  |   56|  2.56k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.56k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.56k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1104|  2.56k|  EmitBr(depth, drop_count, keep_count, catch_drop_count);
 1105|  2.56k|  return Result::Ok;
 1106|  2.56k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp18GetBrDropKeepCountEjPjS3_:
  429|  13.7k|                                              Index* out_keep_count) {
  430|  13.7k|  SharedValidator::Label* label;
  431|  13.7k|  CHECK_RESULT(validator_.GetLabel(depth, &label));
  ------------------
  |  |   55|  13.7k|  do {                              \
  |  |   56|  13.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 13.7k]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|  13.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  432|  13.7k|  Index keep_count = label->br_types().size();
  433|  13.7k|  CHECK_RESULT(
  ------------------
  |  |   55|  13.7k|  do {                              \
  |  |   56|  13.7k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 13.7k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  13.7k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  434|  13.7k|      GetDropCount(keep_count, label->type_stack_limit, out_drop_count));
  435|  13.7k|  *out_keep_count = keep_count;
  436|  13.7k|  return Result::Ok;
  437|  13.7k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp12GetDropCountEjmPj:
  416|  13.8k|                                        Index* out_drop_count) {
  417|  13.8k|  assert(validator_.type_stack_size() >= type_stack_limit);
  418|  13.8k|  Index type_stack_count = validator_.type_stack_size() - type_stack_limit;
  419|       |  // The keep_count may be larger than the type_stack_count if the typechecker
  420|       |  // is currently unreachable. In that case, it doesn't matter what value we
  421|       |  // drop, but 0 is a reasonable choice.
  422|  13.8k|  *out_drop_count =
  423|  13.8k|      type_stack_count >= keep_count ? type_stack_count - keep_count : 0;
  ------------------
  |  Branch (423:7): [True: 12.3k, False: 1.50k]
  ------------------
  424|  13.8k|  return Result::Ok;
  425|  13.8k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp6EmitBrEjjjj:
  461|  8.58k|                                Index catch_drop_count) {
  462|  8.58k|  istream_.EmitDropKeep(drop_count, keep_count);
  463|  8.58k|  istream_.EmitCatchDrop(catch_drop_count);
  464|  8.58k|  Istream::Offset offset = GetLabel(depth)->offset;
  465|  8.58k|  istream_.Emit(Opcode::Br);
  466|  8.58k|  if (offset == Istream::kInvalidOffset) {
  ------------------
  |  Branch (466:7): [True: 6.44k, False: 2.13k]
  ------------------
  467|       |    // depth_fixups_ stores the depth counting up from zero, where zero is the
  468|       |    // top-level function scope.
  469|  6.44k|    depth_fixups_.Append(label_stack_.size() - 1 - depth, istream_.end());
  470|  6.44k|  }
  471|  8.58k|  istream_.Emit(offset);
  472|  8.58k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp8GetLabelEj:
  389|  9.76k|Label* BinaryReaderInterp::GetLabel(Index depth) {
  390|  9.76k|  assert(depth < label_stack_.size());
  391|  9.76k|  return &label_stack_[label_stack_.size() - depth - 1];
  392|  9.76k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_18FixupMap6AppendEjj:
  364|  6.45k|void FixupMap::Append(Index index, Offset offset) {
  365|  6.45k|  map[index].push_back(offset);
  366|  6.45k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp10OnBrIfExprEj:
 1108|    360|Result BinaryReaderInterp::OnBrIfExpr(Index depth) {
 1109|    360|  Index drop_count, keep_count, catch_drop_count;
 1110|    360|  CHECK_RESULT(validator_.OnBrIf(GetLocation(), Var(depth, GetLocation())));
  ------------------
  |  |   55|    360|  do {                              \
  |  |   56|    360|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 358]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|    360|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1111|    358|  CHECK_RESULT(GetBrDropKeepCount(depth, &drop_count, &keep_count));
  ------------------
  |  |   55|    358|  do {                              \
  |  |   56|    358|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 358]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    358|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1112|    358|  CHECK_RESULT(validator_.GetCatchCount(depth, &catch_drop_count));
  ------------------
  |  |   55|    358|  do {                              \
  |  |   56|    358|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 358]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    358|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1113|       |  // Flip the br_if so if <cond> is true it can drop values from the stack.
 1114|    358|  istream_.Emit(Opcode::InterpBrUnless);
 1115|    358|  auto fixup = istream_.EmitFixupU32();
 1116|    358|  EmitBr(depth, drop_count, keep_count, catch_drop_count);
 1117|    358|  istream_.ResolveFixupU32(fixup);
 1118|    358|  return Result::Ok;
 1119|    358|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13OnBrTableExprEjPjj:
 1123|  1.65k|                                         Index default_target_depth) {
 1124|  1.65k|  CHECK_RESULT(validator_.BeginBrTable(GetLocation()));
  ------------------
  |  |   55|  1.65k|  do {                              \
  |  |   56|  1.65k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 1.65k]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|  1.65k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1125|  1.65k|  Index drop_count, keep_count, catch_drop_count;
 1126|  1.65k|  istream_.Emit(Opcode::BrTable, num_targets);
 1127|       |
 1128|  5.67k|  for (Index i = 0; i < num_targets; ++i) {
  ------------------
  |  Branch (1128:21): [True: 4.03k, False: 1.64k]
  ------------------
 1129|  4.03k|    Index depth = target_depths[i];
 1130|  4.03k|    CHECK_RESULT(
  ------------------
  |  |   55|  4.03k|  do {                              \
  |  |   56|  4.03k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 4.02k]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|  4.03k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1131|  4.03k|        validator_.OnBrTableTarget(GetLocation(), Var(depth, GetLocation())));
 1132|  4.02k|    CHECK_RESULT(GetBrDropKeepCount(depth, &drop_count, &keep_count));
  ------------------
  |  |   55|  4.02k|  do {                              \
  |  |   56|  4.02k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4.02k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  4.02k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1133|  4.02k|    CHECK_RESULT(validator_.GetCatchCount(depth, &catch_drop_count));
  ------------------
  |  |   55|  4.02k|  do {                              \
  |  |   56|  4.02k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4.02k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  4.02k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1134|       |    // Emit DropKeep directly (instead of using EmitDropKeep) so the
 1135|       |    // instruction has a fixed size. Same for CatchDrop as well.
 1136|  4.02k|    istream_.Emit(Opcode::InterpDropKeep, drop_count, keep_count);
 1137|  4.02k|    istream_.Emit(Opcode::InterpCatchDrop, catch_drop_count);
 1138|  4.02k|    EmitBr(depth, 0, 0, 0);
 1139|  4.02k|  }
 1140|  1.64k|  CHECK_RESULT(validator_.OnBrTableTarget(
  ------------------
  |  |   55|  1.64k|  do {                              \
  |  |   56|  1.64k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 1.63k]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|  1.64k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1141|  1.64k|      GetLocation(), Var(default_target_depth, GetLocation())));
 1142|  1.63k|  CHECK_RESULT(
  ------------------
  |  |   55|  1.63k|  do {                              \
  |  |   56|  1.63k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.63k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.63k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1143|  1.63k|      GetBrDropKeepCount(default_target_depth, &drop_count, &keep_count));
 1144|  1.63k|  CHECK_RESULT(
  ------------------
  |  |   55|  1.63k|  do {                              \
  |  |   56|  1.63k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.63k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.63k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1145|  1.63k|      validator_.GetCatchCount(default_target_depth, &catch_drop_count));
 1146|       |  // The default case doesn't need a fixed size, since it is never jumped over.
 1147|  1.63k|  istream_.EmitDropKeep(drop_count, keep_count);
 1148|  1.63k|  istream_.Emit(Opcode::InterpCatchDrop, catch_drop_count);
 1149|  1.63k|  EmitBr(default_target_depth, 0, 0, 0);
 1150|       |
 1151|  1.63k|  CHECK_RESULT(validator_.EndBrTable(GetLocation()));
  ------------------
  |  |   55|  1.63k|  do {                              \
  |  |   56|  1.63k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.63k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.63k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1152|  1.63k|  return Result::Ok;
 1153|  1.63k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp10OnCallExprEj:
 1155|  2.31k|Result BinaryReaderInterp::OnCallExpr(Index func_index) {
 1156|  2.31k|  CHECK_RESULT(
  ------------------
  |  |   55|  2.31k|  do {                              \
  |  |   56|  2.31k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 12, False: 2.30k]
  |  |  ------------------
  |  |   57|     12|      return ::wabt::Result::Error; \
  |  |   58|     12|    }                               \
  |  |   59|  2.31k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1157|  2.31k|      validator_.OnCall(GetLocation(), Var(func_index, GetLocation())));
 1158|       |
 1159|  2.30k|  if (func_index >= num_func_imports()) {
  ------------------
  |  Branch (1159:7): [True: 2.30k, False: 2]
  ------------------
 1160|  2.30k|    istream_.Emit(Opcode::Call, func_index);
 1161|  2.30k|  } else {
 1162|      2|    istream_.Emit(Opcode::InterpCallImport, func_index);
 1163|      2|  }
 1164|       |
 1165|  2.30k|  return Result::Ok;
 1166|  2.31k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp18OnCallIndirectExprEjj:
 1169|    344|                                              Index table_index) {
 1170|    344|  CHECK_RESULT(validator_.OnCallIndirect(GetLocation(),
  ------------------
  |  |   55|    344|  do {                              \
  |  |   56|    344|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 338]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|    344|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1171|    344|                                         Var(sig_index, GetLocation()),
 1172|    344|                                         Var(table_index, GetLocation())));
 1173|    338|  istream_.Emit(Opcode::CallIndirect, table_index, sig_index);
 1174|    338|  return Result::Ok;
 1175|    344|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp11OnCatchExprEj:
 1662|      4|Result BinaryReaderInterp::OnCatchExpr(Index tag_index) {
 1663|      4|  CHECK_RESULT(
  ------------------
  |  |   55|      4|  do {                              \
  |  |   56|      4|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4, False: 0]
  |  |  ------------------
  |  |   57|      4|      return ::wabt::Result::Error; \
  |  |   58|      4|    }                               \
  |  |   59|      4|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1664|      4|      validator_.OnCatch(GetLocation(), Var(tag_index, GetLocation()), false));
 1665|      0|  Label* label = TopLabel();
 1666|      0|  HandlerDesc& desc = func_->handlers[label->handler_desc_index];
 1667|      0|  desc.kind = HandlerKind::Catch;
 1668|       |  // Drop the previous block's exception if it was a catch.
 1669|      0|  if (label->kind == LabelKind::Block) {
  ------------------
  |  Branch (1669:7): [True: 0, False: 0]
  ------------------
 1670|      0|    istream_.EmitCatchDrop(1);
 1671|      0|  }
 1672|       |  // Jump to the end of the block at the end of the previous try or catch.
 1673|      0|  Istream::Offset offset = label->offset;
 1674|      0|  istream_.Emit(Opcode::Br);
 1675|      0|  assert(offset == Istream::kInvalidOffset);
 1676|      0|  depth_fixups_.Append(label_stack_.size() - 1, istream_.end());
 1677|      0|  istream_.Emit(offset);
 1678|       |  // The offset is only set after the first catch block, as the offset range
 1679|       |  // should only cover the try block itself.
 1680|      0|  if (desc.try_end_offset == Istream::kInvalidOffset) {
  ------------------
  |  Branch (1680:7): [True: 0, False: 0]
  ------------------
 1681|      0|    desc.try_end_offset = istream_.end();
 1682|      0|  }
 1683|       |  // The label kind is switched to Block from Try in order to distinguish
 1684|       |  // catch blocks from try blocks. This is used to ensure that a try-delegate
 1685|       |  // inside this catch will not delegate to the catch, and instead find outer
 1686|       |  // try blocks to use as a delegate target.
 1687|      0|  label->kind = LabelKind::Block;
 1688|      0|  desc.catches.push_back(CatchDesc{tag_index, istream_.end()});
 1689|      0|  return Result::Ok;
 1690|      0|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp8TopLabelEv:
  404|  1.18k|Label* BinaryReaderInterp::TopLabel() {
  405|  1.18k|  return GetLabel(0);
  406|  1.18k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnCatchAllExprEv:
 1692|      1|Result BinaryReaderInterp::OnCatchAllExpr() {
 1693|      1|  CHECK_RESULT(validator_.OnCatch(GetLocation(), Var(), true));
  ------------------
  |  |   55|      1|  do {                              \
  |  |   56|      1|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 0]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|      1|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1694|      0|  Label* label = TopLabel();
 1695|      0|  HandlerDesc& desc = func_->handlers[label->handler_desc_index];
 1696|      0|  desc.kind = HandlerKind::Catch;
 1697|      0|  if (label->kind == LabelKind::Block) {
  ------------------
  |  Branch (1697:7): [True: 0, False: 0]
  ------------------
 1698|      0|    istream_.EmitCatchDrop(1);
 1699|      0|  }
 1700|      0|  Istream::Offset offset = label->offset;
 1701|      0|  istream_.Emit(Opcode::Br);
 1702|      0|  assert(offset == Istream::kInvalidOffset);
 1703|      0|  depth_fixups_.Append(label_stack_.size() - 1, istream_.end());
 1704|      0|  istream_.Emit(offset);
 1705|      0|  if (desc.try_end_offset == Istream::kInvalidOffset) {
  ------------------
  |  Branch (1705:7): [True: 0, False: 0]
  ------------------
 1706|      0|    desc.try_end_offset = istream_.end();
 1707|      0|  }
 1708|      0|  label->kind = LabelKind::Block;
 1709|      0|  desc.catch_all_offset = istream_.end();
 1710|      0|  return Result::Ok;
 1711|      0|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13OnCompareExprENS_6OpcodeE:
 1234|  17.8k|Result BinaryReaderInterp::OnCompareExpr(Opcode opcode) {
 1235|  17.8k|  CHECK_RESULT(validator_.OnCompare(GetLocation(), opcode));
  ------------------
  |  |   55|  17.8k|  do {                              \
  |  |   56|  17.8k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 29, False: 17.8k]
  |  |  ------------------
  |  |   57|     29|      return ::wabt::Result::Error; \
  |  |   58|     29|    }                               \
  |  |   59|  17.8k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1236|  17.8k|  istream_.Emit(opcode);
 1237|  17.8k|  return Result::Ok;
 1238|  17.8k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13OnConvertExprENS_6OpcodeE:
 1240|  78.0k|Result BinaryReaderInterp::OnConvertExpr(Opcode opcode) {
 1241|  78.0k|  CHECK_RESULT(validator_.OnConvert(GetLocation(), opcode));
  ------------------
  |  |   55|  78.0k|  do {                              \
  |  |   56|  78.0k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 33, False: 78.0k]
  |  |  ------------------
  |  |   57|     33|      return ::wabt::Result::Error; \
  |  |   58|     33|    }                               \
  |  |   59|  78.0k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1242|  78.0k|  istream_.Emit(opcode);
 1243|  78.0k|  return Result::Ok;
 1244|  78.0k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnDelegateExprEj:
 1713|      1|Result BinaryReaderInterp::OnDelegateExpr(Index depth) {
 1714|      1|  CHECK_RESULT(validator_.OnDelegate(GetLocation(), Var(depth, GetLocation())));
  ------------------
  |  |   55|      1|  do {                              \
  |  |   56|      1|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      1|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1715|      1|  Label* label = TopLabel();
 1716|      1|  assert(label->kind == LabelKind::Try);
 1717|      1|  HandlerDesc& desc = func_->handlers[label->handler_desc_index];
 1718|      1|  desc.kind = HandlerKind::Delegate;
 1719|      1|  Istream::Offset offset = label->offset;
 1720|      1|  istream_.Emit(Opcode::Br);
 1721|      1|  assert(offset == Istream::kInvalidOffset);
 1722|      1|  depth_fixups_.Append(label_stack_.size() - 1, istream_.end());
 1723|      1|  istream_.Emit(offset);
 1724|      1|  desc.try_end_offset = istream_.end();
 1725|      1|  Label* target_label = GetNearestTryLabel(depth + 1);
 1726|      1|  assert(target_label);
 1727|      1|  desc.delegate_handler_index = target_label->handler_desc_index;
 1728|      1|  FixupTopLabel();
 1729|      1|  PopLabel();
 1730|      1|  return Result::Ok;
 1731|      1|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp18GetNearestTryLabelEj:
  394|      1|Label* BinaryReaderInterp::GetNearestTryLabel(Index depth) {
  395|      2|  for (size_t i = depth; i < label_stack_.size(); i++) {
  ------------------
  |  Branch (395:26): [True: 2, False: 0]
  ------------------
  396|      2|    Label* label = &label_stack_[label_stack_.size() - i - 1];
  397|      2|    if (label->kind == LabelKind::Try) {
  ------------------
  |  Branch (397:9): [True: 1, False: 1]
  ------------------
  398|      1|      return label;
  399|      1|    }
  400|      2|  }
  401|      0|  return nullptr;
  402|      1|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp10OnDropExprEv:
 1246|  1.55k|Result BinaryReaderInterp::OnDropExpr() {
 1247|  1.55k|  CHECK_RESULT(validator_.OnDrop(GetLocation()));
  ------------------
  |  |   55|  1.55k|  do {                              \
  |  |   56|  1.55k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 1.55k]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|  1.55k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1248|  1.55k|  istream_.Emit(Opcode::Drop);
 1249|  1.55k|  return Result::Ok;
 1250|  1.55k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp10OnElseExprEv:
 1059|    317|Result BinaryReaderInterp::OnElseExpr() {
 1060|    317|  CHECK_RESULT(validator_.OnElse(GetLocation()));
  ------------------
  |  |   55|    317|  do {                              \
  |  |   56|    317|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 316]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    317|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1061|    316|  Label* label = TopLabel();
 1062|    316|  Istream::Offset fixup_cond_offset = label->fixup_offset;
 1063|    316|  istream_.Emit(Opcode::Br);
 1064|    316|  label->fixup_offset = istream_.EmitFixupU32();
 1065|    316|  istream_.ResolveFixupU32(fixup_cond_offset);
 1066|    316|  return Result::Ok;
 1067|    317|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp9OnEndExprEv:
 1069|  39.2k|Result BinaryReaderInterp::OnEndExpr() {
 1070|  39.2k|  if (label_stack_.size() == 1) {
  ------------------
  |  Branch (1070:7): [True: 18.8k, False: 20.3k]
  ------------------
 1071|  18.8k|    return Result::Ok;
 1072|  18.8k|  }
 1073|  20.3k|  SharedValidator::Label* label;
 1074|  20.3k|  CHECK_RESULT(validator_.GetLabel(0, &label));
  ------------------
  |  |   55|  20.3k|  do {                              \
  |  |   56|  20.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 20.3k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  20.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1075|  20.3k|  LabelType label_type = label->label_type;
 1076|  20.3k|  CHECK_RESULT(validator_.OnEnd(GetLocation()));
  ------------------
  |  |   55|  20.3k|  do {                              \
  |  |   56|  20.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 16, False: 20.3k]
  |  |  ------------------
  |  |   57|     16|      return ::wabt::Result::Error; \
  |  |   58|     16|    }                               \
  |  |   59|  20.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1077|  20.3k|  if (label_type == LabelType::If || label_type == LabelType::Else) {
  ------------------
  |  Branch (1077:7): [True: 727, False: 19.6k]
  |  Branch (1077:38): [True: 139, False: 19.4k]
  ------------------
 1078|    866|    istream_.ResolveFixupU32(TopLabel()->fixup_offset);
 1079|  19.4k|  } else if (label_type == LabelType::Try) {
  ------------------
  |  Branch (1079:14): [True: 2, False: 19.4k]
  ------------------
 1080|       |    // Catch-less try blocks need to fill in the handler description
 1081|       |    // so that it can trigger an exception rethrow when it's reached.
 1082|      2|    Label* local_label = TopLabel();
 1083|      2|    HandlerDesc& desc = func_->handlers[local_label->handler_desc_index];
 1084|      2|    desc.try_end_offset = istream_.end();
 1085|      2|    assert(desc.catches.size() == 0);
 1086|  19.4k|  } else if (label_type == LabelType::TryTable) {
  ------------------
  |  Branch (1086:14): [True: 0, False: 19.4k]
  ------------------
 1087|       |    // TryTable blocks need a try_end_offset
 1088|      0|    Label* local_label = TopLabel();
 1089|      0|    HandlerDesc& desc = func_->handlers[local_label->handler_desc_index];
 1090|      0|    desc.try_end_offset = istream_.end();
 1091|  19.4k|  } else if (label_type == LabelType::Catch) {
  ------------------
  |  Branch (1091:14): [True: 0, False: 19.4k]
  ------------------
 1092|      0|    istream_.EmitCatchDrop(1);
 1093|      0|  }
 1094|  20.3k|  FixupTopLabel();
 1095|  20.3k|  PopLabel();
 1096|  20.3k|  return Result::Ok;
 1097|  20.3k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnF32ConstExprEj:
 1264|  18.9k|Result BinaryReaderInterp::OnF32ConstExpr(uint32_t value_bits) {
 1265|  18.9k|  CHECK_RESULT(validator_.OnConst(GetLocation(), Type::F32));
  ------------------
  |  |   55|  18.9k|  do {                              \
  |  |   56|  18.9k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 18.9k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  18.9k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1266|  18.9k|  istream_.Emit(Opcode::F32Const, value_bits);
 1267|  18.9k|  return Result::Ok;
 1268|  18.9k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnF64ConstExprEm:
 1270|  2.45k|Result BinaryReaderInterp::OnF64ConstExpr(uint64_t value_bits) {
 1271|  2.45k|  CHECK_RESULT(validator_.OnConst(GetLocation(), Type::F64));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1272|  2.45k|  istream_.Emit(Opcode::F64Const, value_bits);
 1273|  2.45k|  return Result::Ok;
 1274|  2.45k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnV128ConstExprE4v128:
 1276|  4.60k|Result BinaryReaderInterp::OnV128ConstExpr(v128 value_bits) {
 1277|  4.60k|  CHECK_RESULT(validator_.OnConst(GetLocation(), Type::V128));
  ------------------
  |  |   55|  4.60k|  do {                              \
  |  |   56|  4.60k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4.60k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  4.60k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1278|  4.60k|  istream_.Emit(Opcode::V128Const, value_bits);
 1279|  4.60k|  return Result::Ok;
 1280|  4.60k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnGlobalGetExprEj:
 1282|  9.68k|Result BinaryReaderInterp::OnGlobalGetExpr(Index global_index) {
 1283|  9.68k|  CHECK_RESULT(
  ------------------
  |  |   55|  9.68k|  do {                              \
  |  |   56|  9.68k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 12, False: 9.66k]
  |  |  ------------------
  |  |   57|     12|      return ::wabt::Result::Error; \
  |  |   58|     12|    }                               \
  |  |   59|  9.68k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1284|  9.68k|      validator_.OnGlobalGet(GetLocation(), Var(global_index, GetLocation())));
 1285|       |
 1286|  9.66k|  Type type = global_types_.at(global_index).type;
 1287|  9.66k|  if (type.IsRef()) {
  ------------------
  |  Branch (1287:7): [True: 161, False: 9.50k]
  ------------------
 1288|    161|    istream_.Emit(Opcode::InterpGlobalGetRef, global_index);
 1289|  9.50k|  } else {
 1290|  9.50k|    istream_.Emit(Opcode::GlobalGet, global_index);
 1291|  9.50k|  }
 1292|  9.66k|  return Result::Ok;
 1293|  9.68k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnGlobalSetExprEj:
 1295|  8.96k|Result BinaryReaderInterp::OnGlobalSetExpr(Index global_index) {
 1296|  8.96k|  CHECK_RESULT(
  ------------------
  |  |   55|  8.96k|  do {                              \
  |  |   56|  8.96k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4, False: 8.96k]
  |  |  ------------------
  |  |   57|      4|      return ::wabt::Result::Error; \
  |  |   58|      4|    }                               \
  |  |   59|  8.96k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1297|  8.96k|      validator_.OnGlobalSet(GetLocation(), Var(global_index, GetLocation())));
 1298|  8.96k|  istream_.Emit(Opcode::GlobalSet, global_index);
 1299|  8.96k|  return Result::Ok;
 1300|  8.96k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnI32ConstExprEj:
 1252|  33.5k|Result BinaryReaderInterp::OnI32ConstExpr(uint32_t value) {
 1253|  33.5k|  CHECK_RESULT(validator_.OnConst(GetLocation(), Type::I32));
  ------------------
  |  |   55|  33.5k|  do {                              \
  |  |   56|  33.5k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 33.5k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  33.5k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1254|  33.5k|  istream_.Emit(Opcode::I32Const, value);
 1255|  33.5k|  return Result::Ok;
 1256|  33.5k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnI64ConstExprEm:
 1258|  6.78k|Result BinaryReaderInterp::OnI64ConstExpr(uint64_t value) {
 1259|  6.78k|  CHECK_RESULT(validator_.OnConst(GetLocation(), Type::I64));
  ------------------
  |  |   55|  6.78k|  do {                              \
  |  |   56|  6.78k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 6.78k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  6.78k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1260|  6.78k|  istream_.Emit(Opcode::I64Const, value);
 1261|  6.78k|  return Result::Ok;
 1262|  6.78k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp8OnIfExprENS_4TypeE:
 1051|  1.65k|Result BinaryReaderInterp::OnIfExpr(Type sig_type) {
 1052|  1.65k|  CHECK_RESULT(validator_.OnIf(GetLocation(), sig_type));
  ------------------
  |  |   55|  1.65k|  do {                              \
  |  |   56|  1.65k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7, False: 1.64k]
  |  |  ------------------
  |  |   57|      7|      return ::wabt::Result::Error; \
  |  |   58|      7|    }                               \
  |  |   59|  1.65k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1053|  1.64k|  istream_.Emit(Opcode::InterpBrUnless);
 1054|  1.64k|  auto fixup = istream_.EmitFixupU32();
 1055|  1.64k|  PushLabel(LabelKind::Block, Istream::kInvalidOffset, fixup);
 1056|  1.64k|  return Result::Ok;
 1057|  1.65k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp10OnLoadExprENS_6OpcodeEjmm:
 1345|  23.2k|                                      Address offset) {
 1346|  23.2k|  CHECK_RESULT(validator_.OnLoad(GetLocation(), opcode,
  ------------------
  |  |   55|  23.2k|  do {                              \
  |  |   56|  23.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 18, False: 23.2k]
  |  |  ------------------
  |  |   57|     18|      return ::wabt::Result::Error; \
  |  |   58|     18|    }                               \
  |  |   59|  23.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1347|  23.2k|                                 Var(memidx, GetLocation()),
 1348|  23.2k|                                 GetAlignment(align_log2), offset));
 1349|  23.2k|  istream_.Emit(opcode, memidx, offset);
 1350|  23.2k|  return Result::Ok;
 1351|  23.2k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnLocalGetExprEj:
 1307|  16.1k|Result BinaryReaderInterp::OnLocalGetExpr(Index local_index) {
 1308|       |  // Get the translated index before calling validator_.OnLocalGet because it
 1309|       |  // will update the type stack size. We need the index to be relative to the
 1310|       |  // old stack size.
 1311|  16.1k|  Index translated_local_index = TranslateLocalIndex(local_index);
 1312|  16.1k|  CHECK_RESULT(
  ------------------
  |  |   55|  16.1k|  do {                              \
  |  |   56|  16.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7, False: 16.1k]
  |  |  ------------------
  |  |   57|      7|      return ::wabt::Result::Error; \
  |  |   58|      7|    }                               \
  |  |   59|  16.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1313|  16.1k|      validator_.OnLocalGet(GetLocation(), Var(local_index, GetLocation())));
 1314|       |
 1315|  16.1k|  Type type = func_->GetLocalType(local_index);
 1316|  16.1k|  if (type.IsRef()) {
  ------------------
  |  Branch (1316:7): [True: 188, False: 15.9k]
  ------------------
 1317|    188|    istream_.Emit(Opcode::InterpLocalGetRef, translated_local_index);
 1318|  15.9k|  } else {
 1319|  15.9k|    istream_.Emit(Opcode::LocalGet, translated_local_index);
 1320|  15.9k|  }
 1321|  16.1k|  return Result::Ok;
 1322|  16.1k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp19TranslateLocalIndexEj:
 1302|  22.1k|Index BinaryReaderInterp::TranslateLocalIndex(Index local_index) {
 1303|  22.1k|  return validator_.type_stack_size() + validator_.GetLocalCount() -
 1304|  22.1k|         local_index;
 1305|  22.1k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnLocalSetExprEj:
 1324|  3.98k|Result BinaryReaderInterp::OnLocalSetExpr(Index local_index) {
 1325|       |  // See comment in OnLocalGetExpr above.
 1326|  3.98k|  Index translated_local_index = TranslateLocalIndex(local_index);
 1327|  3.98k|  CHECK_RESULT(
  ------------------
  |  |   55|  3.98k|  do {                              \
  |  |   56|  3.98k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4, False: 3.98k]
  |  |  ------------------
  |  |   57|      4|      return ::wabt::Result::Error; \
  |  |   58|      4|    }                               \
  |  |   59|  3.98k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1328|  3.98k|      validator_.OnLocalSet(GetLocation(), Var(local_index, GetLocation())));
 1329|       |
 1330|  3.98k|  istream_.Emit(Opcode::LocalSet, translated_local_index);
 1331|  3.98k|  return Result::Ok;
 1332|  3.98k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnLocalTeeExprEj:
 1334|  2.03k|Result BinaryReaderInterp::OnLocalTeeExpr(Index local_index) {
 1335|  2.03k|  CHECK_RESULT(
  ------------------
  |  |   55|  2.03k|  do {                              \
  |  |   56|  2.03k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4, False: 2.02k]
  |  |  ------------------
  |  |   57|      4|      return ::wabt::Result::Error; \
  |  |   58|      4|    }                               \
  |  |   59|  2.03k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1336|  2.03k|      validator_.OnLocalTee(GetLocation(), Var(local_index, GetLocation())));
 1337|       |
 1338|  2.02k|  istream_.Emit(Opcode::LocalTee, TranslateLocalIndex(local_index));
 1339|  2.02k|  return Result::Ok;
 1340|  2.03k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp10OnLoopExprENS_4TypeE:
 1045|  3.06k|Result BinaryReaderInterp::OnLoopExpr(Type sig_type) {
 1046|  3.06k|  CHECK_RESULT(validator_.OnLoop(GetLocation(), sig_type));
  ------------------
  |  |   55|  3.06k|  do {                              \
  |  |   56|  3.06k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 12, False: 3.05k]
  |  |  ------------------
  |  |   57|     12|      return ::wabt::Result::Error; \
  |  |   58|     12|    }                               \
  |  |   59|  3.06k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1047|  3.05k|  PushLabel(LabelKind::Block, istream_.end());
 1048|  3.05k|  return Result::Ok;
 1049|  3.06k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp16OnMemoryCopyExprEjj:
 1476|      4|Result BinaryReaderInterp::OnMemoryCopyExpr(Index destmemidx, Index srcmemidx) {
 1477|      4|  CHECK_RESULT(validator_.OnMemoryCopy(GetLocation(),
  ------------------
  |  |   55|      4|  do {                              \
  |  |   56|      4|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 4]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      4|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1478|      4|                                       Var(destmemidx, GetLocation()),
 1479|      4|                                       Var(srcmemidx, GetLocation())));
 1480|      4|  istream_.Emit(Opcode::MemoryCopy, destmemidx, srcmemidx);
 1481|      4|  return Result::Ok;
 1482|      4|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnDataDropExprEj:
 1484|    160|Result BinaryReaderInterp::OnDataDropExpr(Index segment_index) {
 1485|    160|  CHECK_RESULT(
  ------------------
  |  |   55|    160|  do {                              \
  |  |   56|    160|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 159]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    160|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1486|    160|      validator_.OnDataDrop(GetLocation(), Var(segment_index, GetLocation())));
 1487|    159|  istream_.Emit(Opcode::DataDrop, segment_index);
 1488|    159|  return Result::Ok;
 1489|    160|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp16OnMemoryFillExprEj:
 1491|    439|Result BinaryReaderInterp::OnMemoryFillExpr(Index memidx) {
 1492|    439|  CHECK_RESULT(
  ------------------
  |  |   55|    439|  do {                              \
  |  |   56|    439|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 438]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    439|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1493|    439|      validator_.OnMemoryFill(GetLocation(), Var(memidx, GetLocation())));
 1494|    438|  istream_.Emit(Opcode::MemoryFill, memidx);
 1495|    438|  return Result::Ok;
 1496|    439|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp16OnMemoryGrowExprEj:
 1364|  9.18k|Result BinaryReaderInterp::OnMemoryGrowExpr(Index memidx) {
 1365|  9.18k|  CHECK_RESULT(
  ------------------
  |  |   55|  9.18k|  do {                              \
  |  |   56|  9.18k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 7, False: 9.17k]
  |  |  ------------------
  |  |   57|      7|      return ::wabt::Result::Error; \
  |  |   58|      7|    }                               \
  |  |   59|  9.18k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1366|  9.18k|      validator_.OnMemoryGrow(GetLocation(), Var(memidx, GetLocation())));
 1367|  9.17k|  istream_.Emit(Opcode::MemoryGrow, memidx);
 1368|  9.17k|  return Result::Ok;
 1369|  9.18k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp16OnMemorySizeExprEj:
 1371|  4.53k|Result BinaryReaderInterp::OnMemorySizeExpr(Index memidx) {
 1372|  4.53k|  CHECK_RESULT(
  ------------------
  |  |   55|  4.53k|  do {                              \
  |  |   56|  4.53k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 4.52k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  4.53k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1373|  4.53k|      validator_.OnMemorySize(GetLocation(), Var(memidx, GetLocation())));
 1374|  4.52k|  istream_.Emit(Opcode::MemorySize, memidx);
 1375|  4.52k|  return Result::Ok;
 1376|  4.53k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnTableCopyExprEjj:
 1520|    118|Result BinaryReaderInterp::OnTableCopyExpr(Index dst_index, Index src_index) {
 1521|    118|  CHECK_RESULT(validator_.OnTableCopy(GetLocation(),
  ------------------
  |  |   55|    118|  do {                              \
  |  |   56|    118|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 117]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    118|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1522|    118|                                      Var(dst_index, GetLocation()),
 1523|    118|                                      Var(src_index, GetLocation())));
 1524|    117|  istream_.Emit(Opcode::TableCopy, dst_index, src_index);
 1525|    117|  return Result::Ok;
 1526|    118|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnElemDropExprEj:
 1528|  4.72k|Result BinaryReaderInterp::OnElemDropExpr(Index segment_index) {
 1529|  4.72k|  CHECK_RESULT(
  ------------------
  |  |   55|  4.72k|  do {                              \
  |  |   56|  4.72k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 4.71k]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|  4.72k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1530|  4.72k|      validator_.OnElemDrop(GetLocation(), Var(segment_index, GetLocation())));
 1531|  4.71k|  istream_.Emit(Opcode::ElemDrop, segment_index);
 1532|  4.71k|  return Result::Ok;
 1533|  4.72k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnTableInitExprEjj:
 1536|     30|                                           Index table_index) {
 1537|     30|  CHECK_RESULT(validator_.OnTableInit(GetLocation(),
  ------------------
  |  |   55|     30|  do {                              \
  |  |   56|     30|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 27]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|     30|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1538|     30|                                      Var(segment_index, GetLocation()),
 1539|     30|                                      Var(table_index, GetLocation())));
 1540|     27|  istream_.Emit(Opcode::TableInit, table_index, segment_index);
 1541|     27|  return Result::Ok;
 1542|     30|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnTableGetExprEj:
 1506|     83|Result BinaryReaderInterp::OnTableGetExpr(Index table_index) {
 1507|     83|  CHECK_RESULT(
  ------------------
  |  |   55|     83|  do {                              \
  |  |   56|     83|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 82]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|     83|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1508|     83|      validator_.OnTableGet(GetLocation(), Var(table_index, GetLocation())));
 1509|     82|  istream_.Emit(Opcode::TableGet, table_index);
 1510|     82|  return Result::Ok;
 1511|     83|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnTableSetExprEj:
 1513|     12|Result BinaryReaderInterp::OnTableSetExpr(Index table_index) {
 1514|     12|  CHECK_RESULT(
  ------------------
  |  |   55|     12|  do {                              \
  |  |   56|     12|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 12]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     12|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1515|     12|      validator_.OnTableSet(GetLocation(), Var(table_index, GetLocation())));
 1516|     12|  istream_.Emit(Opcode::TableSet, table_index);
 1517|     12|  return Result::Ok;
 1518|     12|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnTableGrowExprEj:
 1378|      1|Result BinaryReaderInterp::OnTableGrowExpr(Index table_index) {
 1379|      1|  CHECK_RESULT(
  ------------------
  |  |   55|      1|  do {                              \
  |  |   56|      1|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 0]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|      1|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1380|      1|      validator_.OnTableGrow(GetLocation(), Var(table_index, GetLocation())));
 1381|      0|  istream_.Emit(Opcode::TableGrow, table_index);
 1382|      0|  return Result::Ok;
 1383|      1|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnTableSizeExprEj:
 1385|    238|Result BinaryReaderInterp::OnTableSizeExpr(Index table_index) {
 1386|    238|  CHECK_RESULT(
  ------------------
  |  |   55|    238|  do {                              \
  |  |   56|    238|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 238]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    238|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1387|    238|      validator_.OnTableSize(GetLocation(), Var(table_index, GetLocation())));
 1388|    238|  istream_.Emit(Opcode::TableSize, table_index);
 1389|    238|  return Result::Ok;
 1390|    238|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnTableFillExprEj:
 1392|    110|Result BinaryReaderInterp::OnTableFillExpr(Index table_index) {
 1393|    110|  CHECK_RESULT(
  ------------------
  |  |   55|    110|  do {                              \
  |  |   56|    110|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 110]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    110|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1394|    110|      validator_.OnTableFill(GetLocation(), Var(table_index, GetLocation())));
 1395|    110|  istream_.Emit(Opcode::TableFill, table_index);
 1396|    110|  return Result::Ok;
 1397|    110|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13OnRefFuncExprEj:
 1399|  7.14k|Result BinaryReaderInterp::OnRefFuncExpr(Index func_index) {
 1400|  7.14k|  CHECK_RESULT(
  ------------------
  |  |   55|  7.14k|  do {                              \
  |  |   56|  7.14k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 7.13k]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|  7.14k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1401|  7.14k|      validator_.OnRefFunc(GetLocation(), Var(func_index, GetLocation())));
 1402|  7.13k|  istream_.Emit(Opcode::RefFunc, func_index);
 1403|  7.13k|  return Result::Ok;
 1404|  7.14k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13OnRefNullExprENS_4TypeE:
 1406|  5.00k|Result BinaryReaderInterp::OnRefNullExpr(Type type) {
 1407|  5.00k|  CHECK_RESULT(validator_.OnRefNull(GetLocation(), type));
  ------------------
  |  |   55|  5.00k|  do {                              \
  |  |   56|  5.00k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 5.00k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  5.00k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1408|  5.00k|  istream_.Emit(Opcode::RefNull);
 1409|  5.00k|  return Result::Ok;
 1410|  5.00k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnRefIsNullExprEv:
 1412|    223|Result BinaryReaderInterp::OnRefIsNullExpr() {
 1413|    223|  CHECK_RESULT(validator_.OnRefIsNull(GetLocation()));
  ------------------
  |  |   55|    223|  do {                              \
  |  |   56|    223|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 222]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|    223|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1414|    222|  istream_.Emit(Opcode::RefIsNull);
 1415|    222|  return Result::Ok;
 1416|    223|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp9OnNopExprEv:
 1418|  53.2k|Result BinaryReaderInterp::OnNopExpr() {
 1419|  53.2k|  CHECK_RESULT(validator_.OnNop(GetLocation()));
  ------------------
  |  |   55|  53.2k|  do {                              \
  |  |   56|  53.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 53.2k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  53.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1420|  53.2k|  return Result::Ok;
 1421|  53.2k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13OnRethrowExprEj:
 1557|      2|Result BinaryReaderInterp::OnRethrowExpr(Index depth) {
 1558|      2|  Index catch_depth;
 1559|      2|  CHECK_RESULT(validator_.OnRethrow(GetLocation(), Var(depth, GetLocation())));
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 0]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1560|      0|  CHECK_RESULT(validator_.GetCatchCount(depth, &catch_depth));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1561|       |  // The rethrow opcode takes an index into the exception stack rather than
 1562|       |  // the number of catch nestings, so we subtract one here.
 1563|      0|  istream_.Emit(Opcode::Rethrow, catch_depth - 1);
 1564|      0|  return Result::Ok;
 1565|      0|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp12OnReturnExprEv:
 1423|  2.71k|Result BinaryReaderInterp::OnReturnExpr() {
 1424|  2.71k|  Index drop_count, keep_count, catch_drop_count;
 1425|  2.71k|  CHECK_RESULT(GetReturnDropKeepCount(&drop_count, &keep_count));
  ------------------
  |  |   55|  2.71k|  do {                              \
  |  |   56|  2.71k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.71k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.71k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1426|  2.71k|  CHECK_RESULT(
  ------------------
  |  |   55|  2.71k|  do {                              \
  |  |   56|  2.71k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.71k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.71k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1427|  2.71k|      validator_.GetCatchCount(label_stack_.size() - 1, &catch_drop_count));
 1428|  2.71k|  CHECK_RESULT(validator_.OnReturn(GetLocation()));
  ------------------
  |  |   55|  2.71k|  do {                              \
  |  |   56|  2.71k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 2.71k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  2.71k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1429|  2.71k|  istream_.EmitDropKeep(drop_count, keep_count);
 1430|  2.71k|  istream_.EmitCatchDrop(catch_drop_count);
 1431|  2.71k|  istream_.Emit(Opcode::Return);
 1432|  2.71k|  return Result::Ok;
 1433|  2.71k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp22GetReturnDropKeepCountEPjS3_:
  440|  5.18k|                                                  Index* out_keep_count) {
  441|  5.18k|  CHECK_RESULT(GetBrDropKeepCount(label_stack_.size() - 1, out_drop_count,
  ------------------
  |  |   55|  5.18k|  do {                              \
  |  |   56|  5.18k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 5.18k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  5.18k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  442|  5.18k|                                  out_keep_count));
  443|  5.18k|  *out_drop_count += validator_.GetLocalCount();
  444|  5.18k|  return Result::Ok;
  445|  5.18k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp16OnReturnCallExprEj:
 1177|     18|Result BinaryReaderInterp::OnReturnCallExpr(Index func_index) {
 1178|     18|  CHECK_RESULT(
  ------------------
  |  |   55|     18|  do {                              \
  |  |   56|     18|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 7]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|     18|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1179|     18|      validator_.OnReturnCall(GetLocation(), Var(func_index, GetLocation())));
 1180|       |
 1181|      7|  FuncType& func_type = func_types_[func_index];
 1182|       |
 1183|      7|  Index drop_count, keep_count, catch_drop_count;
 1184|      7|  CHECK_RESULT(
  ------------------
  |  |   55|      7|  do {                              \
  |  |   56|      7|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 7]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      7|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1185|      7|      GetReturnCallDropKeepCount(func_type, 0, &drop_count, &keep_count));
 1186|      7|  CHECK_RESULT(
  ------------------
  |  |   55|      7|  do {                              \
  |  |   56|      7|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 7]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      7|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1187|      7|      validator_.GetCatchCount(label_stack_.size() - 1, &catch_drop_count));
 1188|       |  // The validator must be run after we get the drop/keep counts, since it
 1189|       |  // will change the type stack.
 1190|      7|  CHECK_RESULT(
  ------------------
  |  |   55|      7|  do {                              \
  |  |   56|      7|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 7]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      7|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1191|      7|      validator_.OnReturnCall(GetLocation(), Var(func_index, GetLocation())));
 1192|      7|  istream_.EmitDropKeep(drop_count, keep_count);
 1193|      7|  istream_.EmitCatchDrop(catch_drop_count);
 1194|       |
 1195|      7|  if (func_index >= num_func_imports()) {
  ------------------
  |  Branch (1195:7): [True: 7, False: 0]
  ------------------
 1196|      7|    istream_.Emit(Opcode::InterpAdjustFrameForReturnCall, func_index);
 1197|      7|    istream_.Emit(Opcode::Br);
 1198|       |    // We emit this separately to ensure that the fixup generated by
 1199|       |    // GetFuncOffset comes after the Br opcode.
 1200|      7|    istream_.Emit(GetFuncOffset(func_index));
 1201|      7|  } else {
 1202|      0|    istream_.Emit(Opcode::InterpCallImport, func_index);
 1203|      0|    istream_.Emit(Opcode::Return);
 1204|      0|  }
 1205|       |
 1206|      7|  return Result::Ok;
 1207|      7|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp26GetReturnCallDropKeepCountERKNS0_8FuncTypeEjPjS6_:
  450|     32|                                                      Index* out_keep_count) {
  451|     32|  Index keep_count = static_cast<Index>(func_type.params.size()) + keep_extra;
  452|     32|  CHECK_RESULT(GetDropCount(keep_count, 0, out_drop_count));
  ------------------
  |  |   55|     32|  do {                              \
  |  |   56|     32|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 32]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     32|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  453|     32|  *out_drop_count += validator_.GetLocalCount();
  454|     32|  *out_keep_count = keep_count;
  455|     32|  return Result::Ok;
  456|     32|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13GetFuncOffsetEj:
  478|      7|u32 BinaryReaderInterp::GetFuncOffset(Index func_index) {
  479|      7|  assert(func_index >= num_func_imports());
  480|      7|  FuncDesc& func = module_.funcs[func_index - num_func_imports()];
  481|      7|  if (func.code_offset == Istream::kInvalidOffset) {
  ------------------
  |  Branch (481:7): [True: 5, False: 2]
  ------------------
  482|      5|    func_fixups_.Append(func_index, istream_.end());
  483|      5|  }
  484|      7|  return func.code_offset;
  485|      7|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp24OnReturnCallIndirectExprEjj:
 1210|     31|                                                    Index table_index) {
 1211|     31|  CHECK_RESULT(validator_.OnReturnCallIndirect(
  ------------------
  |  |   55|     31|  do {                              \
  |  |   56|     31|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 25]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|     31|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1212|     31|      GetLocation(), Var(sig_index, GetLocation()),
 1213|     31|      Var(table_index, GetLocation())));
 1214|       |
 1215|     25|  FuncType& func_type = module_.func_types[sig_index];
 1216|       |
 1217|     25|  Index drop_count, keep_count, catch_drop_count;
 1218|       |  // +1 to include the index of the function.
 1219|     25|  CHECK_RESULT(
  ------------------
  |  |   55|     25|  do {                              \
  |  |   56|     25|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 25]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     25|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1220|     25|      GetReturnCallDropKeepCount(func_type, +1, &drop_count, &keep_count));
 1221|     25|  CHECK_RESULT(
  ------------------
  |  |   55|     25|  do {                              \
  |  |   56|     25|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 25]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     25|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1222|     25|      validator_.GetCatchCount(label_stack_.size() - 1, &catch_drop_count));
 1223|       |  // The validator must be run after we get the drop/keep counts, since it
 1224|       |  // changes the type stack.
 1225|     25|  CHECK_RESULT(validator_.OnReturnCallIndirect(
  ------------------
  |  |   55|     25|  do {                              \
  |  |   56|     25|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 25]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     25|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1226|     25|      GetLocation(), Var(sig_index, GetLocation()),
 1227|     25|      Var(table_index, GetLocation())));
 1228|     25|  istream_.EmitDropKeep(drop_count, keep_count);
 1229|     25|  istream_.EmitCatchDrop(catch_drop_count);
 1230|     25|  istream_.Emit(Opcode::ReturnCallIndirect, table_index, sig_index);
 1231|     25|  return Result::Ok;
 1232|     25|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp12OnSelectExprEjPNS_4TypeE:
 1436|  1.62k|                                        Type* result_types) {
 1437|  1.62k|  CHECK_RESULT(validator_.OnSelect(GetLocation(), result_count, result_types));
  ------------------
  |  |   55|  1.62k|  do {                              \
  |  |   56|  1.62k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 1.61k]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|  1.62k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1438|  1.61k|  istream_.Emit(Opcode::Select);
 1439|  1.61k|  return Result::Ok;
 1440|  1.62k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp11OnStoreExprENS_6OpcodeEjmm:
 1356|    461|                                       Address offset) {
 1357|    461|  CHECK_RESULT(validator_.OnStore(GetLocation(), opcode,
  ------------------
  |  |   55|    461|  do {                              \
  |  |   56|    461|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 459]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|    461|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1358|    461|                                  Var(memidx, GetLocation()),
 1359|    461|                                  GetAlignment(align_log2), offset));
 1360|    459|  istream_.Emit(opcode, memidx, offset);
 1361|    459|  return Result::Ok;
 1362|    461|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp11OnThrowExprEj:
 1544|      2|Result BinaryReaderInterp::OnThrowExpr(Index tag_index) {
 1545|      2|  CHECK_RESULT(
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 0]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1546|      2|      validator_.OnThrow(GetLocation(), Var(tag_index, GetLocation())));
 1547|      0|  istream_.Emit(Opcode::Throw, tag_index);
 1548|      0|  return Result::Ok;
 1549|      2|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnThrowRefExprEv:
 1551|     34|Result BinaryReaderInterp::OnThrowRefExpr() {
 1552|     34|  CHECK_RESULT(validator_.OnThrowRef(GetLocation()));
  ------------------
  |  |   55|     34|  do {                              \
  |  |   56|     34|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 3, False: 31]
  |  |  ------------------
  |  |   57|      3|      return ::wabt::Result::Error; \
  |  |   58|      3|    }                               \
  |  |   59|     34|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1553|     31|  istream_.Emit(Opcode::ThrowRef);
 1554|     31|  return Result::Ok;
 1555|     34|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp9OnTryExprENS_4TypeE:
 1567|     33|Result BinaryReaderInterp::OnTryExpr(Type sig_type) {
 1568|     33|  u32 exn_stack_height;
 1569|     33|  CHECK_RESULT(
  ------------------
  |  |   55|     33|  do {                              \
  |  |   56|     33|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 33]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     33|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1570|     33|      validator_.GetCatchCount(label_stack_.size() - 1, &exn_stack_height));
 1571|       |  // NOTE: *NOT* GetLocalCount. we don't count the parameters, as they're not
 1572|       |  // part of the frame.
 1573|     33|  u32 value_stack_height = validator_.type_stack_size() + local_count_;
 1574|     33|  CHECK_RESULT(validator_.OnTry(GetLocation(), sig_type));
  ------------------
  |  |   55|     33|  do {                              \
  |  |   56|     33|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 5, False: 28]
  |  |  ------------------
  |  |   57|      5|      return ::wabt::Result::Error; \
  |  |   58|      5|    }                               \
  |  |   59|     33|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1575|       |  // Push a label that tracks mapping of exn -> catch
 1576|     28|  PushLabel(LabelKind::Try, Istream::kInvalidOffset, Istream::kInvalidOffset,
 1577|     28|            func_->handlers.size());
 1578|     28|  func_->handlers.push_back(HandlerDesc{HandlerKind::Catch,
 1579|     28|                                        istream_.end(),
 1580|     28|                                        Istream::kInvalidOffset,
 1581|     28|                                        {},
 1582|     28|                                        {Istream::kInvalidOffset},
 1583|     28|                                        value_stack_height,
 1584|     28|                                        exn_stack_height});
 1585|     28|  return Result::Ok;
 1586|     33|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnTryTableExprENS_4TypeERKNSt3__16vectorINS_11CatchClauseENS4_9allocatorIS6_EEEE:
 1589|      2|                                          const CatchClauseVector& catches) {
 1590|       |  // we can just emit the catch handlers beforehand, so long as we skip over
 1591|       |  // them when entering the try.
 1592|      2|  CHECK_RESULT(validator_.BeginTryTable(GetLocation(), sig_type));
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 0]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1593|       |
 1594|      0|  u32 exn_stack_height;
 1595|      0|  CHECK_RESULT(
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1596|      0|      validator_.GetCatchCount(label_stack_.size() - 1, &exn_stack_height));
 1597|       |  // NOTE: *NOT* GetLocalCount. we don't count the parameters, as they're not
 1598|       |  // part of the frame.
 1599|      0|  u32 value_stack_height = validator_.type_stack_size() + local_count_;
 1600|       |
 1601|      0|  HandlerDesc desc =
 1602|      0|      HandlerDesc{HandlerKind::Catch,        Istream::kInvalidOffset,
 1603|      0|                  Istream::kInvalidOffset,   {},
 1604|      0|                  {Istream::kInvalidOffset}, value_stack_height,
 1605|      0|                  exn_stack_height};
 1606|       |
 1607|      0|  istream_.Emit(Opcode::Br);
 1608|      0|  auto offset = istream_.EmitFixupU32();
 1609|       |
 1610|      0|  bool has_catch_all = false;
 1611|      0|  for (const auto& raw_catch : catches) {
  ------------------
  |  Branch (1611:30): [True: 0, False: 0]
  ------------------
 1612|      0|    TableCatch catch_;
 1613|      0|    catch_.kind = raw_catch.kind;
 1614|      0|    catch_.tag = Var(raw_catch.tag, GetLocation());
 1615|      0|    catch_.target = Var(raw_catch.depth, GetLocation());
 1616|      0|    CHECK_RESULT(validator_.OnTryTableCatch(GetLocation(), catch_));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1617|       |    // stop emitting handlers after catch_all - but we must still validate the
 1618|       |    // handlers we don't emit
 1619|      0|    if (has_catch_all) {
  ------------------
  |  Branch (1619:9): [True: 0, False: 0]
  ------------------
 1620|      0|      continue;
 1621|      0|    }
 1622|      0|    if (catch_.IsCatchAll()) {
  ------------------
  |  Branch (1622:9): [True: 0, False: 0]
  ------------------
 1623|      0|      has_catch_all = true;
 1624|      0|      desc.catch_all_ref = catch_.IsRef();
 1625|      0|      desc.catch_all_offset = istream_.end();
 1626|      0|    } else {
 1627|      0|      desc.catches.push_back(
 1628|      0|          CatchDesc{raw_catch.tag, istream_.end(), catch_.IsRef()});
 1629|      0|    }
 1630|       |    // we can't use GetBrDropKeepCount because we're not in a real block.
 1631|      0|    SharedValidator::Label* vlabel;
 1632|      0|    CHECK_RESULT(validator_.GetLabel(raw_catch.depth, &vlabel));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1633|       |    // we keep the exception's results.
 1634|       |    // (this has already been validated, above)
 1635|      0|    Index keep_count = vlabel->br_types().size();
 1636|       |    // we drop everything between the current block and the br target.
 1637|       |    // (we have already taken the TryTable block parameters into account, in
 1638|       |    // BeginTryTable)
 1639|      0|    Index drop_count = validator_.type_stack_size() - vlabel->type_stack_limit;
 1640|      0|    Index catch_drop_count;
 1641|       |    // we use the regular catch count
 1642|      0|    CHECK_RESULT(validator_.GetCatchCount(raw_catch.depth, &catch_drop_count));
  ------------------
  |  |   55|      0|  do {                              \
  |  |   56|      0|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 0]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      0|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1643|       |    // but increment, as we are semantically in a catch
 1644|      0|    catch_drop_count++;
 1645|      0|    EmitBr(raw_catch.depth, drop_count, keep_count, catch_drop_count);
 1646|      0|  }
 1647|       |
 1648|      0|  CHECK_RESULT(validator_.EndTryTable(GetLocation(), sig_type));
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
 1649|       |
 1650|      0|  desc.try_start_offset = istream_.end();
 1651|       |
 1652|       |  // as usual, the label is pushed after the catch handlers
 1653|      0|  PushLabel(LabelKind::Try, Istream::kInvalidOffset, Istream::kInvalidOffset,
 1654|      0|            func_->handlers.size());
 1655|      0|  func_->handlers.push_back(std::move(desc));
 1656|       |
 1657|      0|  istream_.ResolveFixupU32(offset);
 1658|       |
 1659|      0|  return Result::Ok;
 1660|      0|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp11OnUnaryExprENS_6OpcodeE:
  915|   107k|Result BinaryReaderInterp::OnUnaryExpr(Opcode opcode) {
  916|   107k|  CHECK_RESULT(validator_.OnUnary(GetLocation(), opcode));
  ------------------
  |  |   55|   107k|  do {                              \
  |  |   56|   107k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 20, False: 107k]
  |  |  ------------------
  |  |   57|     20|      return ::wabt::Result::Error; \
  |  |   58|     20|    }                               \
  |  |   59|   107k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  917|   107k|  istream_.Emit(opcode);
  918|   107k|  return Result::Ok;
  919|   107k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13OnTernaryExprENS_6OpcodeE:
  921|     13|Result BinaryReaderInterp::OnTernaryExpr(Opcode opcode) {
  922|     13|  CHECK_RESULT(validator_.OnTernary(GetLocation(), opcode));
  ------------------
  |  |   55|     13|  do {                              \
  |  |   56|     13|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 13]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     13|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  923|     13|  istream_.Emit(opcode);
  924|     13|  return Result::Ok;
  925|     13|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp17OnUnreachableExprEv:
 1442|   263k|Result BinaryReaderInterp::OnUnreachableExpr() {
 1443|   263k|  CHECK_RESULT(validator_.OnUnreachable(GetLocation()));
  ------------------
  |  |   55|   263k|  do {                              \
  |  |   56|   263k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4, False: 263k]
  |  |  ------------------
  |  |   57|      4|      return ::wabt::Result::Error; \
  |  |   58|      4|    }                               \
  |  |   59|   263k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1444|   263k|  istream_.Emit(Opcode::Unreachable);
 1445|   263k|  return Result::Ok;
 1446|   263k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15EndFunctionBodyEj:
  850|  2.47k|Result BinaryReaderInterp::EndFunctionBody(Index index) {
  851|  2.47k|  FixupTopLabel();
  852|  2.47k|  Index drop_count, keep_count;
  853|  2.47k|  CHECK_RESULT(GetReturnDropKeepCount(&drop_count, &keep_count));
  ------------------
  |  |   55|  2.47k|  do {                              \
  |  |   56|  2.47k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.47k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.47k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  854|  2.47k|  CHECK_RESULT(validator_.EndFunctionBody(GetLocation()));
  ------------------
  |  |   55|  2.47k|  do {                              \
  |  |   56|  2.47k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 6, False: 2.46k]
  |  |  ------------------
  |  |   57|      6|      return ::wabt::Result::Error; \
  |  |   58|      6|    }                               \
  |  |   59|  2.47k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  855|  2.46k|  istream_.EmitDropKeep(drop_count, keep_count);
  856|  2.46k|  istream_.Emit(Opcode::Return);
  857|  2.46k|  PopLabel();
  858|  2.46k|  func_ = nullptr;
  859|  2.46k|  return Result::Ok;
  860|  2.47k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp16OnSimdLaneOpExprENS_6OpcodeEm:
  927|  3.11k|Result BinaryReaderInterp::OnSimdLaneOpExpr(Opcode opcode, uint64_t value) {
  928|  3.11k|  CHECK_RESULT(validator_.OnSimdLaneOp(GetLocation(), opcode, value));
  ------------------
  |  |   55|  3.11k|  do {                              \
  |  |   56|  3.11k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 3.11k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  3.11k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  929|  3.11k|  istream_.Emit(opcode, static_cast<u8>(value));
  930|  3.11k|  return Result::Ok;
  931|  3.11k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp19OnSimdShuffleOpExprENS_6OpcodeE4v128:
  961|      2|Result BinaryReaderInterp::OnSimdShuffleOpExpr(Opcode opcode, v128 value) {
  962|      2|  CHECK_RESULT(validator_.OnSimdShuffleOp(GetLocation(), opcode, value));
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 0]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  963|      0|  istream_.Emit(opcode, value);
  964|      0|  return Result::Ok;
  965|      2|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp18OnSimdLoadLaneExprENS_6OpcodeEjmmm:
  941|     87|                                              uint64_t value) {
  942|     87|  CHECK_RESULT(validator_.OnSimdLoadLane(
  ------------------
  |  |   55|     87|  do {                              \
  |  |   56|     87|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 86]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|     87|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  943|     87|      GetLocation(), opcode, Var(memidx, GetLocation()),
  944|     87|      GetAlignment(alignment_log2), offset, value));
  945|     86|  istream_.Emit(opcode, memidx, offset, static_cast<u8>(value));
  946|     86|  return Result::Ok;
  947|     87|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp19OnSimdStoreLaneExprENS_6OpcodeEjmmm:
  953|    821|                                               uint64_t value) {
  954|    821|  CHECK_RESULT(validator_.OnSimdStoreLane(
  ------------------
  |  |   55|    821|  do {                              \
  |  |   56|    821|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 10, False: 811]
  |  |  ------------------
  |  |   57|     10|      return ::wabt::Result::Error; \
  |  |   58|     10|    }                               \
  |  |   59|    821|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  955|    821|      GetLocation(), opcode, Var(memidx, GetLocation()),
  956|    821|      GetAlignment(alignment_log2), offset, value));
  957|    811|  istream_.Emit(opcode, memidx, offset, static_cast<u8>(value));
  958|    811|  return Result::Ok;
  959|    821|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp15OnLoadSplatExprENS_6OpcodeEjmm:
  970|    612|                                           Address offset) {
  971|    612|  CHECK_RESULT(validator_.OnLoadSplat(GetLocation(), opcode,
  ------------------
  |  |   55|    612|  do {                              \
  |  |   56|    612|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 612]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    612|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  972|    612|                                      Var(memidx, GetLocation()),
  973|    612|                                      GetAlignment(align_log2), offset));
  974|    612|  istream_.Emit(opcode, memidx, offset);
  975|    612|  return Result::Ok;
  976|    612|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp14OnLoadZeroExprENS_6OpcodeEjmm:
  981|    102|                                          Address offset) {
  982|    102|  CHECK_RESULT(validator_.OnLoadZero(GetLocation(), opcode,
  ------------------
  |  |   55|    102|  do {                              \
  |  |   56|    102|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 100]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|    102|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  983|    102|                                     Var(memidx, GetLocation()),
  984|    102|                                     GetAlignment(align_log2), offset));
  985|    100|  istream_.Emit(opcode, memidx, offset);
  986|    100|  return Result::Ok;
  987|    102|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp18OnElemSegmentCountEj:
  711|    171|Result BinaryReaderInterp::OnElemSegmentCount(Index count) {
  712|    171|  module_.elems.reserve(count);
  713|    171|  return Result::Ok;
  714|    171|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp16BeginElemSegmentEjjh:
  718|  2.44k|                                            uint8_t flags) {
  719|  2.44k|  auto mode = ToSegmentMode(flags);
  720|  2.44k|  CHECK_RESULT(validator_.OnElemSegment(GetLocation(),
  ------------------
  |  |   55|  2.44k|  do {                              \
  |  |   56|  2.44k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 4, False: 2.44k]
  |  |  ------------------
  |  |   57|      4|      return ::wabt::Result::Error; \
  |  |   58|      4|    }                               \
  |  |   59|  2.44k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  721|  2.44k|                                        Var(table_index, GetLocation()), mode));
  722|       |
  723|  2.44k|  ValueType offset_type = ValueType::I32;
  724|  2.44k|  if (table_index < table_types_.size() &&
  ------------------
  |  Branch (724:7): [True: 2.37k, False: 71]
  ------------------
  725|  2.44k|      table_types_[table_index].limits.is_64) {
  ------------------
  |  Branch (725:7): [True: 0, False: 2.37k]
  ------------------
  726|      0|    offset_type = ValueType::I64;
  727|      0|  }
  728|  2.44k|  FuncDesc init_func{
  729|  2.44k|      FuncType{{}, {offset_type}}, {}, Istream::kInvalidOffset, {}};
  730|  2.44k|  ElemDesc desc{{}, ValueType::Void, mode, table_index, init_func};
  731|  2.44k|  module_.elems.push_back(desc);
  732|  2.44k|  return Result::Ok;
  733|  2.44k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_113ToSegmentModeEh:
   41|  2.71k|SegmentMode ToSegmentMode(uint8_t flags) {
   42|  2.71k|  if ((flags & SegDeclared) == SegDeclared) {
  ------------------
  |  Branch (42:7): [True: 96, False: 2.61k]
  ------------------
   43|     96|    return SegmentMode::Declared;
   44|  2.61k|  } else if ((flags & SegPassive) == SegPassive) {
  ------------------
  |  Branch (44:14): [True: 632, False: 1.98k]
  ------------------
   45|    632|    return SegmentMode::Passive;
   46|  1.98k|  } else {
   47|  1.98k|    return SegmentMode::Active;
   48|  1.98k|  }
   49|  2.71k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp24BeginElemSegmentInitExprEj:
  735|  1.91k|Result BinaryReaderInterp::BeginElemSegmentInitExpr(Index index) {
  736|  1.91k|  ElemDesc& elem = module_.elems.back();
  737|  1.91k|  return BeginInitExpr(&elem.init_func);
  738|  1.91k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp22EndElemSegmentInitExprEj:
  740|  1.91k|Result BinaryReaderInterp::EndElemSegmentInitExpr(Index index) {
  741|  1.91k|  return EndInitExpr();
  742|  1.91k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp21OnElemSegmentElemTypeEjNS_4TypeE:
  744|  2.43k|Result BinaryReaderInterp::OnElemSegmentElemType(Index index, Type elem_type) {
  745|  2.43k|  ElemDesc& elem = module_.elems.back();
  746|  2.43k|  elem.type = elem_type;
  747|  2.43k|  return validator_.OnElemSegmentElemType(GetLocation(), elem_type);
  748|  2.43k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp26OnElemSegmentElemExprCountEjj:
  751|  2.42k|                                                      Index count) {
  752|  2.42k|  ElemDesc& elem = module_.elems.back();
  753|  2.42k|  elem.elements.reserve(count);
  754|  2.42k|  return Result::Ok;
  755|  2.42k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp13BeginElemExprEjj:
  757|  10.5k|Result BinaryReaderInterp::BeginElemExpr(Index elem_index, Index expr_index) {
  758|  10.5k|  assert(elem_index == module_.elems.size() - 1);
  759|  10.5k|  ElemDesc& elem = module_.elems.back();
  760|  10.5k|  elem.elements.push_back(
  761|  10.5k|      {FuncType{{}, {elem.type}}, {}, Istream::kInvalidOffset, {}});
  762|  10.5k|  assert(expr_index == elem.elements.size() - 1);
  763|  10.5k|  return BeginInitExpr(&elem.elements.back());
  764|  10.5k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp11EndElemExprEjj:
  766|  10.5k|Result BinaryReaderInterp::EndElemExpr(Index elem_index, Index expr_index) {
  767|  10.5k|  return EndInitExpr();
  768|  10.5k|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp16BeginDataSegmentEjjh:
  787|    264|                                            uint8_t flags) {
  788|    264|  auto mode = ToSegmentMode(flags);
  789|    264|  CHECK_RESULT(validator_.OnDataSegment(
  ------------------
  |  |   55|    264|  do {                              \
  |  |   56|    264|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 262]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|    264|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  790|    264|      GetLocation(), Var(memory_index, GetLocation()), mode));
  791|       |
  792|    262|  ValueType offset_type = ValueType::I32;
  793|    262|  if (memory_index < memory_types_.size() &&
  ------------------
  |  Branch (793:7): [True: 59, False: 203]
  ------------------
  794|    262|      memory_types_[memory_index].limits.is_64) {
  ------------------
  |  Branch (794:7): [True: 0, False: 59]
  ------------------
  795|      0|    offset_type = ValueType::I64;
  796|      0|  }
  797|    262|  FuncDesc init_func{
  798|    262|      FuncType{{}, {offset_type}}, {}, Istream::kInvalidOffset, {}};
  799|    262|  DataDesc desc{{}, mode, memory_index, init_func};
  800|    262|  module_.datas.push_back(desc);
  801|    262|  return Result::Ok;
  802|    264|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp24BeginDataSegmentInitExprEj:
  776|     57|Result BinaryReaderInterp::BeginDataSegmentInitExpr(Index index) {
  777|     57|  DataDesc& data = module_.datas.back();
  778|     57|  return BeginInitExpr(&data.init_func);
  779|     57|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp22EndDataSegmentInitExprEj:
  781|     54|Result BinaryReaderInterp::EndDataSegmentInitExpr(Index index) {
  782|     54|  return EndInitExpr();
  783|     54|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp17OnDataSegmentDataEjPKvm:
  806|    253|                                             Address size) {
  807|    253|  DataDesc& dst_data = module_.datas.back();
  808|    253|  if (size > 0) {
  ------------------
  |  Branch (808:7): [True: 237, False: 16]
  ------------------
  809|    237|    dst_data.data.resize(size);
  810|    237|    memcpy(dst_data.data.data(), src_data, size);
  811|    237|  }
  812|    253|  return Result::Ok;
  813|    253|}
binary-reader-interp.cc:_ZN4wabt6interp12_GLOBAL__N_118BinaryReaderInterp11OnDataCountEj:
  770|    109|Result BinaryReaderInterp::OnDataCount(Index count) {
  771|    109|  validator_.OnDataCount(count);
  772|    109|  module_.datas.reserve(count);
  773|    109|  return Result::Ok;
  774|    109|}

_ZNK4wabt6interp8FuncType5CloneEv:
   93|  10.5k|std::unique_ptr<ExternType> FuncType::Clone() const {
   94|  10.5k|  return std::make_unique<FuncType>(*this);
   95|  10.5k|}
_ZNK4wabt6interp9TableType5CloneEv:
  110|  11.3k|std::unique_ptr<ExternType> TableType::Clone() const {
  111|  11.3k|  return std::make_unique<TableType>(*this);
  112|  11.3k|}
_ZNK4wabt6interp10MemoryType5CloneEv:
  132|    484|std::unique_ptr<ExternType> MemoryType::Clone() const {
  133|    484|  return std::make_unique<MemoryType>(*this);
  134|    484|}
_ZNK4wabt6interp10GlobalType5CloneEv:
  149|  5.04k|std::unique_ptr<ExternType> GlobalType::Clone() const {
  150|  5.04k|  return std::make_unique<GlobalType>(*this);
  151|  5.04k|}
_ZNK4wabt6interp8FuncDesc12GetLocalTypeEj:
  204|  85.6k|ValueType FuncDesc::GetLocalType(Index index) const {
  205|  85.6k|  if (index < type.params.size()) {
  ------------------
  |  Branch (205:7): [True: 903, False: 84.7k]
  ------------------
  206|    903|    return type.params[index];
  207|    903|  }
  208|  84.7k|  index -= type.params.size();
  209|       |
  210|  84.7k|  auto iter = std::lower_bound(
  211|  84.7k|      locals.begin(), locals.end(), index + 1,
  212|  84.7k|      [](const LocalDesc& lhs, Index rhs) { return lhs.end < rhs; });
  213|  84.7k|  assert(iter != locals.end());
  214|  84.7k|  return iter->type;
  215|  84.7k|}
interp.cc:_ZZNK4wabt6interp8FuncDesc12GetLocalTypeEjENK3$_0clERKNS0_9LocalDescEj:
  212|   175k|      [](const LocalDesc& lhs, Index rhs) { return lhs.end < rhs; });

_ZN4wabt6interp7Istream4EmitEj:
   38|  8.59k|void Istream::Emit(u32 val) {
   39|  8.59k|  EmitInternal(val);
   40|  8.59k|}
_ZN4wabt6interp7Istream4EmitENS_6Opcode4EnumE:
   42|   753k|void Istream::Emit(Opcode::Enum op) {
   43|   753k|  EmitInternal(static_cast<SerializedOpcode>(op));
   44|   753k|}
_ZN4wabt6interp7Istream4EmitENS_6Opcode4EnumEh:
   46|  3.11k|void Istream::Emit(Opcode::Enum op, u8 val) {
   47|  3.11k|  Emit(op);
   48|  3.11k|  EmitInternal(val);
   49|  3.11k|}
_ZN4wabt6interp7Istream4EmitENS_6Opcode4EnumEj:
   51|   154k|void Istream::Emit(Opcode::Enum op, u32 val) {
   52|   154k|  Emit(op);
   53|   154k|  EmitInternal(val);
   54|   154k|}
_ZN4wabt6interp7Istream4EmitENS_6Opcode4EnumEm:
   56|  9.23k|void Istream::Emit(Opcode::Enum op, u64 val) {
   57|  9.23k|  Emit(op);
   58|  9.23k|  EmitInternal(val);
   59|  9.23k|}
_ZN4wabt6interp7Istream4EmitENS_6Opcode4EnumE4v128:
   61|  4.60k|void Istream::Emit(Opcode::Enum op, v128 val) {
   62|  4.60k|  Emit(op);
   63|  4.60k|  EmitInternal(val);
   64|  4.60k|}
_ZN4wabt6interp7Istream4EmitENS_6Opcode4EnumEjj:
   66|  33.9k|void Istream::Emit(Opcode::Enum op, u32 val1, u32 val2) {
   67|  33.9k|  Emit(op);
   68|  33.9k|  EmitInternal(val1);
   69|  33.9k|  EmitInternal(val2);
   70|  33.9k|}
_ZN4wabt6interp7Istream4EmitENS_6Opcode4EnumEjjh:
   72|    897|void Istream::Emit(Opcode::Enum op, u32 val1, u32 val2, u8 val3) {
   73|    897|  Emit(op);
   74|    897|  EmitInternal(val1);
   75|    897|  EmitInternal(val2);
   76|    897|  EmitInternal(val3);
   77|    897|}
_ZN4wabt6interp7Istream12EmitDropKeepEjj:
   79|  15.4k|void Istream::EmitDropKeep(u32 drop, u32 keep) {
   80|  15.4k|  if (drop > 0) {
  ------------------
  |  Branch (80:7): [True: 5.58k, False: 9.85k]
  ------------------
   81|  5.58k|    if (drop == 1 && keep == 0) {
  ------------------
  |  Branch (81:9): [True: 800, False: 4.78k]
  |  Branch (81:22): [True: 717, False: 83]
  ------------------
   82|    717|      Emit(Opcode::Drop);
   83|  4.86k|    } else {
   84|  4.86k|      Emit(Opcode::InterpDropKeep, drop, keep);
   85|  4.86k|    }
   86|  5.58k|  }
   87|  15.4k|}
_ZN4wabt6interp7Istream13EmitCatchDropEj:
   89|  11.3k|void Istream::EmitCatchDrop(u32 drop) {
   90|  11.3k|  if (drop > 0) {
  ------------------
  |  Branch (90:7): [True: 0, False: 11.3k]
  ------------------
   91|      0|    Emit(Opcode::InterpCatchDrop, drop);
   92|      0|  }
   93|  11.3k|}
_ZN4wabt6interp7Istream12EmitFixupU32Ev:
   95|  2.31k|Istream::Offset Istream::EmitFixupU32() {
   96|  2.31k|  auto result = end();
   97|  2.31k|  EmitInternal(kInvalidOffset);
   98|  2.31k|  return result;
   99|  2.31k|}
_ZN4wabt6interp7Istream15ResolveFixupU32Ej:
  101|  3.18k|void Istream::ResolveFixupU32(Offset fixup_offset) {
  102|  3.18k|  EmitAt(fixup_offset, end());
  103|  3.18k|}
_ZNK4wabt6interp7Istream3endEv:
  105|  1.04M|Istream::Offset Istream::end() const {
  106|  1.04M|  return static_cast<u32>(data_.size());
  107|  1.04M|}
_ZN4wabt6interp7Istream12EmitInternalIjEEvT_:
   34|   988k|void WABT_VECTORCALL Istream::EmitInternal(T val) {
   35|   988k|  EmitAt(end(), val);
   36|   988k|}
_ZN4wabt6interp7Istream12EmitInternalIhEEvT_:
   34|  4.01k|void WABT_VECTORCALL Istream::EmitInternal(T val) {
   35|  4.01k|  EmitAt(end(), val);
   36|  4.01k|}
_ZN4wabt6interp7Istream6EmitAtIhEEvjT_:
   25|  4.01k|void WABT_VECTORCALL Istream::EmitAt(Offset offset, T val) {
   26|  4.01k|  u32 new_size = offset + sizeof(T);
   27|  4.01k|  if (new_size > data_.size()) {
  ------------------
  |  Branch (27:7): [True: 4.01k, False: 0]
  ------------------
   28|  4.01k|    data_.resize(new_size);
   29|  4.01k|  }
   30|  4.01k|  memcpy(data_.data() + offset, &val, sizeof(val));
   31|  4.01k|}
_ZN4wabt6interp7Istream12EmitInternalImEEvT_:
   34|  9.23k|void WABT_VECTORCALL Istream::EmitInternal(T val) {
   35|  9.23k|  EmitAt(end(), val);
   36|  9.23k|}
_ZN4wabt6interp7Istream6EmitAtImEEvjT_:
   25|  9.23k|void WABT_VECTORCALL Istream::EmitAt(Offset offset, T val) {
   26|  9.23k|  u32 new_size = offset + sizeof(T);
   27|  9.23k|  if (new_size > data_.size()) {
  ------------------
  |  Branch (27:7): [True: 9.23k, False: 0]
  ------------------
   28|  9.23k|    data_.resize(new_size);
   29|  9.23k|  }
   30|  9.23k|  memcpy(data_.data() + offset, &val, sizeof(val));
   31|  9.23k|}
_ZN4wabt6interp7Istream12EmitInternalI4v128EEvT_:
   34|  4.60k|void WABT_VECTORCALL Istream::EmitInternal(T val) {
   35|  4.60k|  EmitAt(end(), val);
   36|  4.60k|}
_ZN4wabt6interp7Istream6EmitAtI4v128EEvjT_:
   25|  4.60k|void WABT_VECTORCALL Istream::EmitAt(Offset offset, T val) {
   26|  4.60k|  u32 new_size = offset + sizeof(T);
   27|  4.60k|  if (new_size > data_.size()) {
  ------------------
  |  Branch (27:7): [True: 4.60k, False: 0]
  ------------------
   28|  4.60k|    data_.resize(new_size);
   29|  4.60k|  }
   30|  4.60k|  memcpy(data_.data() + offset, &val, sizeof(val));
   31|  4.60k|}
_ZN4wabt6interp7Istream6EmitAtIjEEvjT_:
   25|   991k|void WABT_VECTORCALL Istream::EmitAt(Offset offset, T val) {
   26|   991k|  u32 new_size = offset + sizeof(T);
   27|   991k|  if (new_size > data_.size()) {
  ------------------
  |  Branch (27:7): [True: 988k, False: 3.18k]
  ------------------
   28|   988k|    data_.resize(new_size);
   29|   988k|  }
   30|   991k|  memcpy(data_.data() + offset, &val, sizeof(val));
   31|   991k|}

_ZN4wabt3VarC2Ev:
  591|   296k|Var::Var() : Var(kInvalidIndex, Location()) {}
_ZN4wabt3VarC2EjRKNS_8LocationE:
  594|   425k|    : loc(loc), type_(VarType::Index), index_(index) {}
_ZN4wabt3VarC2EOS0_:
  599|    473|Var::Var(Var&& rhs) : Var() {
  600|    473|  *this = std::move(rhs);
  601|    473|}
_ZN4wabt3VarC2ERKS0_:
  603|   296k|Var::Var(const Var& rhs) : Var() {
  604|   296k|  *this = rhs;
  605|   296k|}
_ZN4wabt3VaraSEOS0_:
  607|    473|Var& Var::operator=(Var&& rhs) {
  608|    473|  loc = rhs.loc;
  609|    473|  if (rhs.is_index()) {
  ------------------
  |  Branch (609:7): [True: 473, False: 0]
  ------------------
  610|    473|    set_index(rhs.index_);
  611|    473|  } else {
  612|      0|    set_name(rhs.name_);
  613|      0|  }
  614|    473|  return *this;
  615|    473|}
_ZN4wabt3VaraSERKS0_:
  617|   296k|Var& Var::operator=(const Var& rhs) {
  618|   296k|  loc = rhs.loc;
  619|   296k|  if (rhs.is_index()) {
  ------------------
  |  Branch (619:7): [True: 296k, False: 0]
  ------------------
  620|   296k|    set_index(rhs.index_);
  621|   296k|  } else {
  622|      0|    set_name(rhs.name_);
  623|      0|  }
  624|   296k|  return *this;
  625|   296k|}
_ZN4wabt3VarD2Ev:
  627|   425k|Var::~Var() {
  628|   425k|  Destroy();
  629|   425k|}
_ZN4wabt3Var9set_indexEj:
  631|   296k|void Var::set_index(Index index) {
  632|   296k|  Destroy();
  633|   296k|  type_ = VarType::Index;
  634|   296k|  index_ = index;
  635|   296k|}
_ZN4wabt3Var7DestroyEv:
  647|   722k|void Var::Destroy() {
  648|   722k|  if (is_name()) {
  ------------------
  |  Branch (648:7): [True: 0, False: 722k]
  ------------------
  649|      0|    Destruct(name_);
  650|      0|  }
  651|   722k|}

_ZN4wabt17WriteU32Leb128RawEPhS0_j:
   86|     34|Offset WriteU32Leb128Raw(uint8_t* dest, uint8_t* dest_end, uint32_t value) {
   87|     34|  uint8_t data[MAX_U32_LEB128_BYTES];
   88|     34|  Offset length = 0;
   89|     34|  LEB128_LOOP_UNTIL(value == 0);
  ------------------
  |  |   38|     65|  do {                              \
  |  |   39|     65|    uint8_t byte = value & 0x7f;    \
  |  |   40|     65|    value >>= 7;                    \
  |  |   41|     65|    if (end_cond) {                 \
  |  |  ------------------
  |  |  |  Branch (41:9): [True: 34, False: 31]
  |  |  ------------------
  |  |   42|     34|      data[length++] = byte;        \
  |  |   43|     34|      break;                        \
  |  |   44|     34|    } else {                        \
  |  |   45|     31|      data[length++] = byte | 0x80; \
  |  |   46|     31|    }                               \
  |  |   47|     65|  } while (1)
  |  |  ------------------
  |  |  |  Branch (47:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
   90|     34|  if (static_cast<Offset>(dest_end - dest) < length) {
  ------------------
  |  Branch (90:7): [True: 0, False: 34]
  ------------------
   91|      0|    return 0;
   92|      0|  }
   93|     34|  memcpy(dest, data, length);
   94|     34|  return length;
   95|     34|}
_ZN4wabt13ReadU32Leb128EPKhS1_Pj:
  184|  2.93M|                     uint32_t* out_value) {
  185|  2.93M|  if (p < end && (p[0] & 0x80) == 0) {
  ------------------
  |  Branch (185:7): [True: 2.17M, False: 763k]
  |  Branch (185:18): [True: 1.89M, False: 276k]
  ------------------
  186|  1.89M|    *out_value = LEB128_1(uint32_t);
  ------------------
  |  |  166|  1.89M|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  ------------------
  |  |  |  |  164|  1.89M|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  ------------------
  187|  1.89M|    return 1;
  188|  1.89M|  } else if (p + 1 < end && (p[1] & 0x80) == 0) {
  ------------------
  |  Branch (188:14): [True: 274k, False: 765k]
  |  Branch (188:29): [True: 250k, False: 24.0k]
  ------------------
  189|   250k|    *out_value = LEB128_2(uint32_t);
  ------------------
  |  |  167|   250k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  164|   250k|#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|   250k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|   250k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  190|   250k|    return 2;
  191|   789k|  } else if (p + 2 < end && (p[2] & 0x80) == 0) {
  ------------------
  |  Branch (191:14): [True: 23.9k, False: 765k]
  |  Branch (191:29): [True: 20.3k, False: 3.52k]
  ------------------
  192|  20.3k|    *out_value = LEB128_3(uint32_t);
  ------------------
  |  |  168|  20.3k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  164|  20.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|  20.3k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  20.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|  20.3k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  20.3k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  193|  20.3k|    return 3;
  194|   768k|  } else if (p + 3 < end && (p[3] & 0x80) == 0) {
  ------------------
  |  Branch (194:14): [True: 3.48k, False: 765k]
  |  Branch (194:29): [True: 533, False: 2.94k]
  ------------------
  195|    533|    *out_value = LEB128_4(uint32_t);
  ------------------
  |  |  169|    533|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  164|    533|#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|    533|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    533|#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|    533|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    533|#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|    533|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|    533|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  196|    533|    return 4;
  197|   768k|  } else if (p + 4 < end && (p[4] & 0x80) == 0) {
  ------------------
  |  Branch (197:14): [True: 2.90k, False: 765k]
  |  Branch (197:29): [True: 1.26k, False: 1.63k]
  ------------------
  198|       |    // The top bits set represent values > 32 bits.
  199|  1.26k|    if (p[4] & 0xf0) {
  ------------------
  |  Branch (199:9): [True: 92, False: 1.17k]
  ------------------
  200|     92|      return 0;
  201|     92|    }
  202|  1.17k|    *out_value = LEB128_5(uint32_t);
  ------------------
  |  |  170|  1.17k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  164|  1.17k|#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.17k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.17k|#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.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))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  203|  1.17k|    return 5;
  204|   766k|  } else {
  205|       |    // past the end.
  206|   766k|    *out_value = 0;
  207|   766k|    return 0;
  208|   766k|  }
  209|  2.93M|}
_ZN4wabt13ReadU64Leb128EPKhS1_Pm:
  213|  19.6k|                     uint64_t* out_value) {
  214|  19.6k|  if (p < end && (p[0] & 0x80) == 0) {
  ------------------
  |  Branch (214:7): [True: 19.6k, False: 0]
  |  Branch (214:18): [True: 15.9k, False: 3.75k]
  ------------------
  215|  15.9k|    *out_value = LEB128_1(uint64_t);
  ------------------
  |  |  166|  15.9k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  ------------------
  |  |  |  |  164|  15.9k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  ------------------
  216|  15.9k|    return 1;
  217|  15.9k|  } else if (p + 1 < end && (p[1] & 0x80) == 0) {
  ------------------
  |  Branch (217:14): [True: 3.75k, False: 0]
  |  Branch (217:29): [True: 363, False: 3.39k]
  ------------------
  218|    363|    *out_value = LEB128_2(uint64_t);
  ------------------
  |  |  167|    363|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  164|    363|#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|    363|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    363|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  219|    363|    return 2;
  220|  3.39k|  } else if (p + 2 < end && (p[2] & 0x80) == 0) {
  ------------------
  |  Branch (220:14): [True: 3.39k, False: 0]
  |  Branch (220:29): [True: 849, False: 2.54k]
  ------------------
  221|    849|    *out_value = LEB128_3(uint64_t);
  ------------------
  |  |  168|    849|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  164|    849|#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|    849|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    849|#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|    849|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|    849|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  222|    849|    return 3;
  223|  2.54k|  } else if (p + 3 < end && (p[3] & 0x80) == 0) {
  ------------------
  |  Branch (223:14): [True: 2.54k, False: 1]
  |  Branch (223:29): [True: 1.30k, False: 1.23k]
  ------------------
  224|  1.30k|    *out_value = LEB128_4(uint64_t);
  ------------------
  |  |  169|  1.30k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  164|  1.30k|#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.30k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.30k|#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.30k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.30k|#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.30k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  1.30k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  225|  1.30k|    return 4;
  226|  1.30k|  } else if (p + 4 < end && (p[4] & 0x80) == 0) {
  ------------------
  |  Branch (226:14): [True: 1.23k, False: 1]
  |  Branch (226:29): [True: 1.22k, False: 12]
  ------------------
  227|  1.22k|    *out_value = LEB128_5(uint64_t);
  ------------------
  |  |  170|  1.22k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  164|  1.22k|#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.22k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.22k|#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.22k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.22k|#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.22k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  1.22k|#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.22k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.22k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  228|  1.22k|    return 5;
  229|  1.22k|  } else if (p + 5 < end && (p[5] & 0x80) == 0) {
  ------------------
  |  Branch (229:14): [True: 12, False: 1]
  |  Branch (229:29): [True: 1, False: 11]
  ------------------
  230|      1|    *out_value = LEB128_6(uint64_t);
  ------------------
  |  |  171|      1|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  ------------------
  |  |  |  |  164|      1|#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|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|      1|#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|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|      1|#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|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|      1|#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|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|      1|#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|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      1|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  231|      1|    return 6;
  232|     12|  } else if (p + 6 < end && (p[6] & 0x80) == 0) {
  ------------------
  |  Branch (232:14): [True: 11, False: 1]
  |  Branch (232:29): [True: 5, False: 6]
  ------------------
  233|      5|    *out_value = LEB128_7(uint64_t);
  ------------------
  |  |  172|      5|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  ------------------
  |  |  |  |  164|      5|#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|      5|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|      5|#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|      5|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|      5|#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|      5|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|      5|#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|      5|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|      5|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  167|      5|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      5|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  166|      5|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      5|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  234|      5|    return 7;
  235|      7|  } else if (p + 7 < end && (p[7] & 0x80) == 0) {
  ------------------
  |  Branch (235:14): [True: 6, False: 1]
  |  Branch (235:29): [True: 6, False: 0]
  ------------------
  236|      6|    *out_value = LEB128_8(uint64_t);
  ------------------
  |  |  173|      6|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  ------------------
  |  |  |  |  164|      6|#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|      6|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|      6|#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|      6|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|      6|#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|      6|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|      6|#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|      6|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|      6|#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|      6|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      6|#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|      6|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      6|#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|      6|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      6|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  237|      6|    return 8;
  238|      6|  } else if (p + 8 < end && (p[8] & 0x80) == 0) {
  ------------------
  |  Branch (238:14): [True: 0, False: 1]
  |  Branch (238:29): [True: 0, False: 0]
  ------------------
  239|      0|    *out_value = LEB128_9(uint64_t);
  ------------------
  |  |  174|      0|#define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  ------------------
  |  |  |  |  164|      0|#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|      0|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      0|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  240|      0|    return 9;
  241|      1|  } else if (p + 9 < end && (p[9] & 0x80) == 0) {
  ------------------
  |  Branch (241:14): [True: 0, False: 1]
  |  Branch (241:29): [True: 0, False: 0]
  ------------------
  242|       |    // The top bits set represent values > 64 bits.
  243|      0|    if (p[9] & 0xfe) {
  ------------------
  |  Branch (243:9): [True: 0, False: 0]
  ------------------
  244|      0|      return 0;
  245|      0|    }
  246|      0|    *out_value = LEB128_10(uint64_t);
  ------------------
  |  |  175|      0|#define LEB128_10(type) (BYTE_AT(type, 9, 63) | LEB128_9(type))
  |  |  ------------------
  |  |  |  |  164|      0|#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|      0|#define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      0|#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|      0|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|      0|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  247|      0|    return 10;
  248|      1|  } else {
  249|       |    // past the end.
  250|      1|    *out_value = 0;
  251|      1|    return 0;
  252|      1|  }
  253|  19.6k|}
_ZN4wabt13ReadS32Leb128EPKhS1_Pj:
  257|   133k|                     uint32_t* out_value) {
  258|   133k|  if (p < end && (p[0] & 0x80) == 0) {
  ------------------
  |  Branch (258:7): [True: 132k, False: 193]
  |  Branch (258:18): [True: 122k, False: 10.7k]
  ------------------
  259|   122k|    uint32_t result = LEB128_1(uint32_t);
  ------------------
  |  |  166|   122k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  ------------------
  |  |  |  |  164|   122k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  ------------------
  260|   122k|    *out_value = SIGN_EXTEND(int32_t, result, 6);
  ------------------
  |  |  179|   122k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|   122k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|   122k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|   122k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  261|   122k|    return 1;
  262|   122k|  } else if (p + 1 < end && (p[1] & 0x80) == 0) {
  ------------------
  |  Branch (262:14): [True: 10.7k, False: 207]
  |  Branch (262:29): [True: 2.18k, False: 8.59k]
  ------------------
  263|  2.18k|    uint32_t result = LEB128_2(uint32_t);
  ------------------
  |  |  167|  2.18k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  164|  2.18k|#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.18k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  2.18k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  264|  2.18k|    *out_value = SIGN_EXTEND(int32_t, result, 13);
  ------------------
  |  |  179|  2.18k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  2.18k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  2.18k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  2.18k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  265|  2.18k|    return 2;
  266|  8.80k|  } else if (p + 2 < end && (p[2] & 0x80) == 0) {
  ------------------
  |  Branch (266:14): [True: 8.59k, False: 207]
  |  Branch (266:29): [True: 1.15k, False: 7.43k]
  ------------------
  267|  1.15k|    uint32_t result = LEB128_3(uint32_t);
  ------------------
  |  |  168|  1.15k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  164|  1.15k|#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.15k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.15k|#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.15k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.15k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  268|  1.15k|    *out_value = SIGN_EXTEND(int32_t, result, 20);
  ------------------
  |  |  179|  1.15k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  1.15k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  1.15k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  1.15k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  269|  1.15k|    return 3;
  270|  7.64k|  } else if (p + 3 < end && (p[3] & 0x80) == 0) {
  ------------------
  |  Branch (270:14): [True: 7.43k, False: 207]
  |  Branch (270:29): [True: 1.36k, False: 6.07k]
  ------------------
  271|  1.36k|    uint32_t result = LEB128_4(uint32_t);
  ------------------
  |  |  169|  1.36k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  164|  1.36k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  |  |               #define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  168|  1.36k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.36k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  167|  1.36k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.36k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  166|  1.36k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  1.36k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  272|  1.36k|    *out_value = SIGN_EXTEND(int32_t, result, 27);
  ------------------
  |  |  179|  1.36k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  1.36k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  1.36k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  1.36k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  273|  1.36k|    return 4;
  274|  6.28k|  } else if (p + 4 < end && (p[4] & 0x80) == 0) {
  ------------------
  |  Branch (274:14): [True: 6.07k, False: 207]
  |  Branch (274:29): [True: 6.06k, False: 14]
  ------------------
  275|       |    // The top bits should be a sign-extension of the sign bit.
  276|  6.06k|    bool sign_bit_set = (p[4] & 0x8);
  277|  6.06k|    int top_bits = p[4] & 0xf0;
  278|  6.06k|    if ((sign_bit_set && top_bits != 0x70) ||
  ------------------
  |  Branch (278:10): [True: 1.97k, False: 4.09k]
  |  Branch (278:26): [True: 222, False: 1.75k]
  ------------------
  279|  6.06k|        (!sign_bit_set && top_bits != 0)) {
  ------------------
  |  Branch (279:10): [True: 4.09k, False: 1.75k]
  |  Branch (279:27): [True: 37, False: 4.05k]
  ------------------
  280|    259|      return 0;
  281|    259|    }
  282|  5.80k|    uint32_t result = LEB128_5(uint32_t);
  ------------------
  |  |  170|  5.80k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  164|  5.80k|#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|  5.80k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  5.80k|#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|  5.80k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  5.80k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |               #define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  167|  5.80k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  5.80k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |               #define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  166|  5.80k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  5.80k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  283|  5.80k|    *out_value = result;
  284|  5.80k|    return 5;
  285|  6.06k|  } else {
  286|       |    // Past the end.
  287|    221|    return 0;
  288|    221|  }
  289|   133k|}
_ZN4wabt13ReadS64Leb128EPKhS1_Pm:
  293|  6.78k|                     uint64_t* out_value) {
  294|  6.78k|  if (p < end && (p[0] & 0x80) == 0) {
  ------------------
  |  Branch (294:7): [True: 6.78k, False: 0]
  |  Branch (294:18): [True: 1.09k, False: 5.69k]
  ------------------
  295|  1.09k|    uint64_t result = LEB128_1(uint64_t);
  ------------------
  |  |  166|  1.09k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  ------------------
  |  |  |  |  164|  1.09k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  ------------------
  ------------------
  296|  1.09k|    *out_value = SIGN_EXTEND(int64_t, result, 6);
  ------------------
  |  |  179|  1.09k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  1.09k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  1.09k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  1.09k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  297|  1.09k|    return 1;
  298|  5.69k|  } else if (p + 1 < end && (p[1] & 0x80) == 0) {
  ------------------
  |  Branch (298:14): [True: 5.69k, False: 0]
  |  Branch (298:29): [True: 438, False: 5.25k]
  ------------------
  299|    438|    uint64_t result = LEB128_2(uint64_t);
  ------------------
  |  |  167|    438|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  ------------------
  |  |  |  |  164|    438|#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|    438|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|    438|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  300|    438|    *out_value = SIGN_EXTEND(int64_t, result, 13);
  ------------------
  |  |  179|    438|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|    438|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|    438|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|    438|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  301|    438|    return 2;
  302|  5.25k|  } else if (p + 2 < end && (p[2] & 0x80) == 0) {
  ------------------
  |  Branch (302:14): [True: 5.25k, False: 0]
  |  Branch (302:29): [True: 35, False: 5.22k]
  ------------------
  303|     35|    uint64_t result = LEB128_3(uint64_t);
  ------------------
  |  |  168|     35|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  ------------------
  |  |  |  |  164|     35|#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|     35|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|     35|#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|     35|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|     35|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  304|     35|    *out_value = SIGN_EXTEND(int64_t, result, 20);
  ------------------
  |  |  179|     35|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|     35|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|     35|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|     35|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  305|     35|    return 3;
  306|  5.22k|  } else if (p + 3 < end && (p[3] & 0x80) == 0) {
  ------------------
  |  Branch (306:14): [True: 5.22k, False: 0]
  |  Branch (306:29): [True: 71, False: 5.14k]
  ------------------
  307|     71|    uint64_t result = LEB128_4(uint64_t);
  ------------------
  |  |  169|     71|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  ------------------
  |  |  |  |  164|     71|#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|     71|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|     71|#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|     71|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|     71|#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|     71|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|     71|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  308|     71|    *out_value = SIGN_EXTEND(int64_t, result, 27);
  ------------------
  |  |  179|     71|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|     71|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|     71|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|     71|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  309|     71|    return 4;
  310|  5.14k|  } else if (p + 4 < end && (p[4] & 0x80) == 0) {
  ------------------
  |  Branch (310:14): [True: 5.14k, False: 0]
  |  Branch (310:29): [True: 25, False: 5.12k]
  ------------------
  311|     25|    uint64_t result = LEB128_5(uint64_t);
  ------------------
  |  |  170|     25|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  ------------------
  |  |  |  |  164|     25|#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|     25|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|     25|#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|     25|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|     25|#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|     25|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|     25|#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|     25|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|     25|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  312|     25|    *out_value = SIGN_EXTEND(int64_t, result, 34);
  ------------------
  |  |  179|     25|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|     25|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|     25|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|     25|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  313|     25|    return 5;
  314|  5.12k|  } else if (p + 5 < end && (p[5] & 0x80) == 0) {
  ------------------
  |  Branch (314:14): [True: 5.12k, False: 0]
  |  Branch (314:29): [True: 21, False: 5.10k]
  ------------------
  315|     21|    uint64_t result = LEB128_6(uint64_t);
  ------------------
  |  |  171|     21|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  ------------------
  |  |  |  |  164|     21|#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|     21|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|     21|#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|     21|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|     21|#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|     21|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|     21|#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|     21|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|     21|#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|     21|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|     21|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  316|     21|    *out_value = SIGN_EXTEND(int64_t, result, 41);
  ------------------
  |  |  179|     21|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|     21|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|     21|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|     21|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  317|     21|    return 6;
  318|  5.10k|  } else if (p + 6 < end && (p[6] & 0x80) == 0) {
  ------------------
  |  Branch (318:14): [True: 5.10k, False: 0]
  |  Branch (318:29): [True: 62, False: 5.04k]
  ------------------
  319|     62|    uint64_t result = LEB128_7(uint64_t);
  ------------------
  |  |  172|     62|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  ------------------
  |  |  |  |  164|     62|#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|     62|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|     62|#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|     62|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|     62|#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|     62|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|     62|#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|     62|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|     62|#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|     62|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|     62|#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|     62|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|     62|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  320|     62|    *out_value = SIGN_EXTEND(int64_t, result, 48);
  ------------------
  |  |  179|     62|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|     62|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|     62|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|     62|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  321|     62|    return 7;
  322|  5.04k|  } else if (p + 7 < end && (p[7] & 0x80) == 0) {
  ------------------
  |  Branch (322:14): [True: 5.04k, False: 0]
  |  Branch (322:29): [True: 58, False: 4.98k]
  ------------------
  323|     58|    uint64_t result = LEB128_8(uint64_t);
  ------------------
  |  |  173|     58|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  ------------------
  |  |  |  |  164|     58|#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|     58|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|     58|#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|     58|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|     58|#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|     58|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|     58|#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|     58|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|     58|#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|     58|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|     58|#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|     58|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|     58|#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|     58|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|     58|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  324|     58|    *out_value = SIGN_EXTEND(int64_t, result, 55);
  ------------------
  |  |  179|     58|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|     58|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|     58|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|     58|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  325|     58|    return 8;
  326|  4.98k|  } else if (p + 8 < end && (p[8] & 0x80) == 0) {
  ------------------
  |  Branch (326:14): [True: 4.98k, False: 0]
  |  Branch (326:29): [True: 1.34k, False: 3.63k]
  ------------------
  327|  1.34k|    uint64_t result = LEB128_9(uint64_t);
  ------------------
  |  |  174|  1.34k|#define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  ------------------
  |  |  |  |  164|  1.34k|#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|  1.34k|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  1.34k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  ------------------
  |  |  |  |               #define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  172|  1.34k|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  1.34k|#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.34k|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  1.34k|#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.34k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.34k|#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.34k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.34k|#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.34k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.34k|#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.34k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.34k|#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.34k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  1.34k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  328|  1.34k|    *out_value = SIGN_EXTEND(int64_t, result, 62);
  ------------------
  |  |  179|  1.34k|  (static_cast<type>((value) << SHIFT_AMOUNT(type, sign_bit)) >> \
  |  |  ------------------
  |  |  |  |  177|  1.34k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  |  |  180|  1.34k|   SHIFT_AMOUNT(type, sign_bit))
  |  |  ------------------
  |  |  |  |  177|  1.34k|#define SHIFT_AMOUNT(type, sign_bit) (sizeof(type) * 8 - 1 - (sign_bit))
  |  |  ------------------
  ------------------
  329|  1.34k|    return 9;
  330|  3.63k|  } else if (p + 9 < end && (p[9] & 0x80) == 0) {
  ------------------
  |  Branch (330:14): [True: 3.63k, False: 0]
  |  Branch (330:29): [True: 3.63k, False: 0]
  ------------------
  331|       |    // The top bits should be a sign-extension of the sign bit.
  332|  3.63k|    bool sign_bit_set = (p[9] & 0x1);
  333|  3.63k|    int top_bits = p[9] & 0xfe;
  334|  3.63k|    if ((sign_bit_set && top_bits != 0x7e) ||
  ------------------
  |  Branch (334:10): [True: 374, False: 3.26k]
  |  Branch (334:26): [True: 2, False: 372]
  ------------------
  335|  3.63k|        (!sign_bit_set && top_bits != 0)) {
  ------------------
  |  Branch (335:10): [True: 3.26k, False: 372]
  |  Branch (335:27): [True: 0, False: 3.26k]
  ------------------
  336|      2|      return 0;
  337|      2|    }
  338|  3.63k|    uint64_t result = LEB128_10(uint64_t);
  ------------------
  |  |  175|  3.63k|#define LEB128_10(type) (BYTE_AT(type, 9, 63) | LEB128_9(type))
  |  |  ------------------
  |  |  |  |  164|  3.63k|#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|  3.63k|#define LEB128_9(type) (BYTE_AT(type, 8, 56) | LEB128_8(type))
  |  |  |  |  ------------------
  |  |  |  |  |  |  164|  3.63k|#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|  3.63k|#define LEB128_8(type) (BYTE_AT(type, 7, 49) | LEB128_7(type))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  164|  3.63k|#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|  3.63k|#define LEB128_7(type) (BYTE_AT(type, 6, 42) | LEB128_6(type))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  164|  3.63k|#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|  3.63k|#define LEB128_6(type) (BYTE_AT(type, 5, 35) | LEB128_5(type))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  164|  3.63k|#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|  3.63k|#define LEB128_5(type) (BYTE_AT(type, 4, 28) | LEB128_4(type))
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  3.63k|#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|  3.63k|#define LEB128_4(type) (BYTE_AT(type, 3, 21) | LEB128_3(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  3.63k|#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.63k|#define LEB128_3(type) (BYTE_AT(type, 2, 14) | LEB128_2(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  3.63k|#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.63k|#define LEB128_2(type) (BYTE_AT(type, 1, 7) | LEB128_1(type))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  3.63k|#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.63k|#define LEB128_1(type) (BYTE_AT(type, 0, 0))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  164|  3.63k|#define BYTE_AT(type, i, shift) ((static_cast<type>(p[i]) & 0x7f) << (shift))
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  339|  3.63k|    *out_value = result;
  340|  3.63k|    return 10;
  341|  3.63k|  } else {
  342|       |    // Past the end.
  343|      0|    return 0;
  344|      0|  }
  345|  6.78k|}

_ZNK4wabt6Opcode7GetInfoEv:
   41|   902k|Opcode::Info Opcode::GetInfo() const {
   42|   902k|  if (enum_ < Invalid) {
  ------------------
  |  Branch (42:7): [True: 902k, False: 286]
  ------------------
   43|   902k|    return infos_[enum_];
   44|   902k|  }
   45|       |
   46|    286|  Info invalid_info = infos_[Opcode::Invalid];
   47|    286|  DecodeInvalidOpcode(enum_, &invalid_info.prefix, &invalid_info.code);
   48|    286|  invalid_info.prefix_code = PrefixCode(invalid_info.prefix, invalid_info.code);
   49|    286|  return invalid_info;
   50|   902k|}
_ZNK4wabt6Opcode9IsEnabledERKNS_8FeaturesE:
   64|   793k|bool Opcode::IsEnabled(const Features& features) const {
   65|   793k|  switch (enum_) {
   66|     35|    case Opcode::Try:
  ------------------
  |  Branch (66:5): [True: 35, False: 793k]
  ------------------
   67|     41|    case Opcode::Catch:
  ------------------
  |  Branch (67:5): [True: 6, False: 793k]
  ------------------
   68|     42|    case Opcode::Delegate:
  ------------------
  |  Branch (68:5): [True: 1, False: 793k]
  ------------------
   69|     48|    case Opcode::Throw:
  ------------------
  |  Branch (69:5): [True: 6, False: 793k]
  ------------------
   70|     83|    case Opcode::ThrowRef:
  ------------------
  |  Branch (70:5): [True: 35, False: 793k]
  ------------------
   71|     85|    case Opcode::TryTable:
  ------------------
  |  Branch (71:5): [True: 2, False: 793k]
  ------------------
   72|     91|    case Opcode::Rethrow:
  ------------------
  |  Branch (72:5): [True: 6, False: 793k]
  ------------------
   73|     91|      return features.exceptions_enabled();
   74|       |
   75|     32|    case Opcode::ReturnCallIndirect:
  ------------------
  |  Branch (75:5): [True: 32, False: 793k]
  ------------------
   76|     50|    case Opcode::ReturnCall:
  ------------------
  |  Branch (76:5): [True: 18, False: 793k]
  ------------------
   77|     50|      return features.tail_call_enabled();
   78|       |
   79|    984|    case Opcode::I32TruncSatF32S:
  ------------------
  |  Branch (79:5): [True: 984, False: 792k]
  ------------------
   80|  4.23k|    case Opcode::I32TruncSatF32U:
  ------------------
  |  Branch (80:5): [True: 3.24k, False: 790k]
  ------------------
   81|  4.51k|    case Opcode::I32TruncSatF64S:
  ------------------
  |  Branch (81:5): [True: 283, False: 793k]
  ------------------
   82|  5.33k|    case Opcode::I32TruncSatF64U:
  ------------------
  |  Branch (82:5): [True: 824, False: 793k]
  ------------------
   83|  6.24k|    case Opcode::I64TruncSatF32S:
  ------------------
  |  Branch (83:5): [True: 906, False: 793k]
  ------------------
   84|  6.54k|    case Opcode::I64TruncSatF32U:
  ------------------
  |  Branch (84:5): [True: 301, False: 793k]
  ------------------
   85|  6.85k|    case Opcode::I64TruncSatF64S:
  ------------------
  |  Branch (85:5): [True: 307, False: 793k]
  ------------------
   86|  6.93k|    case Opcode::I64TruncSatF64U:
  ------------------
  |  Branch (86:5): [True: 84, False: 793k]
  ------------------
   87|  6.93k|      return features.sat_float_to_int_enabled();
   88|       |
   89|  4.89k|    case Opcode::I32Extend8S:
  ------------------
  |  Branch (89:5): [True: 4.89k, False: 789k]
  ------------------
   90|  5.57k|    case Opcode::I32Extend16S:
  ------------------
  |  Branch (90:5): [True: 680, False: 793k]
  ------------------
   91|  6.98k|    case Opcode::I64Extend8S:
  ------------------
  |  Branch (91:5): [True: 1.41k, False: 792k]
  ------------------
   92|  7.96k|    case Opcode::I64Extend16S:
  ------------------
  |  Branch (92:5): [True: 977, False: 792k]
  ------------------
   93|  9.43k|    case Opcode::I64Extend32S:
  ------------------
  |  Branch (93:5): [True: 1.46k, False: 792k]
  ------------------
   94|  9.43k|      return features.sign_extension_enabled();
   95|       |
   96|      1|    case Opcode::MemoryAtomicNotify:
  ------------------
  |  Branch (96:5): [True: 1, False: 793k]
  ------------------
   97|      1|    case Opcode::MemoryAtomicWait32:
  ------------------
  |  Branch (97:5): [True: 0, False: 793k]
  ------------------
   98|      1|    case Opcode::MemoryAtomicWait64:
  ------------------
  |  Branch (98:5): [True: 0, False: 793k]
  ------------------
   99|    258|    case Opcode::AtomicFence:
  ------------------
  |  Branch (99:5): [True: 257, False: 793k]
  ------------------
  100|    258|    case Opcode::I32AtomicLoad:
  ------------------
  |  Branch (100:5): [True: 0, False: 793k]
  ------------------
  101|    258|    case Opcode::I64AtomicLoad:
  ------------------
  |  Branch (101:5): [True: 0, False: 793k]
  ------------------
  102|    258|    case Opcode::I32AtomicLoad8U:
  ------------------
  |  Branch (102:5): [True: 0, False: 793k]
  ------------------
  103|    258|    case Opcode::I32AtomicLoad16U:
  ------------------
  |  Branch (103:5): [True: 0, False: 793k]
  ------------------
  104|    258|    case Opcode::I64AtomicLoad8U:
  ------------------
  |  Branch (104:5): [True: 0, False: 793k]
  ------------------
  105|    258|    case Opcode::I64AtomicLoad16U:
  ------------------
  |  Branch (105:5): [True: 0, False: 793k]
  ------------------
  106|    258|    case Opcode::I64AtomicLoad32U:
  ------------------
  |  Branch (106:5): [True: 0, False: 793k]
  ------------------
  107|    258|    case Opcode::I32AtomicStore:
  ------------------
  |  Branch (107:5): [True: 0, False: 793k]
  ------------------
  108|    258|    case Opcode::I64AtomicStore:
  ------------------
  |  Branch (108:5): [True: 0, False: 793k]
  ------------------
  109|    258|    case Opcode::I32AtomicStore8:
  ------------------
  |  Branch (109:5): [True: 0, False: 793k]
  ------------------
  110|    258|    case Opcode::I32AtomicStore16:
  ------------------
  |  Branch (110:5): [True: 0, False: 793k]
  ------------------
  111|    258|    case Opcode::I64AtomicStore8:
  ------------------
  |  Branch (111:5): [True: 0, False: 793k]
  ------------------
  112|    258|    case Opcode::I64AtomicStore16:
  ------------------
  |  Branch (112:5): [True: 0, False: 793k]
  ------------------
  113|    258|    case Opcode::I64AtomicStore32:
  ------------------
  |  Branch (113:5): [True: 0, False: 793k]
  ------------------
  114|    258|    case Opcode::I32AtomicRmwAdd:
  ------------------
  |  Branch (114:5): [True: 0, False: 793k]
  ------------------
  115|    258|    case Opcode::I64AtomicRmwAdd:
  ------------------
  |  Branch (115:5): [True: 0, False: 793k]
  ------------------
  116|    258|    case Opcode::I32AtomicRmw8AddU:
  ------------------
  |  Branch (116:5): [True: 0, False: 793k]
  ------------------
  117|    258|    case Opcode::I32AtomicRmw16AddU:
  ------------------
  |  Branch (117:5): [True: 0, False: 793k]
  ------------------
  118|    258|    case Opcode::I64AtomicRmw8AddU:
  ------------------
  |  Branch (118:5): [True: 0, False: 793k]
  ------------------
  119|    258|    case Opcode::I64AtomicRmw16AddU:
  ------------------
  |  Branch (119:5): [True: 0, False: 793k]
  ------------------
  120|    258|    case Opcode::I64AtomicRmw32AddU:
  ------------------
  |  Branch (120:5): [True: 0, False: 793k]
  ------------------
  121|    258|    case Opcode::I32AtomicRmwSub:
  ------------------
  |  Branch (121:5): [True: 0, False: 793k]
  ------------------
  122|    258|    case Opcode::I64AtomicRmwSub:
  ------------------
  |  Branch (122:5): [True: 0, False: 793k]
  ------------------
  123|    258|    case Opcode::I32AtomicRmw8SubU:
  ------------------
  |  Branch (123:5): [True: 0, False: 793k]
  ------------------
  124|    258|    case Opcode::I32AtomicRmw16SubU:
  ------------------
  |  Branch (124:5): [True: 0, False: 793k]
  ------------------
  125|    258|    case Opcode::I64AtomicRmw8SubU:
  ------------------
  |  Branch (125:5): [True: 0, False: 793k]
  ------------------
  126|    258|    case Opcode::I64AtomicRmw16SubU:
  ------------------
  |  Branch (126:5): [True: 0, False: 793k]
  ------------------
  127|    258|    case Opcode::I64AtomicRmw32SubU:
  ------------------
  |  Branch (127:5): [True: 0, False: 793k]
  ------------------
  128|    258|    case Opcode::I32AtomicRmwAnd:
  ------------------
  |  Branch (128:5): [True: 0, False: 793k]
  ------------------
  129|    258|    case Opcode::I64AtomicRmwAnd:
  ------------------
  |  Branch (129:5): [True: 0, False: 793k]
  ------------------
  130|    258|    case Opcode::I32AtomicRmw8AndU:
  ------------------
  |  Branch (130:5): [True: 0, False: 793k]
  ------------------
  131|    258|    case Opcode::I32AtomicRmw16AndU:
  ------------------
  |  Branch (131:5): [True: 0, False: 793k]
  ------------------
  132|    258|    case Opcode::I64AtomicRmw8AndU:
  ------------------
  |  Branch (132:5): [True: 0, False: 793k]
  ------------------
  133|    258|    case Opcode::I64AtomicRmw16AndU:
  ------------------
  |  Branch (133:5): [True: 0, False: 793k]
  ------------------
  134|    258|    case Opcode::I64AtomicRmw32AndU:
  ------------------
  |  Branch (134:5): [True: 0, False: 793k]
  ------------------
  135|    258|    case Opcode::I32AtomicRmwOr:
  ------------------
  |  Branch (135:5): [True: 0, False: 793k]
  ------------------
  136|    258|    case Opcode::I64AtomicRmwOr:
  ------------------
  |  Branch (136:5): [True: 0, False: 793k]
  ------------------
  137|    386|    case Opcode::I32AtomicRmw8OrU:
  ------------------
  |  Branch (137:5): [True: 128, False: 793k]
  ------------------
  138|    386|    case Opcode::I32AtomicRmw16OrU:
  ------------------
  |  Branch (138:5): [True: 0, False: 793k]
  ------------------
  139|    386|    case Opcode::I64AtomicRmw8OrU:
  ------------------
  |  Branch (139:5): [True: 0, False: 793k]
  ------------------
  140|    386|    case Opcode::I64AtomicRmw16OrU:
  ------------------
  |  Branch (140:5): [True: 0, False: 793k]
  ------------------
  141|    386|    case Opcode::I64AtomicRmw32OrU:
  ------------------
  |  Branch (141:5): [True: 0, False: 793k]
  ------------------
  142|    386|    case Opcode::I32AtomicRmwXor:
  ------------------
  |  Branch (142:5): [True: 0, False: 793k]
  ------------------
  143|    386|    case Opcode::I64AtomicRmwXor:
  ------------------
  |  Branch (143:5): [True: 0, False: 793k]
  ------------------
  144|    386|    case Opcode::I32AtomicRmw8XorU:
  ------------------
  |  Branch (144:5): [True: 0, False: 793k]
  ------------------
  145|    386|    case Opcode::I32AtomicRmw16XorU:
  ------------------
  |  Branch (145:5): [True: 0, False: 793k]
  ------------------
  146|    386|    case Opcode::I64AtomicRmw8XorU:
  ------------------
  |  Branch (146:5): [True: 0, False: 793k]
  ------------------
  147|    386|    case Opcode::I64AtomicRmw16XorU:
  ------------------
  |  Branch (147:5): [True: 0, False: 793k]
  ------------------
  148|    386|    case Opcode::I64AtomicRmw32XorU:
  ------------------
  |  Branch (148:5): [True: 0, False: 793k]
  ------------------
  149|    386|    case Opcode::I32AtomicRmwXchg:
  ------------------
  |  Branch (149:5): [True: 0, False: 793k]
  ------------------
  150|    386|    case Opcode::I64AtomicRmwXchg:
  ------------------
  |  Branch (150:5): [True: 0, False: 793k]
  ------------------
  151|    386|    case Opcode::I32AtomicRmw8XchgU:
  ------------------
  |  Branch (151:5): [True: 0, False: 793k]
  ------------------
  152|    386|    case Opcode::I32AtomicRmw16XchgU:
  ------------------
  |  Branch (152:5): [True: 0, False: 793k]
  ------------------
  153|    386|    case Opcode::I64AtomicRmw8XchgU:
  ------------------
  |  Branch (153:5): [True: 0, False: 793k]
  ------------------
  154|    386|    case Opcode::I64AtomicRmw16XchgU:
  ------------------
  |  Branch (154:5): [True: 0, False: 793k]
  ------------------
  155|    386|    case Opcode::I64AtomicRmw32XchgU:
  ------------------
  |  Branch (155:5): [True: 0, False: 793k]
  ------------------
  156|    386|    case Opcode::I32AtomicRmwCmpxchg:
  ------------------
  |  Branch (156:5): [True: 0, False: 793k]
  ------------------
  157|    386|    case Opcode::I64AtomicRmwCmpxchg:
  ------------------
  |  Branch (157:5): [True: 0, False: 793k]
  ------------------
  158|    386|    case Opcode::I32AtomicRmw8CmpxchgU:
  ------------------
  |  Branch (158:5): [True: 0, False: 793k]
  ------------------
  159|    386|    case Opcode::I32AtomicRmw16CmpxchgU:
  ------------------
  |  Branch (159:5): [True: 0, False: 793k]
  ------------------
  160|    386|    case Opcode::I64AtomicRmw8CmpxchgU:
  ------------------
  |  Branch (160:5): [True: 0, False: 793k]
  ------------------
  161|    386|    case Opcode::I64AtomicRmw16CmpxchgU:
  ------------------
  |  Branch (161:5): [True: 0, False: 793k]
  ------------------
  162|    386|    case Opcode::I64AtomicRmw32CmpxchgU:
  ------------------
  |  Branch (162:5): [True: 0, False: 793k]
  ------------------
  163|    386|      return features.threads_enabled();
  164|       |
  165|  4.60k|    case Opcode::V128Const:
  ------------------
  |  Branch (165:5): [True: 4.60k, False: 789k]
  ------------------
  166|  6.08k|    case Opcode::V128Load:
  ------------------
  |  Branch (166:5): [True: 1.47k, False: 792k]
  ------------------
  167|  6.10k|    case Opcode::V128Store:
  ------------------
  |  Branch (167:5): [True: 16, False: 793k]
  ------------------
  168|  6.50k|    case Opcode::I8X16Splat:
  ------------------
  |  Branch (168:5): [True: 401, False: 793k]
  ------------------
  169|  6.74k|    case Opcode::I16X8Splat:
  ------------------
  |  Branch (169:5): [True: 243, False: 793k]
  ------------------
  170|  7.06k|    case Opcode::I32X4Splat:
  ------------------
  |  Branch (170:5): [True: 319, False: 793k]
  ------------------
  171|  7.73k|    case Opcode::I64X2Splat:
  ------------------
  |  Branch (171:5): [True: 675, False: 793k]
  ------------------
  172|  7.95k|    case Opcode::F32X4Splat:
  ------------------
  |  Branch (172:5): [True: 212, False: 793k]
  ------------------
  173|  8.37k|    case Opcode::F64X2Splat:
  ------------------
  |  Branch (173:5): [True: 420, False: 793k]
  ------------------
  174|  8.66k|    case Opcode::I8X16ExtractLaneS:
  ------------------
  |  Branch (174:5): [True: 298, False: 793k]
  ------------------
  175|  8.84k|    case Opcode::I8X16ExtractLaneU:
  ------------------
  |  Branch (175:5): [True: 172, False: 793k]
  ------------------
  176|  8.96k|    case Opcode::I16X8ExtractLaneS:
  ------------------
  |  Branch (176:5): [True: 126, False: 793k]
  ------------------
  177|  9.29k|    case Opcode::I16X8ExtractLaneU:
  ------------------
  |  Branch (177:5): [True: 325, False: 793k]
  ------------------
  178|  9.38k|    case Opcode::I32X4ExtractLane:
  ------------------
  |  Branch (178:5): [True: 95, False: 793k]
  ------------------
  179|  10.0k|    case Opcode::I64X2ExtractLane:
  ------------------
  |  Branch (179:5): [True: 622, False: 793k]
  ------------------
  180|  10.7k|    case Opcode::F32X4ExtractLane:
  ------------------
  |  Branch (180:5): [True: 750, False: 793k]
  ------------------
  181|  11.2k|    case Opcode::F64X2ExtractLane:
  ------------------
  |  Branch (181:5): [True: 457, False: 793k]
  ------------------
  182|  11.2k|    case Opcode::I8X16ReplaceLane:
  ------------------
  |  Branch (182:5): [True: 72, False: 793k]
  ------------------
  183|  11.4k|    case Opcode::I16X8ReplaceLane:
  ------------------
  |  Branch (183:5): [True: 176, False: 793k]
  ------------------
  184|  11.4k|    case Opcode::I32X4ReplaceLane:
  ------------------
  |  Branch (184:5): [True: 7, False: 793k]
  ------------------
  185|  11.4k|    case Opcode::I64X2ReplaceLane:
  ------------------
  |  Branch (185:5): [True: 0, False: 793k]
  ------------------
  186|  11.4k|    case Opcode::F32X4ReplaceLane:
  ------------------
  |  Branch (186:5): [True: 16, False: 793k]
  ------------------
  187|  11.4k|    case Opcode::F64X2ReplaceLane:
  ------------------
  |  Branch (187:5): [True: 0, False: 793k]
  ------------------
  188|  11.4k|    case Opcode::I8X16Add:
  ------------------
  |  Branch (188:5): [True: 0, False: 793k]
  ------------------
  189|  11.6k|    case Opcode::I16X8Add:
  ------------------
  |  Branch (189:5): [True: 200, False: 793k]
  ------------------
  190|  11.6k|    case Opcode::I32X4Add:
  ------------------
  |  Branch (190:5): [True: 0, False: 793k]
  ------------------
  191|  11.6k|    case Opcode::I64X2Add:
  ------------------
  |  Branch (191:5): [True: 0, False: 793k]
  ------------------
  192|  11.6k|    case Opcode::I8X16Sub:
  ------------------
  |  Branch (192:5): [True: 0, False: 793k]
  ------------------
  193|  11.6k|    case Opcode::I16X8Sub:
  ------------------
  |  Branch (193:5): [True: 0, False: 793k]
  ------------------
  194|  11.6k|    case Opcode::I32X4Sub:
  ------------------
  |  Branch (194:5): [True: 0, False: 793k]
  ------------------
  195|  11.7k|    case Opcode::I64X2Sub:
  ------------------
  |  Branch (195:5): [True: 14, False: 793k]
  ------------------
  196|  11.7k|    case Opcode::I16X8Mul:
  ------------------
  |  Branch (196:5): [True: 2, False: 793k]
  ------------------
  197|  11.7k|    case Opcode::I32X4Mul:
  ------------------
  |  Branch (197:5): [True: 0, False: 793k]
  ------------------
  198|  11.8k|    case Opcode::I8X16Neg:
  ------------------
  |  Branch (198:5): [True: 104, False: 793k]
  ------------------
  199|  13.9k|    case Opcode::I16X8Neg:
  ------------------
  |  Branch (199:5): [True: 2.16k, False: 791k]
  ------------------
  200|  14.3k|    case Opcode::I32X4Neg:
  ------------------
  |  Branch (200:5): [True: 348, False: 793k]
  ------------------
  201|  15.4k|    case Opcode::I64X2Neg:
  ------------------
  |  Branch (201:5): [True: 1.11k, False: 792k]
  ------------------
  202|  15.4k|    case Opcode::I8X16AddSatS:
  ------------------
  |  Branch (202:5): [True: 66, False: 793k]
  ------------------
  203|  15.4k|    case Opcode::I8X16AddSatU:
  ------------------
  |  Branch (203:5): [True: 0, False: 793k]
  ------------------
  204|  15.6k|    case Opcode::I16X8AddSatS:
  ------------------
  |  Branch (204:5): [True: 139, False: 793k]
  ------------------
  205|  15.6k|    case Opcode::I16X8AddSatU:
  ------------------
  |  Branch (205:5): [True: 0, False: 793k]
  ------------------
  206|  15.6k|    case Opcode::I8X16SubSatS:
  ------------------
  |  Branch (206:5): [True: 0, False: 793k]
  ------------------
  207|  15.6k|    case Opcode::I8X16SubSatU:
  ------------------
  |  Branch (207:5): [True: 1, False: 793k]
  ------------------
  208|  15.6k|    case Opcode::I16X8SubSatS:
  ------------------
  |  Branch (208:5): [True: 0, False: 793k]
  ------------------
  209|  15.6k|    case Opcode::I16X8SubSatU:
  ------------------
  |  Branch (209:5): [True: 0, False: 793k]
  ------------------
  210|  15.6k|    case Opcode::I8X16Shl:
  ------------------
  |  Branch (210:5): [True: 0, False: 793k]
  ------------------
  211|  15.6k|    case Opcode::I16X8Shl:
  ------------------
  |  Branch (211:5): [True: 0, False: 793k]
  ------------------
  212|  15.6k|    case Opcode::I32X4Shl:
  ------------------
  |  Branch (212:5): [True: 9, False: 793k]
  ------------------
  213|  15.6k|    case Opcode::I64X2Shl:
  ------------------
  |  Branch (213:5): [True: 2, False: 793k]
  ------------------
  214|  15.7k|    case Opcode::I8X16ShrS:
  ------------------
  |  Branch (214:5): [True: 52, False: 793k]
  ------------------
  215|  15.7k|    case Opcode::I8X16ShrU:
  ------------------
  |  Branch (215:5): [True: 35, False: 793k]
  ------------------
  216|  15.7k|    case Opcode::I16X8ShrS:
  ------------------
  |  Branch (216:5): [True: 0, False: 793k]
  ------------------
  217|  15.7k|    case Opcode::I16X8ShrU:
  ------------------
  |  Branch (217:5): [True: 25, False: 793k]
  ------------------
  218|  15.7k|    case Opcode::I32X4ShrS:
  ------------------
  |  Branch (218:5): [True: 0, False: 793k]
  ------------------
  219|  15.7k|    case Opcode::I32X4ShrU:
  ------------------
  |  Branch (219:5): [True: 0, False: 793k]
  ------------------
  220|  15.7k|    case Opcode::I64X2ShrS:
  ------------------
  |  Branch (220:5): [True: 8, False: 793k]
  ------------------
  221|  15.7k|    case Opcode::I64X2ShrU:
  ------------------
  |  Branch (221:5): [True: 13, False: 793k]
  ------------------
  222|  15.7k|    case Opcode::V128And:
  ------------------
  |  Branch (222:5): [True: 0, False: 793k]
  ------------------
  223|  15.7k|    case Opcode::V128Or:
  ------------------
  |  Branch (223:5): [True: 0, False: 793k]
  ------------------
  224|  18.8k|    case Opcode::V128Xor:
  ------------------
  |  Branch (224:5): [True: 3.06k, False: 790k]
  ------------------
  225|  19.7k|    case Opcode::V128Not:
  ------------------
  |  Branch (225:5): [True: 852, False: 793k]
  ------------------
  226|  19.7k|    case Opcode::V128BitSelect:
  ------------------
  |  Branch (226:5): [True: 6, False: 793k]
  ------------------
  227|  19.7k|    case Opcode::V128AnyTrue:
  ------------------
  |  Branch (227:5): [True: 0, False: 793k]
  ------------------
  228|  19.7k|    case Opcode::I8X16Bitmask:
  ------------------
  |  Branch (228:5): [True: 79, False: 793k]
  ------------------
  229|  19.8k|    case Opcode::I16X8Bitmask:
  ------------------
  |  Branch (229:5): [True: 96, False: 793k]
  ------------------
  230|  20.2k|    case Opcode::I32X4Bitmask:
  ------------------
  |  Branch (230:5): [True: 381, False: 793k]
  ------------------
  231|  20.5k|    case Opcode::I64X2Bitmask:
  ------------------
  |  Branch (231:5): [True: 245, False: 793k]
  ------------------
  232|  20.7k|    case Opcode::I8X16AllTrue:
  ------------------
  |  Branch (232:5): [True: 242, False: 793k]
  ------------------
  233|  21.0k|    case Opcode::I16X8AllTrue:
  ------------------
  |  Branch (233:5): [True: 305, False: 793k]
  ------------------
  234|  21.2k|    case Opcode::I32X4AllTrue:
  ------------------
  |  Branch (234:5): [True: 237, False: 793k]
  ------------------
  235|  21.6k|    case Opcode::I64X2AllTrue:
  ------------------
  |  Branch (235:5): [True: 309, False: 793k]
  ------------------
  236|  21.6k|    case Opcode::I8X16Eq:
  ------------------
  |  Branch (236:5): [True: 0, False: 793k]
  ------------------
  237|  21.6k|    case Opcode::I16X8Eq:
  ------------------
  |  Branch (237:5): [True: 29, False: 793k]
  ------------------
  238|  21.6k|    case Opcode::I32X4Eq:
  ------------------
  |  Branch (238:5): [True: 12, False: 793k]
  ------------------
  239|  23.3k|    case Opcode::F32X4Eq:
  ------------------
  |  Branch (239:5): [True: 1.67k, False: 792k]
  ------------------
  240|  23.3k|    case Opcode::F64X2Eq:
  ------------------
  |  Branch (240:5): [True: 0, False: 793k]
  ------------------
  241|  23.3k|    case Opcode::I8X16Ne:
  ------------------
  |  Branch (241:5): [True: 72, False: 793k]
  ------------------
  242|  23.3k|    case Opcode::I16X8Ne:
  ------------------
  |  Branch (242:5): [True: 0, False: 793k]
  ------------------
  243|  23.4k|    case Opcode::I32X4Ne:
  ------------------
  |  Branch (243:5): [True: 34, False: 793k]
  ------------------
  244|  23.4k|    case Opcode::F32X4Ne:
  ------------------
  |  Branch (244:5): [True: 0, False: 793k]
  ------------------
  245|  23.4k|    case Opcode::F64X2Ne:
  ------------------
  |  Branch (245:5): [True: 0, False: 793k]
  ------------------
  246|  23.4k|    case Opcode::I8X16LtS:
  ------------------
  |  Branch (246:5): [True: 2, False: 793k]
  ------------------
  247|  23.7k|    case Opcode::I8X16LtU:
  ------------------
  |  Branch (247:5): [True: 360, False: 793k]
  ------------------
  248|  23.8k|    case Opcode::I16X8LtS:
  ------------------
  |  Branch (248:5): [True: 19, False: 793k]
  ------------------
  249|  24.3k|    case Opcode::I16X8LtU:
  ------------------
  |  Branch (249:5): [True: 567, False: 793k]
  ------------------
  250|  25.5k|    case Opcode::I32X4LtS:
  ------------------
  |  Branch (250:5): [True: 1.20k, False: 792k]
  ------------------
  251|  26.1k|    case Opcode::I32X4LtU:
  ------------------
  |  Branch (251:5): [True: 611, False: 793k]
  ------------------
  252|  26.1k|    case Opcode::F32X4Lt:
  ------------------
  |  Branch (252:5): [True: 0, False: 793k]
  ------------------
  253|  26.3k|    case Opcode::F64X2Lt:
  ------------------
  |  Branch (253:5): [True: 132, False: 793k]
  ------------------
  254|  28.1k|    case Opcode::I8X16LeS:
  ------------------
  |  Branch (254:5): [True: 1.85k, False: 792k]
  ------------------
  255|  28.1k|    case Opcode::I8X16LeU:
  ------------------
  |  Branch (255:5): [True: 0, False: 793k]
  ------------------
  256|  28.5k|    case Opcode::I16X8LeS:
  ------------------
  |  Branch (256:5): [True: 424, False: 793k]
  ------------------
  257|  28.9k|    case Opcode::I16X8LeU:
  ------------------
  |  Branch (257:5): [True: 375, False: 793k]
  ------------------
  258|  29.0k|    case Opcode::I32X4LeS:
  ------------------
  |  Branch (258:5): [True: 45, False: 793k]
  ------------------
  259|  29.0k|    case Opcode::I32X4LeU:
  ------------------
  |  Branch (259:5): [True: 1, False: 793k]
  ------------------
  260|  29.0k|    case Opcode::F32X4Le:
  ------------------
  |  Branch (260:5): [True: 0, False: 793k]
  ------------------
  261|  29.0k|    case Opcode::F64X2Le:
  ------------------
  |  Branch (261:5): [True: 10, False: 793k]
  ------------------
  262|  29.0k|    case Opcode::I8X16GtS:
  ------------------
  |  Branch (262:5): [True: 0, False: 793k]
  ------------------
  263|  29.0k|    case Opcode::I8X16GtU:
  ------------------
  |  Branch (263:5): [True: 0, False: 793k]
  ------------------
  264|  30.0k|    case Opcode::I16X8GtS:
  ------------------
  |  Branch (264:5): [True: 981, False: 792k]
  ------------------
  265|  30.2k|    case Opcode::I16X8GtU:
  ------------------
  |  Branch (265:5): [True: 224, False: 793k]
  ------------------
  266|  30.2k|    case Opcode::I32X4GtS:
  ------------------
  |  Branch (266:5): [True: 11, False: 793k]
  ------------------
  267|  30.2k|    case Opcode::I32X4GtU:
  ------------------
  |  Branch (267:5): [True: 0, False: 793k]
  ------------------
  268|  30.2k|    case Opcode::F32X4Gt:
  ------------------
  |  Branch (268:5): [True: 1, False: 793k]
  ------------------
  269|  30.2k|    case Opcode::F64X2Gt:
  ------------------
  |  Branch (269:5): [True: 3, False: 793k]
  ------------------
  270|  30.2k|    case Opcode::I8X16GeS:
  ------------------
  |  Branch (270:5): [True: 2, False: 793k]
  ------------------
  271|  30.9k|    case Opcode::I8X16GeU:
  ------------------
  |  Branch (271:5): [True: 661, False: 793k]
  ------------------
  272|  31.1k|    case Opcode::I16X8GeS:
  ------------------
  |  Branch (272:5): [True: 283, False: 793k]
  ------------------
  273|  31.2k|    case Opcode::I16X8GeU:
  ------------------
  |  Branch (273:5): [True: 35, False: 793k]
  ------------------
  274|  31.2k|    case Opcode::I32X4GeS:
  ------------------
  |  Branch (274:5): [True: 6, False: 793k]
  ------------------
  275|  31.2k|    case Opcode::I32X4GeU:
  ------------------
  |  Branch (275:5): [True: 20, False: 793k]
  ------------------
  276|  31.2k|    case Opcode::F32X4Ge:
  ------------------
  |  Branch (276:5): [True: 1, False: 793k]
  ------------------
  277|  31.2k|    case Opcode::F64X2Ge:
  ------------------
  |  Branch (277:5): [True: 0, False: 793k]
  ------------------
  278|  35.9k|    case Opcode::F32X4Neg:
  ------------------
  |  Branch (278:5): [True: 4.71k, False: 789k]
  ------------------
  279|  36.2k|    case Opcode::F64X2Neg:
  ------------------
  |  Branch (279:5): [True: 269, False: 793k]
  ------------------
  280|  36.4k|    case Opcode::F32X4Abs:
  ------------------
  |  Branch (280:5): [True: 194, False: 793k]
  ------------------
  281|  36.5k|    case Opcode::F64X2Abs:
  ------------------
  |  Branch (281:5): [True: 99, False: 793k]
  ------------------
  282|  36.5k|    case Opcode::F32X4Min:
  ------------------
  |  Branch (282:5): [True: 0, False: 793k]
  ------------------
  283|  36.6k|    case Opcode::F32X4PMin:
  ------------------
  |  Branch (283:5): [True: 154, False: 793k]
  ------------------
  284|  36.6k|    case Opcode::F64X2Min:
  ------------------
  |  Branch (284:5): [True: 13, False: 793k]
  ------------------
  285|  36.6k|    case Opcode::F64X2PMin:
  ------------------
  |  Branch (285:5): [True: 0, False: 793k]
  ------------------
  286|  36.6k|    case Opcode::F32X4Max:
  ------------------
  |  Branch (286:5): [True: 0, False: 793k]
  ------------------
  287|  36.6k|    case Opcode::F32X4PMax:
  ------------------
  |  Branch (287:5): [True: 0, False: 793k]
  ------------------
  288|  36.6k|    case Opcode::F64X2Max:
  ------------------
  |  Branch (288:5): [True: 0, False: 793k]
  ------------------
  289|  36.7k|    case Opcode::F64X2PMax:
  ------------------
  |  Branch (289:5): [True: 38, False: 793k]
  ------------------
  290|  36.7k|    case Opcode::F32X4Add:
  ------------------
  |  Branch (290:5): [True: 0, False: 793k]
  ------------------
  291|  36.7k|    case Opcode::F64X2Add:
  ------------------
  |  Branch (291:5): [True: 0, False: 793k]
  ------------------
  292|  36.7k|    case Opcode::F32X4Sub:
  ------------------
  |  Branch (292:5): [True: 0, False: 793k]
  ------------------
  293|  36.7k|    case Opcode::F64X2Sub:
  ------------------
  |  Branch (293:5): [True: 0, False: 793k]
  ------------------
  294|  36.7k|    case Opcode::F32X4Div:
  ------------------
  |  Branch (294:5): [True: 0, False: 793k]
  ------------------
  295|  36.7k|    case Opcode::F64X2Div:
  ------------------
  |  Branch (295:5): [True: 0, False: 793k]
  ------------------
  296|  36.7k|    case Opcode::F32X4Mul:
  ------------------
  |  Branch (296:5): [True: 1, False: 793k]
  ------------------
  297|  36.7k|    case Opcode::F64X2Mul:
  ------------------
  |  Branch (297:5): [True: 0, False: 793k]
  ------------------
  298|  37.1k|    case Opcode::F32X4Sqrt:
  ------------------
  |  Branch (298:5): [True: 402, False: 793k]
  ------------------
  299|  37.4k|    case Opcode::F64X2Sqrt:
  ------------------
  |  Branch (299:5): [True: 310, False: 793k]
  ------------------
  300|  39.1k|    case Opcode::F32X4ConvertI32X4S:
  ------------------
  |  Branch (300:5): [True: 1.68k, False: 792k]
  ------------------
  301|  39.3k|    case Opcode::F32X4ConvertI32X4U:
  ------------------
  |  Branch (301:5): [True: 197, False: 793k]
  ------------------
  302|  40.6k|    case Opcode::I32X4TruncSatF32X4S:
  ------------------
  |  Branch (302:5): [True: 1.32k, False: 792k]
  ------------------
  303|  41.2k|    case Opcode::I32X4TruncSatF32X4U:
  ------------------
  |  Branch (303:5): [True: 636, False: 793k]
  ------------------
  304|  41.2k|    case Opcode::I8X16Swizzle:
  ------------------
  |  Branch (304:5): [True: 1, False: 793k]
  ------------------
  305|  41.2k|    case Opcode::I8X16Shuffle:
  ------------------
  |  Branch (305:5): [True: 2, False: 793k]
  ------------------
  306|  41.5k|    case Opcode::V128Load8Splat:
  ------------------
  |  Branch (306:5): [True: 250, False: 793k]
  ------------------
  307|  41.6k|    case Opcode::V128Load16Splat:
  ------------------
  |  Branch (307:5): [True: 152, False: 793k]
  ------------------
  308|  41.8k|    case Opcode::V128Load32Splat:
  ------------------
  |  Branch (308:5): [True: 154, False: 793k]
  ------------------
  309|  41.9k|    case Opcode::V128Load64Splat:
  ------------------
  |  Branch (309:5): [True: 56, False: 793k]
  ------------------
  310|  41.9k|    case Opcode::V128Load8Lane:
  ------------------
  |  Branch (310:5): [True: 11, False: 793k]
  ------------------
  311|  41.9k|    case Opcode::V128Load16Lane:
  ------------------
  |  Branch (311:5): [True: 4, False: 793k]
  ------------------
  312|  41.9k|    case Opcode::V128Load32Lane:
  ------------------
  |  Branch (312:5): [True: 52, False: 793k]
  ------------------
  313|  41.9k|    case Opcode::V128Load64Lane:
  ------------------
  |  Branch (313:5): [True: 20, False: 793k]
  ------------------
  314|  42.0k|    case Opcode::V128Store8Lane:
  ------------------
  |  Branch (314:5): [True: 37, False: 793k]
  ------------------
  315|  42.8k|    case Opcode::V128Store16Lane:
  ------------------
  |  Branch (315:5): [True: 773, False: 793k]
  ------------------
  316|  42.8k|    case Opcode::V128Store32Lane:
  ------------------
  |  Branch (316:5): [True: 0, False: 793k]
  ------------------
  317|  42.8k|    case Opcode::V128Store64Lane:
  ------------------
  |  Branch (317:5): [True: 12, False: 793k]
  ------------------
  318|  47.1k|    case Opcode::I8X16Abs:
  ------------------
  |  Branch (318:5): [True: 4.36k, False: 789k]
  ------------------
  319|  47.9k|    case Opcode::I16X8Abs:
  ------------------
  |  Branch (319:5): [True: 717, False: 793k]
  ------------------
  320|  48.0k|    case Opcode::I32X4Abs:
  ------------------
  |  Branch (320:5): [True: 146, False: 793k]
  ------------------
  321|  48.0k|      return features.simd_enabled();
  322|       |
  323|      0|    case Opcode::I8X16RelaxedSwizzle:
  ------------------
  |  Branch (323:5): [True: 0, False: 793k]
  ------------------
  324|      0|    case Opcode::I32X4RelaxedTruncF32X4S:
  ------------------
  |  Branch (324:5): [True: 0, False: 793k]
  ------------------
  325|      0|    case Opcode::I32X4RelaxedTruncF32X4U:
  ------------------
  |  Branch (325:5): [True: 0, False: 793k]
  ------------------
  326|      0|    case Opcode::I32X4RelaxedTruncF64X2SZero:
  ------------------
  |  Branch (326:5): [True: 0, False: 793k]
  ------------------
  327|      0|    case Opcode::I32X4RelaxedTruncF64X2UZero:
  ------------------
  |  Branch (327:5): [True: 0, False: 793k]
  ------------------
  328|      8|    case Opcode::F32X4RelaxedMadd:
  ------------------
  |  Branch (328:5): [True: 8, False: 793k]
  ------------------
  329|      8|    case Opcode::F32X4RelaxedNmadd:
  ------------------
  |  Branch (329:5): [True: 0, False: 793k]
  ------------------
  330|      8|    case Opcode::F64X2RelaxedMadd:
  ------------------
  |  Branch (330:5): [True: 0, False: 793k]
  ------------------
  331|      8|    case Opcode::F64X2RelaxedNmadd:
  ------------------
  |  Branch (331:5): [True: 0, False: 793k]
  ------------------
  332|      8|    case Opcode::I8X16RelaxedLaneSelect:
  ------------------
  |  Branch (332:5): [True: 0, False: 793k]
  ------------------
  333|      8|    case Opcode::I16X8RelaxedLaneSelect:
  ------------------
  |  Branch (333:5): [True: 0, False: 793k]
  ------------------
  334|      8|    case Opcode::I32X4RelaxedLaneSelect:
  ------------------
  |  Branch (334:5): [True: 0, False: 793k]
  ------------------
  335|      8|    case Opcode::I64X2RelaxedLaneSelect:
  ------------------
  |  Branch (335:5): [True: 0, False: 793k]
  ------------------
  336|      8|    case Opcode::F32X4RelaxedMin:
  ------------------
  |  Branch (336:5): [True: 0, False: 793k]
  ------------------
  337|     15|    case Opcode::F32X4RelaxedMax:
  ------------------
  |  Branch (337:5): [True: 7, False: 793k]
  ------------------
  338|     23|    case Opcode::F64X2RelaxedMin:
  ------------------
  |  Branch (338:5): [True: 8, False: 793k]
  ------------------
  339|     23|    case Opcode::F64X2RelaxedMax:
  ------------------
  |  Branch (339:5): [True: 0, False: 793k]
  ------------------
  340|     23|    case Opcode::I16X8RelaxedQ15mulrS:
  ------------------
  |  Branch (340:5): [True: 0, False: 793k]
  ------------------
  341|     23|    case Opcode::I16X8DotI8X16I7X16S:
  ------------------
  |  Branch (341:5): [True: 0, False: 793k]
  ------------------
  342|     23|    case Opcode::I32X4DotI8X16I7X16AddS:
  ------------------
  |  Branch (342:5): [True: 0, False: 793k]
  ------------------
  343|     23|      return features.relaxed_simd_enabled();
  344|       |
  345|      0|    case Opcode::MemoryInit:
  ------------------
  |  Branch (345:5): [True: 0, False: 793k]
  ------------------
  346|    160|    case Opcode::DataDrop:
  ------------------
  |  Branch (346:5): [True: 160, False: 793k]
  ------------------
  347|    164|    case Opcode::MemoryCopy:
  ------------------
  |  Branch (347:5): [True: 4, False: 793k]
  ------------------
  348|    603|    case Opcode::MemoryFill:
  ------------------
  |  Branch (348:5): [True: 439, False: 793k]
  ------------------
  349|    633|    case Opcode::TableInit:
  ------------------
  |  Branch (349:5): [True: 30, False: 793k]
  ------------------
  350|  5.35k|    case Opcode::ElemDrop:
  ------------------
  |  Branch (350:5): [True: 4.72k, False: 789k]
  ------------------
  351|  5.47k|    case Opcode::TableCopy:
  ------------------
  |  Branch (351:5): [True: 118, False: 793k]
  ------------------
  352|  5.47k|      return features.bulk_memory_enabled();
  353|       |
  354|     83|    case Opcode::TableGet:
  ------------------
  |  Branch (354:5): [True: 83, False: 793k]
  ------------------
  355|     95|    case Opcode::TableSet:
  ------------------
  |  Branch (355:5): [True: 12, False: 793k]
  ------------------
  356|     96|    case Opcode::TableGrow:
  ------------------
  |  Branch (356:5): [True: 1, False: 793k]
  ------------------
  357|    334|    case Opcode::TableSize:
  ------------------
  |  Branch (357:5): [True: 238, False: 793k]
  ------------------
  358|  5.34k|    case Opcode::RefNull:
  ------------------
  |  Branch (358:5): [True: 5.01k, False: 788k]
  ------------------
  359|  5.56k|    case Opcode::RefIsNull:
  ------------------
  |  Branch (359:5): [True: 223, False: 793k]
  ------------------
  360|  5.56k|      return features.reference_types_enabled();
  361|       |
  362|    142|    case Opcode::CallRef:
  ------------------
  |  Branch (362:5): [True: 142, False: 793k]
  ------------------
  363|    142|      return features.function_references_enabled();
  364|       |
  365|       |    // Interpreter opcodes are never "enabled".
  366|      1|    case Opcode::InterpAlloca:
  ------------------
  |  Branch (366:5): [True: 1, False: 793k]
  ------------------
  367|      2|    case Opcode::InterpBrUnless:
  ------------------
  |  Branch (367:5): [True: 1, False: 793k]
  ------------------
  368|      6|    case Opcode::InterpCallImport:
  ------------------
  |  Branch (368:5): [True: 4, False: 793k]
  ------------------
  369|      6|    case Opcode::InterpData:
  ------------------
  |  Branch (369:5): [True: 0, False: 793k]
  ------------------
  370|      7|    case Opcode::InterpDropKeep:
  ------------------
  |  Branch (370:5): [True: 1, False: 793k]
  ------------------
  371|      7|      return false;
  372|       |
  373|   717k|    default:
  ------------------
  |  Branch (373:5): [True: 717k, False: 76.1k]
  ------------------
  374|   717k|      return true;
  375|   793k|  }
  376|   793k|}
_ZNK4wabt6Opcode16GetSimdLaneCountEv:
  378|  4.02k|uint32_t Opcode::GetSimdLaneCount() const {
  379|  4.02k|  switch (enum_) {
  380|    298|    case Opcode::I8X16ExtractLaneS:
  ------------------
  |  Branch (380:5): [True: 298, False: 3.72k]
  ------------------
  381|    470|    case Opcode::I8X16ExtractLaneU:
  ------------------
  |  Branch (381:5): [True: 172, False: 3.85k]
  ------------------
  382|    542|    case Opcode::I8X16ReplaceLane:
  ------------------
  |  Branch (382:5): [True: 72, False: 3.95k]
  ------------------
  383|    553|    case Opcode::V128Load8Lane:
  ------------------
  |  Branch (383:5): [True: 11, False: 4.01k]
  ------------------
  384|    590|    case Opcode::V128Store8Lane:
  ------------------
  |  Branch (384:5): [True: 37, False: 3.98k]
  ------------------
  385|    590|      return 16;
  386|      0|      break;
  387|    126|    case Opcode::I16X8ExtractLaneS:
  ------------------
  |  Branch (387:5): [True: 126, False: 3.89k]
  ------------------
  388|    451|    case Opcode::I16X8ExtractLaneU:
  ------------------
  |  Branch (388:5): [True: 325, False: 3.69k]
  ------------------
  389|    627|    case Opcode::I16X8ReplaceLane:
  ------------------
  |  Branch (389:5): [True: 176, False: 3.84k]
  ------------------
  390|    631|    case Opcode::V128Load16Lane:
  ------------------
  |  Branch (390:5): [True: 4, False: 4.02k]
  ------------------
  391|  1.40k|    case Opcode::V128Store16Lane:
  ------------------
  |  Branch (391:5): [True: 772, False: 3.25k]
  ------------------
  392|  1.40k|      return 8;
  393|      0|      break;
  394|    750|    case Opcode::F32X4ExtractLane:
  ------------------
  |  Branch (394:5): [True: 750, False: 3.27k]
  ------------------
  395|    766|    case Opcode::F32X4ReplaceLane:
  ------------------
  |  Branch (395:5): [True: 16, False: 4.00k]
  ------------------
  396|    861|    case Opcode::I32X4ExtractLane:
  ------------------
  |  Branch (396:5): [True: 95, False: 3.92k]
  ------------------
  397|    868|    case Opcode::I32X4ReplaceLane:
  ------------------
  |  Branch (397:5): [True: 7, False: 4.01k]
  ------------------
  398|    920|    case Opcode::V128Load32Lane:
  ------------------
  |  Branch (398:5): [True: 52, False: 3.97k]
  ------------------
  399|    920|    case Opcode::V128Store32Lane:
  ------------------
  |  Branch (399:5): [True: 0, False: 4.02k]
  ------------------
  400|    920|      return 4;
  401|      0|      break;
  402|    457|    case Opcode::F64X2ExtractLane:
  ------------------
  |  Branch (402:5): [True: 457, False: 3.56k]
  ------------------
  403|    457|    case Opcode::F64X2ReplaceLane:
  ------------------
  |  Branch (403:5): [True: 0, False: 4.02k]
  ------------------
  404|  1.07k|    case Opcode::I64X2ExtractLane:
  ------------------
  |  Branch (404:5): [True: 622, False: 3.40k]
  ------------------
  405|  1.07k|    case Opcode::I64X2ReplaceLane:
  ------------------
  |  Branch (405:5): [True: 0, False: 4.02k]
  ------------------
  406|  1.09k|    case Opcode::V128Load64Lane:
  ------------------
  |  Branch (406:5): [True: 20, False: 4.00k]
  ------------------
  407|  1.11k|    case Opcode::V128Store64Lane:
  ------------------
  |  Branch (407:5): [True: 12, False: 4.01k]
  ------------------
  408|  1.11k|      return 2;
  409|      0|      break;
  410|      0|    default:
  ------------------
  |  Branch (410:5): [True: 0, False: 4.02k]
  ------------------
  411|      0|      WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
  412|  4.02k|  }
  413|  4.02k|}
_ZNK4wabt6Opcode8GetBytesEv:
  416|    150|std::vector<uint8_t> Opcode::GetBytes() const {
  417|    150|  std::vector<uint8_t> result;
  418|    150|  if (HasPrefix()) {
  ------------------
  |  Branch (418:7): [True: 34, False: 116]
  ------------------
  419|     34|    result.push_back(GetPrefix());
  420|     34|    uint8_t buffer[5];
  421|     34|    Offset length =
  422|     34|        WriteU32Leb128Raw(buffer, buffer + sizeof(buffer), GetCode());
  423|     34|    assert(length != 0);
  424|     34|    result.insert(result.end(), buffer, buffer + length);
  425|    116|  } else {
  426|    116|    result.push_back(GetCode());
  427|    116|  }
  428|    150|  return result;
  429|    150|}

_ZN4wabt15SharedValidator12ToTypeVectorEjPKNS_4TypeE:
   25|  10.6k|TypeVector SharedValidator::ToTypeVector(Index count, const Type* types) {
   26|  10.6k|  return TypeVector(&types[0], &types[count]);
   27|  10.6k|}
_ZN4wabt15SharedValidatorC2EPNSt3__16vectorINS_5ErrorENS1_9allocatorIS3_EEEERKNS_15ValidateOptionsE:
   30|  1.35k|    : options_(options), errors_(errors), typechecker_(options.features) {
   31|  1.35k|  typechecker_.set_error_callback(
   32|  1.35k|      [this](const char* msg) { OnTypecheckerError(msg); });
   33|  1.35k|}
_ZN4wabt15SharedValidator10PrintErrorERKNS_8LocationEPKcz:
   37|    739|                                                            ...) {
   38|    739|  WABT_SNPRINTF_ALLOCA(buffer, length, format);
  ------------------
  |  |   36|    739|  va_list args;                                                            \
  |  |   37|    739|  va_list args_copy;                                                       \
  |  |   38|    739|  va_start(args, format);                                                  \
  |  |   39|    739|  va_copy(args_copy, args);                                                \
  |  |   40|    739|  char fixed_buf[WABT_DEFAULT_SNPRINTF_ALLOCA_BUFSIZE];                    \
  |  |   41|    739|  char* buffer = fixed_buf;                                                \
  |  |   42|    739|  size_t len = wabt_vsnprintf(fixed_buf, sizeof(fixed_buf), format, args); \
  |  |  ------------------
  |  |  |  |  288|    739|#define wabt_vsnprintf vsnprintf
  |  |  ------------------
  |  |   43|    739|  va_end(args);                                                            \
  |  |   44|    739|  if (len + 1 > sizeof(fixed_buf)) {                                       \
  |  |  ------------------
  |  |  |  Branch (44:7): [True: 23, False: 716]
  |  |  ------------------
  |  |   45|     23|    buffer = static_cast<char*>(alloca(len + 1));                          \
  |  |   46|     23|    len = wabt_vsnprintf(buffer, len + 1, format, args_copy);              \
  |  |  ------------------
  |  |  |  |  288|     23|#define wabt_vsnprintf vsnprintf
  |  |  ------------------
  |  |   47|     23|  }                                                                        \
  |  |   48|    739|  va_end(args_copy)
  ------------------
   39|    739|  errors_->emplace_back(ErrorLevel::Error, loc, buffer);
   40|    739|  return Result::Error;
   41|    739|}
_ZN4wabt15SharedValidator18OnTypecheckerErrorEPKc:
   43|    319|void SharedValidator::OnTypecheckerError(const char* msg) {
   44|    319|  PrintError(expr_loc_, "%s", msg);
   45|    319|}
_ZN4wabt15SharedValidator10OnFuncTypeERKNS_8LocationEjPKNS_4TypeEjS6_j:
   52|  4.52k|                                   Index type_index) {
   53|  4.52k|  Result result = Result::Ok;
   54|  4.52k|  if (!options_.features.multi_value_enabled() && result_count > 1) {
  ------------------
  |  Branch (54:7): [True: 0, False: 4.52k]
  |  Branch (54:51): [True: 0, False: 0]
  ------------------
   55|      0|    result |= PrintError(loc,
   56|      0|                         "multiple result values are not supported without "
   57|      0|                         "multi-value enabled.");
   58|      0|  }
   59|  4.52k|  func_types_.emplace(
   60|  4.52k|      num_types_++,
   61|  4.52k|      FuncType{ToTypeVector(param_count, param_types),
   62|  4.52k|               ToTypeVector(result_count, result_types), type_index});
   63|  4.52k|  return result;
   64|  4.52k|}
_ZN4wabt15SharedValidator10OnFunctionERKNS_8LocationENS_3VarE:
   94|  13.8k|Result SharedValidator::OnFunction(const Location& loc, Var sig_var) {
   95|  13.8k|  Result result = Result::Ok;
   96|  13.8k|  FuncType type;
   97|  13.8k|  result |= CheckFuncTypeIndex(sig_var, &type);
   98|  13.8k|  funcs_.push_back(type);
   99|  13.8k|  return result;
  100|  13.8k|}
_ZN4wabt15SharedValidator11CheckLimitsERKNS_8LocationERKNS_6LimitsEmPKc:
  105|  2.10k|                                    const char* desc) {
  106|  2.10k|  Result result = Result::Ok;
  107|  2.10k|  if (limits.initial > absolute_max) {
  ------------------
  |  Branch (107:7): [True: 2, False: 2.09k]
  ------------------
  108|      2|    result |=
  109|      2|        PrintError(loc, "initial %s (%" PRIu64 ") must be <= (%" PRIu64 ")",
  110|      2|                   desc, limits.initial, absolute_max);
  111|      2|  }
  112|       |
  113|  2.10k|  if (limits.has_max) {
  ------------------
  |  Branch (113:7): [True: 1.69k, False: 404]
  ------------------
  114|  1.69k|    if (limits.max > absolute_max) {
  ------------------
  |  Branch (114:9): [True: 0, False: 1.69k]
  ------------------
  115|      0|      result |= PrintError(loc, "max %s (%" PRIu64 ") must be <= (%" PRIu64 ")",
  116|      0|                           desc, limits.max, absolute_max);
  117|      0|    }
  118|       |
  119|  1.69k|    if (limits.max < limits.initial) {
  ------------------
  |  Branch (119:9): [True: 6, False: 1.69k]
  ------------------
  120|      6|      result |= PrintError(
  121|      6|          loc, "max %s (%" PRIu64 ") must be >= initial %s (%" PRIu64 ")", desc,
  122|      6|          limits.max, desc, limits.initial);
  123|      6|    }
  124|  1.69k|  }
  125|  2.10k|  return result;
  126|  2.10k|}
_ZN4wabt15SharedValidator7OnTableERKNS_8LocationENS_4TypeERKNS_6LimitsE:
  130|  1.44k|                                const Limits& limits) {
  131|  1.44k|  Result result = Result::Ok;
  132|  1.44k|  if (tables_.size() > 0 && !options_.features.reference_types_enabled()) {
  ------------------
  |  Branch (132:7): [True: 1.00k, False: 444]
  |  Branch (132:29): [True: 0, False: 1.00k]
  ------------------
  133|      0|    result |= PrintError(loc, "only one table allowed");
  134|      0|  }
  135|  1.44k|  result |= CheckLimits(loc, limits, UINT32_MAX, "elems");
  136|       |
  137|  1.44k|  if (limits.is_shared) {
  ------------------
  |  Branch (137:7): [True: 0, False: 1.44k]
  ------------------
  138|      0|    result |= PrintError(loc, "tables may not be shared");
  139|      0|  }
  140|  1.44k|  if (elem_type != Type::FuncRef &&
  ------------------
  |  Branch (140:7): [True: 640, False: 808]
  ------------------
  141|  1.44k|      !options_.features.reference_types_enabled()) {
  ------------------
  |  Branch (141:7): [True: 0, False: 640]
  ------------------
  142|      0|    result |= PrintError(loc, "tables must have funcref type");
  143|      0|  }
  144|  1.44k|  if (!elem_type.IsRef()) {
  ------------------
  |  Branch (144:7): [True: 0, False: 1.44k]
  ------------------
  145|      0|    result |= PrintError(loc, "tables must have reference types");
  146|      0|  }
  147|       |
  148|  1.44k|  tables_.push_back(TableType{elem_type, limits});
  149|  1.44k|  return result;
  150|  1.44k|}
_ZN4wabt15SharedValidator8OnMemoryERKNS_8LocationERKNS_6LimitsEj:
  154|    653|                                 uint32_t page_size) {
  155|    653|  Result result = Result::Ok;
  156|    653|  if (memories_.size() > 0 && !options_.features.multi_memory_enabled()) {
  ------------------
  |  Branch (156:7): [True: 126, False: 527]
  |  Branch (156:31): [True: 3, False: 123]
  ------------------
  157|      3|    result |= PrintError(loc, "only one memory block allowed");
  158|      3|  }
  159|       |
  160|    653|  if (page_size != WABT_DEFAULT_PAGE_SIZE) {
  ------------------
  |  |   47|    653|#define WABT_DEFAULT_PAGE_SIZE 0x10000
  ------------------
  |  Branch (160:7): [True: 0, False: 653]
  ------------------
  161|      0|    if (!options_.features.custom_page_sizes_enabled()) {
  ------------------
  |  Branch (161:9): [True: 0, False: 0]
  ------------------
  162|      0|      result |= PrintError(loc, "only default page size (64 KiB) is allowed");
  163|      0|    } else if (page_size != 1) {
  ------------------
  |  Branch (163:16): [True: 0, False: 0]
  ------------------
  164|      0|      result |= PrintError(loc, "only page sizes of 1 B or 64 KiB are allowed");
  165|      0|    }
  166|      0|  }
  167|       |
  168|    653|  uint64_t absolute_max = WABT_BYTES_TO_MIN_PAGES(
  169|    653|      (limits.is_64 ? UINT64_MAX : UINT32_MAX), page_size);
  ------------------
  |  Branch (169:8): [True: 16, False: 637]
  ------------------
  170|    653|  result |= CheckLimits(loc, limits, absolute_max, "pages");
  171|       |
  172|    653|  if (limits.is_shared) {
  ------------------
  |  Branch (172:7): [True: 1, False: 652]
  ------------------
  173|      1|    if (!options_.features.threads_enabled()) {
  ------------------
  |  Branch (173:9): [True: 0, False: 1]
  ------------------
  174|      0|      result |= PrintError(loc, "memories may not be shared");
  175|      1|    } else if (!limits.has_max) {
  ------------------
  |  Branch (175:16): [True: 0, False: 1]
  ------------------
  176|      0|      result |= PrintError(loc, "shared memories must have max sizes");
  177|      0|    }
  178|      1|  }
  179|       |
  180|    653|  memories_.push_back(MemoryType{limits});
  181|    653|  return result;
  182|    653|}
_ZN4wabt15SharedValidator14OnGlobalImportERKNS_8LocationENS_4TypeEb:
  186|    401|                                       bool mutable_) {
  187|    401|  Result result = Result::Ok;
  188|    401|  if (mutable_ && !options_.features.mutable_globals_enabled()) {
  ------------------
  |  Branch (188:7): [True: 279, False: 122]
  |  Branch (188:19): [True: 0, False: 279]
  ------------------
  189|      0|    result |= PrintError(loc, "mutable globals cannot be imported");
  190|      0|  }
  191|    401|  globals_.push_back(GlobalType{type, mutable_});
  192|    401|  ++num_imported_globals_;
  193|    401|  return result;
  194|    401|}
_ZN4wabt15SharedValidator8OnGlobalERKNS_8LocationENS_4TypeEb:
  198|  3.90k|                                 bool mutable_) {
  199|  3.90k|  globals_.push_back(GlobalType{type, mutable_});
  200|  3.90k|  return Result::Ok;
  201|  3.90k|}
_ZN4wabt15SharedValidator9CheckTypeERKNS_8LocationENS_4TypeES4_PKc:
  206|  2.06k|                                  const char* desc) {
  207|  2.06k|  if (Failed(TypeChecker::CheckType(actual, expected))) {
  ------------------
  |  Branch (207:7): [True: 9, False: 2.05k]
  ------------------
  208|      9|    PrintError(loc, "type mismatch at %s. got %s, expected %s", desc,
  209|      9|               actual.GetName().c_str(), expected.GetName().c_str());
  210|      9|    return Result::Error;
  211|      9|  }
  212|  2.05k|  return Result::Ok;
  213|  2.06k|}
_ZN4wabt15SharedValidator18CheckReferenceTypeERKNS_8LocationENS_4TypeEPKc:
  217|  13.2k|                                           const char* desc) {
  218|  13.2k|  if (type.IsReferenceWithIndex()) {
  ------------------
  |  Branch (218:7): [True: 1, False: 13.2k]
  ------------------
  219|      1|    Index index = type.GetReferenceIndex();
  220|      1|    auto iter = func_types_.find(index);
  221|       |
  222|      1|    if (iter == func_types_.end()) {
  ------------------
  |  Branch (222:9): [True: 1, False: 0]
  ------------------
  223|      1|      return PrintError(loc, "reference %d is out of range in %s",
  224|      1|                        static_cast<int>(index), desc);
  225|      1|    }
  226|      1|  }
  227|       |
  228|  13.2k|  return Result::Ok;
  229|  13.2k|}
_ZN4wabt15SharedValidator8OnExportERKNS_8LocationENS_12ExternalKindENS_3VarENSt3__117basic_string_viewIcNS6_11char_traitsIcEEEE:
  245|  5.33k|                                 std::string_view name) {
  246|  5.33k|  Result result = Result::Ok;
  247|  5.33k|  auto name_str = std::string(name);
  248|  5.33k|  if (export_names_.find(name_str) != export_names_.end()) {
  ------------------
  |  Branch (248:7): [True: 11, False: 5.32k]
  ------------------
  249|     11|    result |= PrintError(loc, "duplicate export \"" PRIstringview "\"",
  250|     11|                         WABT_PRINTF_STRING_VIEW_ARG(name));
  ------------------
  |  |   28|     11|  static_cast<int>((x).length()), (x).data()
  ------------------
  251|     11|  }
  252|  5.33k|  export_names_.insert(name_str);
  253|       |
  254|  5.33k|  switch (kind) {
  ------------------
  |  Branch (254:11): [True: 0, False: 5.33k]
  ------------------
  255|  1.08k|    case ExternalKind::Func:
  ------------------
  |  Branch (255:5): [True: 1.08k, False: 4.25k]
  ------------------
  256|  1.08k|      result |= CheckFuncIndex(item_var);
  257|  1.08k|      declared_funcs_.insert(item_var.index());
  258|  1.08k|      break;
  259|       |
  260|  3.02k|    case ExternalKind::Table:
  ------------------
  |  Branch (260:5): [True: 3.02k, False: 2.31k]
  ------------------
  261|  3.02k|      result |= CheckTableIndex(item_var);
  262|  3.02k|      break;
  263|       |
  264|     88|    case ExternalKind::Memory:
  ------------------
  |  Branch (264:5): [True: 88, False: 5.24k]
  ------------------
  265|     88|      result |= CheckMemoryIndex(item_var);
  266|     88|      break;
  267|       |
  268|  1.14k|    case ExternalKind::Global:
  ------------------
  |  Branch (268:5): [True: 1.14k, False: 4.19k]
  ------------------
  269|  1.14k|      result |= CheckGlobalIndex(item_var);
  270|  1.14k|      break;
  271|       |
  272|      0|    case ExternalKind::Tag:
  ------------------
  |  Branch (272:5): [True: 0, False: 5.33k]
  ------------------
  273|      0|      result |= CheckTagIndex(item_var);
  274|      0|      break;
  275|  5.33k|  }
  276|  5.33k|  return result;
  277|  5.33k|}
_ZN4wabt15SharedValidator7OnStartERKNS_8LocationENS_3VarE:
  279|     65|Result SharedValidator::OnStart(const Location& loc, Var func_var) {
  280|     65|  Result result = Result::Ok;
  281|     65|  if (starts_++ > 0) {
  ------------------
  |  Branch (281:7): [True: 0, False: 65]
  ------------------
  282|      0|    result |= PrintError(loc, "only one start function allowed");
  283|      0|  }
  284|     65|  FuncType func_type;
  285|     65|  result |= CheckFuncIndex(func_var, &func_type);
  286|     65|  if (func_type.params.size() != 0) {
  ------------------
  |  Branch (286:7): [True: 12, False: 53]
  ------------------
  287|     12|    result |= PrintError(loc, "start function must be nullary");
  288|     12|  }
  289|     65|  if (func_type.results.size() != 0) {
  ------------------
  |  Branch (289:7): [True: 12, False: 53]
  ------------------
  290|     12|    result |= PrintError(loc, "start function must not return anything");
  291|     12|  }
  292|     65|  return result;
  293|     65|}
_ZN4wabt15SharedValidator13OnElemSegmentERKNS_8LocationENS_3VarENS_11SegmentKindE:
  297|  2.44k|                                      SegmentKind kind) {
  298|  2.44k|  Result result = Result::Ok;
  299|  2.44k|  TableType table_type;
  300|  2.44k|  if (kind == SegmentKind::Active) {
  ------------------
  |  Branch (300:7): [True: 1.92k, False: 523]
  ------------------
  301|  1.92k|    result |= CheckTableIndex(table_var, &table_type);
  302|  1.92k|  }
  303|       |  // Type gets set later in OnElemSegmentElemType.
  304|  2.44k|  elems_.push_back(
  305|  2.44k|      ElemType{Type::Void, kind == SegmentKind::Active, table_type.element});
  306|  2.44k|  return result;
  307|  2.44k|}
_ZN4wabt15SharedValidator21OnElemSegmentElemTypeERKNS_8LocationENS_4TypeE:
  310|  2.43k|                                              Type elem_type) {
  311|  2.43k|  Result result = Result::Ok;
  312|  2.43k|  auto& elem = elems_.back();
  313|  2.43k|  if (elem.is_active) {
  ------------------
  |  Branch (313:7): [True: 1.91k, False: 516]
  ------------------
  314|       |    // Check that the type of the elem segment matches the table in which
  315|       |    // it is active.
  316|  1.91k|    result |= CheckType(loc, elem_type, elem.table_type, "elem segment");
  317|  1.91k|  }
  318|  2.43k|  elem.element = elem_type;
  319|  2.43k|  return result;
  320|  2.43k|}
_ZN4wabt15SharedValidator11OnDataCountEj:
  322|    109|void SharedValidator::OnDataCount(Index count) {
  323|    109|  data_segments_ = count;
  324|    109|}
_ZN4wabt15SharedValidator13OnDataSegmentERKNS_8LocationENS_3VarENS_11SegmentKindE:
  328|    264|                                      SegmentKind kind) {
  329|    264|  Result result = Result::Ok;
  330|    264|  if (kind == SegmentKind::Active) {
  ------------------
  |  Branch (330:7): [True: 59, False: 205]
  ------------------
  331|     59|    result |= CheckMemoryIndex(memory_var);
  332|     59|  }
  333|    264|  return result;
  334|    264|}
_ZN4wabt15SharedValidator9EndModuleEv:
  346|      9|Result SharedValidator::EndModule() {
  347|       |  // Verify that any ref.func used in init expressions for globals are
  348|       |  // mentioned in an elems section.  This can't be done while process the
  349|       |  // globals because the global section comes before the elem section.
  350|      9|  Result result = Result::Ok;
  351|      9|  for (Var func_var : check_declared_funcs_) {
  ------------------
  |  Branch (351:21): [True: 0, False: 9]
  ------------------
  352|      0|    result |= CheckDeclaredFunc(func_var);
  353|      0|  }
  354|      9|  return result;
  355|      9|}
_ZN4wabt15SharedValidator10CheckIndexENS_3VarEjPKc:
  357|  97.4k|Result SharedValidator::CheckIndex(Var var, Index max_index, const char* desc) {
  358|  97.4k|  if (var.index() >= max_index) {
  ------------------
  |  Branch (358:7): [True: 262, False: 97.2k]
  ------------------
  359|    262|    return PrintError(
  360|    262|        var.loc, "%s variable out of range: %" PRIindex " (max %" PRIindex ")",
  361|    262|        desc, var.index(), max_index);
  362|    262|  }
  363|  97.2k|  return Result::Ok;
  364|  97.4k|}
_ZN4wabt15SharedValidator15CheckLocalIndexENS_3VarEPNS_4TypeE:
  378|  22.1k|Result SharedValidator::CheckLocalIndex(Var local_var, Type* out_type) {
  379|  22.1k|  auto iter = std::upper_bound(
  380|  22.1k|      locals_.begin(), locals_.end(), local_var.index(),
  381|  22.1k|      [](Index index, const LocalDecl& decl) { return index < decl.end; });
  382|  22.1k|  if (iter == locals_.end()) {
  ------------------
  |  Branch (382:7): [True: 9, False: 22.1k]
  ------------------
  383|       |    // TODO: better error
  384|      9|    return PrintError(local_var.loc, "local variable out of range (max %u)",
  385|      9|                      GetLocalCount());
  386|      9|  }
  387|  22.1k|  *out_type = iter->type;
  388|  22.1k|  return Result::Ok;
  389|  22.1k|}
_ZN4wabt15SharedValidator18CheckFuncTypeIndexENS_3VarEPNS0_8FuncTypeE:
  391|  16.3k|Result SharedValidator::CheckFuncTypeIndex(Var sig_var, FuncType* out) {
  392|  16.3k|  Result result = CheckIndex(sig_var, num_types_, "function type");
  393|  16.3k|  if (Failed(result)) {
  ------------------
  |  Branch (393:7): [True: 98, False: 16.2k]
  ------------------
  394|     98|    *out = FuncType{};
  395|     98|    return Result::Error;
  396|     98|  }
  397|       |
  398|  16.2k|  auto iter = func_types_.find(sig_var.index());
  399|  16.2k|  if (iter == func_types_.end()) {
  ------------------
  |  Branch (399:7): [True: 0, False: 16.2k]
  ------------------
  400|      0|    return PrintError(sig_var.loc, "type %d is not a function",
  401|      0|                      sig_var.index());
  402|      0|  }
  403|       |
  404|  16.2k|  if (out) {
  ------------------
  |  Branch (404:7): [True: 16.2k, False: 0]
  ------------------
  405|  16.2k|    *out = iter->second;
  406|  16.2k|  }
  407|  16.2k|  return Result::Ok;
  408|  16.2k|}
_ZN4wabt15SharedValidator14CheckFuncIndexENS_3VarEPNS0_8FuncTypeE:
  410|  10.6k|Result SharedValidator::CheckFuncIndex(Var func_var, FuncType* out) {
  411|  10.6k|  return CheckIndexWithValue(func_var, funcs_, out, "function");
  412|  10.6k|}
_ZN4wabt15SharedValidator16CheckMemoryIndexENS_3VarEPNS0_10MemoryTypeE:
  414|  39.7k|Result SharedValidator::CheckMemoryIndex(Var memory_var, MemoryType* out) {
  415|  39.7k|  return CheckIndexWithValue(memory_var, memories_, out, "memory");
  416|  39.7k|}
_ZN4wabt15SharedValidator15CheckTableIndexENS_3VarEPNS0_9TableTypeE:
  418|  6.05k|Result SharedValidator::CheckTableIndex(Var table_var, TableType* out) {
  419|  6.05k|  return CheckIndexWithValue(table_var, tables_, out, "table");
  420|  6.05k|}
_ZN4wabt15SharedValidator16CheckGlobalIndexENS_3VarEPNS0_10GlobalTypeE:
  422|  19.7k|Result SharedValidator::CheckGlobalIndex(Var global_var, GlobalType* out) {
  423|  19.7k|  return CheckIndexWithValue(global_var, globals_, out, "global");
  424|  19.7k|}
_ZN4wabt15SharedValidator13CheckTagIndexENS_3VarEPNS0_7TagTypeE:
  426|      6|Result SharedValidator::CheckTagIndex(Var tag_var, TagType* out) {
  427|      6|  return CheckIndexWithValue(tag_var, tags_, out, "tag");
  428|      6|}
_ZN4wabt15SharedValidator21CheckElemSegmentIndexENS_3VarEPNS0_8ElemTypeE:
  431|  4.75k|                                              ElemType* out) {
  432|  4.75k|  return CheckIndexWithValue(elem_segment_var, elems_, out, "elem_segment");
  433|  4.75k|}
_ZN4wabt15SharedValidator21CheckDataSegmentIndexENS_3VarE:
  435|    160|Result SharedValidator::CheckDataSegmentIndex(Var data_segment_var) {
  436|    160|  return CheckIndex(data_segment_var, data_segments_, "data_segment");
  437|    160|}
_ZN4wabt15SharedValidator19CheckBlockSignatureERKNS_8LocationENS_6OpcodeENS_4TypeEPNSt3__16vectorIS5_NS6_9allocatorIS5_EEEESB_:
  443|  26.5k|                                            TypeVector* out_result_types) {
  444|  26.5k|  Result result = Result::Ok;
  445|       |
  446|  26.5k|  if (sig_type.IsIndex()) {
  ------------------
  |  Branch (446:7): [True: 2.12k, False: 24.4k]
  ------------------
  447|  2.12k|    Index sig_index = sig_type.GetIndex();
  448|  2.12k|    FuncType func_type;
  449|  2.12k|    result |= CheckFuncTypeIndex(Var(sig_index, loc), &func_type);
  450|       |
  451|  2.12k|    if (!func_type.params.empty() && !options_.features.multi_value_enabled()) {
  ------------------
  |  Branch (451:9): [True: 487, False: 1.63k]
  |  Branch (451:38): [True: 0, False: 487]
  ------------------
  452|      0|      result |= PrintError(loc, "%s params not currently supported.",
  453|      0|                           opcode.GetName());
  454|      0|    }
  455|       |    // Multiple results without --enable-multi-value is checked above in
  456|       |    // OnType.
  457|       |
  458|  2.12k|    *out_param_types = func_type.params;
  459|  2.12k|    *out_result_types = func_type.results;
  460|  24.4k|  } else {
  461|  24.4k|    out_param_types->clear();
  462|  24.4k|    *out_result_types = sig_type.GetInlineVector();
  463|  24.4k|  }
  464|       |
  465|  26.5k|  return result;
  466|  26.5k|}
_ZNK4wabt15SharedValidator20GetFunctionTypeIndexEj:
  468|  7.13k|Index SharedValidator::GetFunctionTypeIndex(Index func_index) const {
  469|  7.13k|  assert(func_index < funcs_.size());
  470|  7.13k|  return funcs_[func_index].type_index;
  471|  7.13k|}
_ZN4wabt15SharedValidator13BeginInitExprERKNS_8LocationENS_4TypeE:
  473|  16.4k|Result SharedValidator::BeginInitExpr(const Location& loc, Type type) {
  474|  16.4k|  expr_loc_ = loc;
  475|  16.4k|  in_init_expr_ = true;
  476|  16.4k|  return typechecker_.BeginInitExpr(type);
  477|  16.4k|}
_ZN4wabt15SharedValidator11EndInitExprEv:
  479|  16.3k|Result SharedValidator::EndInitExpr() {
  480|  16.3k|  in_init_expr_ = false;
  481|  16.3k|  return typechecker_.EndInitExpr();
  482|  16.3k|}
_ZN4wabt15SharedValidator17BeginFunctionBodyERKNS_8LocationEj:
  485|  3.15k|                                          Index func_index) {
  486|  3.15k|  expr_loc_ = loc;
  487|  3.15k|  locals_.clear();
  488|  3.15k|  if (func_index < funcs_.size()) {
  ------------------
  |  Branch (488:7): [True: 3.15k, False: 0]
  ------------------
  489|  39.7k|    for (Type type : funcs_[func_index].params) {
  ------------------
  |  Branch (489:20): [True: 39.7k, False: 3.15k]
  ------------------
  490|       |      // TODO: Coalesce parameters of the same type?
  491|  39.7k|      locals_.push_back(LocalDecl{type, GetLocalCount() + 1});
  492|  39.7k|    }
  493|  3.15k|    return typechecker_.BeginFunction(funcs_[func_index].results);
  494|  3.15k|  } else {
  495|       |    // Signature isn't available, use empty.
  496|      0|    return typechecker_.BeginFunction(TypeVector());
  497|      0|  }
  498|  3.15k|}
_ZN4wabt15SharedValidator15EndFunctionBodyERKNS_8LocationE:
  500|  2.47k|Result SharedValidator::EndFunctionBody(const Location& loc) {
  501|  2.47k|  expr_loc_ = loc;
  502|  2.47k|  return typechecker_.EndFunction();
  503|  2.47k|}
_ZN4wabt15SharedValidator11OnLocalDeclERKNS_8LocationEjNS_4TypeE:
  507|  13.2k|                                    Type type) {
  508|  13.2k|  const auto max_locals = std::numeric_limits<Index>::max();
  509|  13.2k|  if (count > max_locals - GetLocalCount()) {
  ------------------
  |  Branch (509:7): [True: 0, False: 13.2k]
  ------------------
  510|      0|    PrintError(loc, "local count must be < 0x10000000");
  511|      0|    return Result::Error;
  512|      0|  }
  513|       |
  514|  13.2k|  CHECK_RESULT(CheckReferenceType(loc, type, "locals"));
  ------------------
  |  |   55|  13.2k|  do {                              \
  |  |   56|  13.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 1, False: 13.2k]
  |  |  ------------------
  |  |   57|      1|      return ::wabt::Result::Error; \
  |  |   58|      1|    }                               \
  |  |   59|  13.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  515|       |
  516|  13.2k|  locals_.push_back(LocalDecl{type, GetLocalCount() + count});
  517|  13.2k|  return Result::Ok;
  518|  13.2k|}
_ZNK4wabt15SharedValidator13GetLocalCountEv:
  520|  93.6k|Index SharedValidator::GetLocalCount() const {
  521|  93.6k|  return locals_.empty() ? 0 : locals_.back().end;
  ------------------
  |  Branch (521:10): [True: 5.63k, False: 88.0k]
  ------------------
  522|  93.6k|}
_ZN4wabt15SharedValidator10CheckAlignERKNS_8LocationEmm:
  530|  25.3k|                                   Address natural_alignment) {
  531|  25.3k|  if (!is_power_of_two(alignment)) {
  ------------------
  |  Branch (531:7): [True: 0, False: 25.3k]
  ------------------
  532|      0|    PrintError(loc, "alignment (%" PRIaddress ") must be a power of 2",
  533|      0|               alignment);
  534|      0|    return Result::Error;
  535|      0|  }
  536|  25.3k|  if (alignment > natural_alignment) {
  ------------------
  |  Branch (536:7): [True: 6, False: 25.3k]
  ------------------
  537|      6|    PrintError(
  538|      6|        loc,
  539|      6|        "alignment must not be larger than natural alignment (%" PRIaddress ")",
  540|      6|        natural_alignment);
  541|      6|    return Result::Error;
  542|      6|  }
  543|  25.3k|  return Result::Ok;
  544|  25.3k|}
_ZN4wabt15SharedValidator11CheckOffsetERKNS_8LocationEmRKNS_6LimitsE:
  548|  25.4k|                                    const Limits& limits) {
  549|  25.4k|  if ((!limits.is_64) && (offset > UINT32_MAX)) {
  ------------------
  |  Branch (549:7): [True: 25.4k, False: 12]
  |  Branch (549:26): [True: 0, False: 25.4k]
  ------------------
  550|      0|    PrintError(loc, "offset must be less than or equal to 0xffffffff");
  551|      0|    return Result::Error;
  552|      0|  }
  553|       |
  554|  25.4k|  return Result::Ok;
  555|  25.4k|}
_ZN4wabt15SharedValidator16CheckAtomicAlignERKNS_8LocationEmm:
  559|    129|                                         Address natural_alignment) {
  560|    129|  if (!is_power_of_two(alignment)) {
  ------------------
  |  Branch (560:7): [True: 0, False: 129]
  ------------------
  561|      0|    PrintError(loc, "alignment (%" PRIaddress ") must be a power of 2",
  562|      0|               alignment);
  563|      0|    return Result::Error;
  564|      0|  }
  565|    129|  if (alignment != natural_alignment) {
  ------------------
  |  Branch (565:7): [True: 1, False: 128]
  ------------------
  566|      1|    PrintError(loc,
  567|      1|               "alignment must be equal to natural alignment (%" PRIaddress ")",
  568|      1|               natural_alignment);
  569|      1|    return Result::Error;
  570|      1|  }
  571|    128|  return Result::Ok;
  572|    129|}
_ZNK4wabt15SharedValidator15ValidInitOpcodeENS_6OpcodeE:
  574|  11.3k|bool SharedValidator::ValidInitOpcode(Opcode opcode) const {
  575|  11.3k|  if (opcode == Opcode::GlobalGet || opcode == Opcode::I32Const ||
  ------------------
  |  Branch (575:7): [True: 227, False: 11.0k]
  |  Branch (575:38): [True: 0, False: 11.0k]
  ------------------
  576|  11.3k|      opcode == Opcode::I64Const || opcode == Opcode::F32Const ||
  ------------------
  |  Branch (576:7): [True: 0, False: 11.0k]
  |  Branch (576:37): [True: 0, False: 11.0k]
  ------------------
  577|  11.3k|      opcode == Opcode::F64Const || opcode == Opcode::RefFunc ||
  ------------------
  |  Branch (577:7): [True: 0, False: 11.0k]
  |  Branch (577:37): [True: 6.80k, False: 4.28k]
  ------------------
  578|  11.3k|      opcode == Opcode::RefNull) {
  ------------------
  |  Branch (578:7): [True: 4.16k, False: 116]
  ------------------
  579|  11.1k|    return true;
  580|  11.1k|  }
  581|    116|  if (options_.features.extended_const_enabled()) {
  ------------------
  |  Branch (581:7): [True: 81, False: 35]
  ------------------
  582|     81|    if (opcode == Opcode::I32Mul || opcode == Opcode::I64Mul ||
  ------------------
  |  Branch (582:9): [True: 6, False: 75]
  |  Branch (582:37): [True: 6, False: 69]
  ------------------
  583|     81|        opcode == Opcode::I32Sub || opcode == Opcode::I64Sub ||
  ------------------
  |  Branch (583:9): [True: 6, False: 63]
  |  Branch (583:37): [True: 6, False: 57]
  ------------------
  584|     81|        opcode == Opcode::I32Add || opcode == Opcode::I64Add) {
  ------------------
  |  Branch (584:9): [True: 12, False: 45]
  |  Branch (584:37): [True: 11, False: 34]
  ------------------
  585|     47|      return true;
  586|     47|    }
  587|     81|  }
  588|     69|  return false;
  589|    116|}
_ZN4wabt15SharedValidator10CheckInstrENS_6OpcodeERKNS_8LocationE:
  591|   723k|Result SharedValidator::CheckInstr(Opcode opcode, const Location& loc) {
  592|   723k|  expr_loc_ = loc;
  593|   723k|  if (in_init_expr_ && !ValidInitOpcode(opcode)) {
  ------------------
  |  Branch (593:7): [True: 11.3k, False: 711k]
  |  Branch (593:24): [True: 69, False: 11.2k]
  ------------------
  594|     69|    PrintError(loc,
  595|     69|               "invalid initializer: instruction not valid in initializer "
  596|     69|               "expression: %s",
  597|     69|               opcode.GetName());
  598|     69|    return Result::Error;
  599|     69|  }
  600|   723k|  return Result::Ok;
  601|   723k|}
_ZN4wabt15SharedValidator13OnAtomicFenceERKNS_8LocationEj:
  604|    257|                                      uint32_t consistency_model) {
  605|    257|  Result result = CheckInstr(Opcode::AtomicFence, loc);
  606|    257|  if (consistency_model != 0) {
  ------------------
  |  Branch (606:7): [True: 0, False: 257]
  ------------------
  607|      0|    result |= PrintError(
  608|      0|        loc, "unexpected atomic.fence consistency model (expected 0): %u",
  609|      0|        consistency_model);
  610|      0|  }
  611|    257|  result |= typechecker_.OnAtomicFence(consistency_model);
  612|    257|  return result;
  613|    257|}
_ZN4wabt15SharedValidator14OnAtomicNotifyERKNS_8LocationENS_6OpcodeENS_3VarEmm:
  633|      1|                                       Address offset) {
  634|      1|  Result result = CheckInstr(opcode, loc);
  635|      1|  MemoryType mt;
  636|      1|  result |= CheckMemoryIndex(memidx, &mt);
  637|      1|  result |= CheckAtomicAlign(loc, alignment, opcode.GetMemorySize());
  638|      1|  result |= CheckOffset(loc, offset, mt.limits);
  639|      1|  result |= typechecker_.OnAtomicNotify(opcode, mt.limits);
  640|      1|  return result;
  641|      1|}
_ZN4wabt15SharedValidator11OnAtomicRmwERKNS_8LocationENS_6OpcodeENS_3VarEmm:
  661|    128|                                    Address offset) {
  662|    128|  Result result = CheckInstr(opcode, loc);
  663|    128|  MemoryType mt;
  664|    128|  result |= CheckMemoryIndex(memidx, &mt);
  665|    128|  result |= CheckAtomicAlign(loc, alignment, opcode.GetMemorySize());
  666|    128|  result |= CheckOffset(loc, offset, mt.limits);
  667|    128|  result |= typechecker_.OnAtomicRmw(opcode, mt.limits);
  668|    128|  return result;
  669|    128|}
_ZN4wabt15SharedValidator8OnBinaryERKNS_8LocationENS_6OpcodeE:
  699|  39.6k|Result SharedValidator::OnBinary(const Location& loc, Opcode opcode) {
  700|  39.6k|  Result result = CheckInstr(opcode, loc);
  701|  39.6k|  result |= typechecker_.OnBinary(opcode);
  702|  39.6k|  return result;
  703|  39.6k|}
_ZN4wabt15SharedValidator7OnBlockERKNS_8LocationENS_4TypeE:
  705|  21.8k|Result SharedValidator::OnBlock(const Location& loc, Type sig_type) {
  706|  21.8k|  Result result = CheckInstr(Opcode::Block, loc);
  707|  21.8k|  TypeVector param_types, result_types;
  708|  21.8k|  result |= CheckBlockSignature(loc, Opcode::Block, sig_type, &param_types,
  709|  21.8k|                                &result_types);
  710|  21.8k|  result |= typechecker_.OnBlock(param_types, result_types);
  711|  21.8k|  return result;
  712|  21.8k|}
_ZN4wabt15SharedValidator4OnBrERKNS_8LocationENS_3VarE:
  714|  2.56k|Result SharedValidator::OnBr(const Location& loc, Var depth) {
  715|  2.56k|  Result result = CheckInstr(Opcode::Br, loc);
  716|  2.56k|  result |= typechecker_.OnBr(depth.index());
  717|  2.56k|  return result;
  718|  2.56k|}
_ZN4wabt15SharedValidator6OnBrIfERKNS_8LocationENS_3VarE:
  720|    360|Result SharedValidator::OnBrIf(const Location& loc, Var depth) {
  721|    360|  Result result = CheckInstr(Opcode::BrIf, loc);
  722|    360|  result |= typechecker_.OnBrIf(depth.index());
  723|    360|  return result;
  724|    360|}
_ZN4wabt15SharedValidator12BeginBrTableERKNS_8LocationE:
  726|  1.65k|Result SharedValidator::BeginBrTable(const Location& loc) {
  727|  1.65k|  Result result = CheckInstr(Opcode::BrTable, loc);
  728|  1.65k|  result |= typechecker_.BeginBrTable();
  729|  1.65k|  return result;
  730|  1.65k|}
_ZN4wabt15SharedValidator15OnBrTableTargetERKNS_8LocationENS_3VarE:
  732|  5.67k|Result SharedValidator::OnBrTableTarget(const Location& loc, Var depth) {
  733|  5.67k|  Result result = Result::Ok;
  734|  5.67k|  expr_loc_ = loc;
  735|  5.67k|  result |= typechecker_.OnBrTableTarget(depth.index());
  736|  5.67k|  return result;
  737|  5.67k|}
_ZN4wabt15SharedValidator10EndBrTableERKNS_8LocationE:
  739|  1.63k|Result SharedValidator::EndBrTable(const Location& loc) {
  740|  1.63k|  Result result = CheckInstr(Opcode::BrTable, loc);
  741|  1.63k|  result |= typechecker_.EndBrTable();
  742|  1.63k|  return result;
  743|  1.63k|}
_ZN4wabt15SharedValidator6OnCallERKNS_8LocationENS_3VarE:
  745|  2.31k|Result SharedValidator::OnCall(const Location& loc, Var func_var) {
  746|  2.31k|  Result result = CheckInstr(Opcode::Call, loc);
  747|  2.31k|  FuncType func_type;
  748|  2.31k|  result |= CheckFuncIndex(func_var, &func_type);
  749|  2.31k|  result |= typechecker_.OnCall(func_type.params, func_type.results);
  750|  2.31k|  return result;
  751|  2.31k|}
_ZN4wabt15SharedValidator14OnCallIndirectERKNS_8LocationENS_3VarES4_:
  755|    344|                                       Var table_var) {
  756|    344|  Result result = CheckInstr(Opcode::CallIndirect, loc);
  757|    344|  FuncType func_type;
  758|    344|  TableType table_type;
  759|    344|  result |= CheckFuncTypeIndex(sig_var, &func_type);
  760|    344|  result |= CheckTableIndex(table_var, &table_type);
  761|    344|  if (table_type.element != Type::FuncRef) {
  ------------------
  |  Branch (761:7): [True: 5, False: 339]
  ------------------
  762|      5|    result |= PrintError(
  763|      5|        loc,
  764|      5|        "type mismatch: call_indirect must reference table of funcref type");
  765|      5|  }
  766|    344|  result |= typechecker_.OnCallIndirect(func_type.params, func_type.results,
  767|    344|                                        table_type.limits);
  768|    344|  return result;
  769|    344|}
_ZN4wabt15SharedValidator7OnCatchERKNS_8LocationENS_3VarEb:
  790|      5|                                bool is_catch_all) {
  791|      5|  Result result = CheckInstr(Opcode::Catch, loc);
  792|      5|  if (is_catch_all) {
  ------------------
  |  Branch (792:7): [True: 1, False: 4]
  ------------------
  793|      1|    TypeVector empty;
  794|      1|    result |= typechecker_.OnCatch(empty);
  795|      4|  } else {
  796|      4|    TagType tag_type;
  797|      4|    result |= CheckTagIndex(tag_var, &tag_type);
  798|      4|    result |= typechecker_.OnCatch(tag_type.params);
  799|      4|  }
  800|      5|  return result;
  801|      5|}
_ZN4wabt15SharedValidator9OnCompareERKNS_8LocationENS_6OpcodeE:
  803|  17.8k|Result SharedValidator::OnCompare(const Location& loc, Opcode opcode) {
  804|  17.8k|  Result result = CheckInstr(opcode, loc);
  805|  17.8k|  result |= typechecker_.OnCompare(opcode);
  806|  17.8k|  return result;
  807|  17.8k|}
_ZN4wabt15SharedValidator7OnConstERKNS_8LocationENS_4TypeE:
  809|  66.3k|Result SharedValidator::OnConst(const Location& loc, Type type) {
  810|  66.3k|  Result result = Result::Ok;
  811|  66.3k|  expr_loc_ = loc;
  812|  66.3k|  result |= typechecker_.OnConst(type);
  813|  66.3k|  return result;
  814|  66.3k|}
_ZN4wabt15SharedValidator9OnConvertERKNS_8LocationENS_6OpcodeE:
  816|  78.0k|Result SharedValidator::OnConvert(const Location& loc, Opcode opcode) {
  817|  78.0k|  Result result = CheckInstr(opcode, loc);
  818|  78.0k|  result |= typechecker_.OnConvert(opcode);
  819|  78.0k|  return result;
  820|  78.0k|}
_ZN4wabt15SharedValidator10OnDataDropERKNS_8LocationENS_3VarE:
  822|    160|Result SharedValidator::OnDataDrop(const Location& loc, Var segment_var) {
  823|    160|  Result result = CheckInstr(Opcode::DataDrop, loc);
  824|    160|  result |= CheckDataSegmentIndex(segment_var);
  825|    160|  result |= typechecker_.OnDataDrop(segment_var.index());
  826|    160|  return result;
  827|    160|}
_ZN4wabt15SharedValidator10OnDelegateERKNS_8LocationENS_3VarE:
  829|      1|Result SharedValidator::OnDelegate(const Location& loc, Var depth) {
  830|      1|  Result result = CheckInstr(Opcode::Delegate, loc);
  831|      1|  result |= typechecker_.OnDelegate(depth.index());
  832|      1|  return result;
  833|      1|}
_ZN4wabt15SharedValidator6OnDropERKNS_8LocationE:
  835|  1.55k|Result SharedValidator::OnDrop(const Location& loc) {
  836|  1.55k|  Result result = CheckInstr(Opcode::Drop, loc);
  837|  1.55k|  result |= typechecker_.OnDrop();
  838|  1.55k|  return result;
  839|  1.55k|}
_ZN4wabt15SharedValidator10OnElemDropERKNS_8LocationENS_3VarE:
  841|  4.72k|Result SharedValidator::OnElemDrop(const Location& loc, Var segment_var) {
  842|  4.72k|  Result result = CheckInstr(Opcode::ElemDrop, loc);
  843|  4.72k|  result |= CheckElemSegmentIndex(segment_var);
  844|  4.72k|  result |= typechecker_.OnElemDrop(segment_var.index());
  845|  4.72k|  return result;
  846|  4.72k|}
_ZN4wabt15SharedValidator6OnElseERKNS_8LocationE:
  848|    317|Result SharedValidator::OnElse(const Location& loc) {
  849|       |  // Don't call CheckInstr or update expr_loc_ here because if we fail we want
  850|       |  // the last expression in the If block to be reported as the error location,
  851|       |  // not the else itself.
  852|    317|  Result result = Result::Ok;
  853|    317|  result |= typechecker_.OnElse();
  854|    317|  return result;
  855|    317|}
_ZN4wabt15SharedValidator5OnEndERKNS_8LocationE:
  857|  20.3k|Result SharedValidator::OnEnd(const Location& loc) {
  858|  20.3k|  Result result = CheckInstr(Opcode::End, loc);
  859|  20.3k|  result |= typechecker_.OnEnd();
  860|  20.3k|  return result;
  861|  20.3k|}
_ZN4wabt15SharedValidator11OnGlobalGetERKNS_8LocationENS_3VarE:
  863|  9.68k|Result SharedValidator::OnGlobalGet(const Location& loc, Var global_var) {
  864|  9.68k|  Result result = CheckInstr(Opcode::GlobalGet, loc);
  865|  9.68k|  GlobalType global_type;
  866|  9.68k|  result |= CheckGlobalIndex(global_var, &global_type);
  867|  9.68k|  result |= typechecker_.OnGlobalGet(global_type.type);
  868|  9.68k|  if (Succeeded(result) && in_init_expr_) {
  ------------------
  |  Branch (868:7): [True: 9.67k, False: 7]
  |  Branch (868:28): [True: 226, False: 9.44k]
  ------------------
  869|    226|    if (global_var.index() >= num_imported_globals_) {
  ------------------
  |  Branch (869:9): [True: 3, False: 223]
  ------------------
  870|      3|      result |= PrintError(
  871|      3|          global_var.loc,
  872|      3|          "initializer expression can only reference an imported global");
  873|      3|    }
  874|    226|    if (global_type.mutable_) {
  ------------------
  |  Branch (874:9): [True: 3, False: 223]
  ------------------
  875|      3|      result |= PrintError(
  876|      3|          loc, "initializer expression cannot reference a mutable global");
  877|      3|    }
  878|    226|  }
  879|       |
  880|  9.68k|  return result;
  881|  9.68k|}
_ZN4wabt15SharedValidator11OnGlobalSetERKNS_8LocationENS_3VarE:
  883|  8.96k|Result SharedValidator::OnGlobalSet(const Location& loc, Var global_var) {
  884|  8.96k|  Result result = CheckInstr(Opcode::GlobalSet, loc);
  885|  8.96k|  GlobalType global_type;
  886|  8.96k|  result |= CheckGlobalIndex(global_var, &global_type);
  887|  8.96k|  if (!global_type.mutable_) {
  ------------------
  |  Branch (887:7): [True: 1, False: 8.96k]
  ------------------
  888|      1|    result |= PrintError(
  889|      1|        loc, "can't global.set on immutable global at index %" PRIindex ".",
  890|      1|        global_var.index());
  891|      1|  }
  892|  8.96k|  result |= typechecker_.OnGlobalSet(global_type.type);
  893|  8.96k|  return result;
  894|  8.96k|}
_ZN4wabt15SharedValidator4OnIfERKNS_8LocationENS_4TypeE:
  896|  1.65k|Result SharedValidator::OnIf(const Location& loc, Type sig_type) {
  897|  1.65k|  Result result = CheckInstr(Opcode::If, loc);
  898|  1.65k|  TypeVector param_types, result_types;
  899|  1.65k|  result |= CheckBlockSignature(loc, Opcode::If, sig_type, &param_types,
  900|  1.65k|                                &result_types);
  901|  1.65k|  result |= typechecker_.OnIf(param_types, result_types);
  902|  1.65k|  return result;
  903|  1.65k|}
_ZN4wabt15SharedValidator6OnLoadERKNS_8LocationENS_6OpcodeENS_3VarEmm:
  909|  23.2k|                               Address offset) {
  910|  23.2k|  Result result = CheckInstr(opcode, loc);
  911|  23.2k|  MemoryType mt;
  912|  23.2k|  result |= CheckMemoryIndex(memidx, &mt);
  913|  23.2k|  result |= CheckAlign(loc, alignment, opcode.GetMemorySize());
  914|  23.2k|  result |= CheckOffset(loc, offset, mt.limits);
  915|  23.2k|  result |= typechecker_.OnLoad(opcode, mt.limits);
  916|  23.2k|  return result;
  917|  23.2k|}
_ZN4wabt15SharedValidator11OnLoadSplatERKNS_8LocationENS_6OpcodeENS_3VarEmm:
  923|    612|                                    Address offset) {
  924|    612|  Result result = CheckInstr(opcode, loc);
  925|    612|  MemoryType mt;
  926|    612|  result |= CheckMemoryIndex(memidx, &mt);
  927|    612|  result |= CheckAlign(loc, alignment, opcode.GetMemorySize());
  928|    612|  result |= CheckOffset(loc, offset, mt.limits);
  929|    612|  result |= typechecker_.OnLoad(opcode, mt.limits);
  930|    612|  return result;
  931|    612|}
_ZN4wabt15SharedValidator10OnLoadZeroERKNS_8LocationENS_6OpcodeENS_3VarEmm:
  937|    102|                                   Address offset) {
  938|    102|  Result result = CheckInstr(opcode, loc);
  939|    102|  MemoryType mt;
  940|    102|  result |= CheckMemoryIndex(memidx, &mt);
  941|    102|  result |= CheckAlign(loc, alignment, opcode.GetMemorySize());
  942|    102|  result |= CheckOffset(loc, offset, mt.limits);
  943|    102|  result |= typechecker_.OnLoad(opcode, mt.limits);
  944|    102|  return result;
  945|    102|}
_ZN4wabt15SharedValidator10OnLocalGetERKNS_8LocationENS_3VarE:
  947|  16.1k|Result SharedValidator::OnLocalGet(const Location& loc, Var local_var) {
  948|  16.1k|  CHECK_RESULT(CheckInstr(Opcode::LocalGet, loc));
  ------------------
  |  |   55|  16.1k|  do {                              \
  |  |   56|  16.1k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 16.1k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  16.1k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  949|  16.1k|  Result result = Result::Ok;
  950|  16.1k|  Type type = Type::Any;
  951|  16.1k|  result |= CheckLocalIndex(local_var, &type);
  952|  16.1k|  result |= typechecker_.OnLocalGet(type);
  953|  16.1k|  return result;
  954|  16.1k|}
_ZN4wabt15SharedValidator10OnLocalSetERKNS_8LocationENS_3VarE:
  956|  3.98k|Result SharedValidator::OnLocalSet(const Location& loc, Var local_var) {
  957|  3.98k|  CHECK_RESULT(CheckInstr(Opcode::LocalSet, loc));
  ------------------
  |  |   55|  3.98k|  do {                              \
  |  |   56|  3.98k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 3.98k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  3.98k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  958|  3.98k|  Result result = Result::Ok;
  959|  3.98k|  Type type = Type::Any;
  960|  3.98k|  result |= CheckLocalIndex(local_var, &type);
  961|  3.98k|  result |= typechecker_.OnLocalSet(type);
  962|  3.98k|  return result;
  963|  3.98k|}
_ZN4wabt15SharedValidator10OnLocalTeeERKNS_8LocationENS_3VarE:
  965|  2.03k|Result SharedValidator::OnLocalTee(const Location& loc, Var local_var) {
  966|  2.03k|  CHECK_RESULT(CheckInstr(Opcode::LocalTee, loc));
  ------------------
  |  |   55|  2.03k|  do {                              \
  |  |   56|  2.03k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 2.03k]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|  2.03k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  967|  2.03k|  Result result = Result::Ok;
  968|  2.03k|  Type type = Type::Any;
  969|  2.03k|  result |= CheckLocalIndex(local_var, &type);
  970|  2.03k|  result |= typechecker_.OnLocalTee(type);
  971|  2.03k|  return result;
  972|  2.03k|}
_ZN4wabt15SharedValidator6OnLoopERKNS_8LocationENS_4TypeE:
  974|  3.06k|Result SharedValidator::OnLoop(const Location& loc, Type sig_type) {
  975|  3.06k|  Result result = CheckInstr(Opcode::Loop, loc);
  976|  3.06k|  TypeVector param_types, result_types;
  977|  3.06k|  result |= CheckBlockSignature(loc, Opcode::Loop, sig_type, &param_types,
  978|  3.06k|                                &result_types);
  979|  3.06k|  result |= typechecker_.OnLoop(param_types, result_types);
  980|  3.06k|  return result;
  981|  3.06k|}
_ZN4wabt15SharedValidator12OnMemoryCopyERKNS_8LocationENS_3VarES4_:
  985|      4|                                     Var srcmemidx) {
  986|      4|  Result result = CheckInstr(Opcode::MemoryCopy, loc);
  987|      4|  MemoryType srcmt;
  988|      4|  MemoryType dstmt;
  989|      4|  result |= CheckMemoryIndex(destmemidx, &dstmt);
  990|      4|  result |= CheckMemoryIndex(srcmemidx, &srcmt);
  991|      4|  result |= typechecker_.OnMemoryCopy(dstmt.limits, srcmt.limits);
  992|      4|  return result;
  993|      4|}
_ZN4wabt15SharedValidator12OnMemoryFillERKNS_8LocationENS_3VarE:
  995|    439|Result SharedValidator::OnMemoryFill(const Location& loc, Var memidx) {
  996|    439|  Result result = CheckInstr(Opcode::MemoryFill, loc);
  997|    439|  MemoryType mt;
  998|    439|  result |= CheckMemoryIndex(memidx, &mt);
  999|    439|  result |= typechecker_.OnMemoryFill(mt.limits);
 1000|    439|  return result;
 1001|    439|}
_ZN4wabt15SharedValidator12OnMemoryGrowERKNS_8LocationENS_3VarE:
 1003|  9.18k|Result SharedValidator::OnMemoryGrow(const Location& loc, Var memidx) {
 1004|  9.18k|  Result result = CheckInstr(Opcode::MemoryGrow, loc);
 1005|  9.18k|  MemoryType mt;
 1006|  9.18k|  result |= CheckMemoryIndex(memidx, &mt);
 1007|  9.18k|  result |= typechecker_.OnMemoryGrow(mt.limits);
 1008|  9.18k|  return result;
 1009|  9.18k|}
_ZN4wabt15SharedValidator12OnMemorySizeERKNS_8LocationENS_3VarE:
 1022|  4.53k|Result SharedValidator::OnMemorySize(const Location& loc, Var memidx) {
 1023|  4.53k|  Result result = CheckInstr(Opcode::MemorySize, loc);
 1024|  4.53k|  MemoryType mt;
 1025|  4.53k|  result |= CheckMemoryIndex(memidx, &mt);
 1026|  4.53k|  result |= typechecker_.OnMemorySize(mt.limits);
 1027|  4.53k|  return result;
 1028|  4.53k|}
_ZN4wabt15SharedValidator5OnNopERKNS_8LocationE:
 1030|  53.2k|Result SharedValidator::OnNop(const Location& loc) {
 1031|  53.2k|  Result result = CheckInstr(Opcode::Nop, loc);
 1032|  53.2k|  return result;
 1033|  53.2k|}
_ZN4wabt15SharedValidator9OnRefFuncERKNS_8LocationENS_3VarE:
 1035|  7.14k|Result SharedValidator::OnRefFunc(const Location& loc, Var func_var) {
 1036|  7.14k|  Result result = CheckInstr(Opcode::RefFunc, loc);
 1037|  7.14k|  result |= CheckFuncIndex(func_var);
 1038|  7.14k|  if (Succeeded(result)) {
  ------------------
  |  Branch (1038:7): [True: 7.13k, False: 11]
  ------------------
 1039|       |    // References in initializer expressions are considered declarations, as
 1040|       |    // opposed to references in function bodies that are considered usages.
 1041|  7.13k|    if (in_init_expr_) {
  ------------------
  |  Branch (1041:9): [True: 6.79k, False: 347]
  ------------------
 1042|  6.79k|      declared_funcs_.insert(func_var.index());
 1043|  6.79k|    } else {
 1044|    347|      check_declared_funcs_.push_back(func_var);
 1045|    347|    }
 1046|  7.13k|    Index func_type = GetFunctionTypeIndex(func_var.index());
 1047|  7.13k|    result |= typechecker_.OnRefFuncExpr(func_type, in_init_expr_);
 1048|  7.13k|  }
 1049|  7.14k|  return result;
 1050|  7.14k|}
_ZN4wabt15SharedValidator11OnRefIsNullERKNS_8LocationE:
 1052|    223|Result SharedValidator::OnRefIsNull(const Location& loc) {
 1053|    223|  Result result = CheckInstr(Opcode::RefIsNull, loc);
 1054|    223|  result |= typechecker_.OnRefIsNullExpr();
 1055|    223|  return result;
 1056|    223|}
_ZN4wabt15SharedValidator9OnRefNullERKNS_8LocationENS_4TypeE:
 1058|  5.00k|Result SharedValidator::OnRefNull(const Location& loc, Type type) {
 1059|  5.00k|  Result result = CheckInstr(Opcode::RefNull, loc);
 1060|  5.00k|  result |= typechecker_.OnRefNullExpr(type);
 1061|  5.00k|  return result;
 1062|  5.00k|}
_ZN4wabt15SharedValidator9OnRethrowERKNS_8LocationENS_3VarE:
 1064|      2|Result SharedValidator::OnRethrow(const Location& loc, Var depth) {
 1065|      2|  Result result = CheckInstr(Opcode::Rethrow, loc);
 1066|      2|  result |= typechecker_.OnRethrow(depth.index());
 1067|      2|  return result;
 1068|      2|}
_ZN4wabt15SharedValidator12OnReturnCallERKNS_8LocationENS_3VarE:
 1070|     25|Result SharedValidator::OnReturnCall(const Location& loc, Var func_var) {
 1071|     25|  Result result = CheckInstr(Opcode::ReturnCall, loc);
 1072|     25|  FuncType func_type;
 1073|     25|  result |= CheckFuncIndex(func_var, &func_type);
 1074|     25|  result |= typechecker_.OnReturnCall(func_type.params, func_type.results);
 1075|     25|  return result;
 1076|     25|}
_ZN4wabt15SharedValidator20OnReturnCallIndirectERKNS_8LocationENS_3VarES4_:
 1080|     56|                                             Var table_var) {
 1081|     56|  Result result = CheckInstr(Opcode::CallIndirect, loc);
 1082|     56|  FuncType func_type;
 1083|     56|  TableType table_type;
 1084|     56|  result |= CheckFuncTypeIndex(sig_var, &func_type);
 1085|     56|  result |= CheckTableIndex(table_var, &table_type);
 1086|     56|  if (table_type.element != Type::FuncRef) {
  ------------------
  |  Branch (1086:7): [True: 4, False: 52]
  ------------------
 1087|      4|    result |= PrintError(loc,
 1088|      4|                         "type mismatch: return_call_indirect must reference "
 1089|      4|                         "table of funcref type");
 1090|      4|  }
 1091|     56|  result |=
 1092|     56|      typechecker_.OnReturnCallIndirect(func_type.params, func_type.results);
 1093|     56|  return result;
 1094|     56|}
_ZN4wabt15SharedValidator8OnReturnERKNS_8LocationE:
 1096|  2.71k|Result SharedValidator::OnReturn(const Location& loc) {
 1097|  2.71k|  Result result = CheckInstr(Opcode::Return, loc);
 1098|  2.71k|  result |= typechecker_.OnReturn();
 1099|  2.71k|  return result;
 1100|  2.71k|}
_ZN4wabt15SharedValidator8OnSelectERKNS_8LocationEjPNS_4TypeE:
 1104|  1.62k|                                 Type* result_types) {
 1105|  1.62k|  Result result = CheckInstr(Opcode::Select, loc);
 1106|  1.62k|  if (result_count > 1) {
  ------------------
  |  Branch (1106:7): [True: 1, False: 1.62k]
  ------------------
 1107|      1|    result |=
 1108|      1|        PrintError(loc, "invalid arity in select instruction: %" PRIindex ".",
 1109|      1|                   result_count);
 1110|  1.62k|  } else {
 1111|  1.62k|    result |= typechecker_.OnSelect(ToTypeVector(result_count, result_types));
 1112|  1.62k|  }
 1113|  1.62k|  return result;
 1114|  1.62k|}
_ZN4wabt15SharedValidator12OnSimdLaneOpERKNS_8LocationENS_6OpcodeEm:
 1118|  3.11k|                                     uint64_t value) {
 1119|  3.11k|  Result result = CheckInstr(opcode, loc);
 1120|  3.11k|  result |= typechecker_.OnSimdLaneOp(opcode, value);
 1121|  3.11k|  return result;
 1122|  3.11k|}
_ZN4wabt15SharedValidator14OnSimdLoadLaneERKNS_8LocationENS_6OpcodeENS_3VarEmmm:
 1129|     87|                                       uint64_t value) {
 1130|     87|  Result result = CheckInstr(opcode, loc);
 1131|     87|  MemoryType mt;
 1132|     87|  result |= CheckMemoryIndex(memidx, &mt);
 1133|     87|  result |= CheckAlign(loc, alignment, opcode.GetMemorySize());
 1134|     87|  result |= CheckOffset(loc, offset, mt.limits);
 1135|     87|  result |= typechecker_.OnSimdLoadLane(opcode, mt.limits, value);
 1136|     87|  return result;
 1137|     87|}
_ZN4wabt15SharedValidator15OnSimdStoreLaneERKNS_8LocationENS_6OpcodeENS_3VarEmmm:
 1144|    821|                                        uint64_t value) {
 1145|    821|  Result result = CheckInstr(opcode, loc);
 1146|    821|  MemoryType mt;
 1147|    821|  result |= CheckMemoryIndex(memidx, &mt);
 1148|    821|  result |= CheckAlign(loc, alignment, opcode.GetMemorySize());
 1149|    821|  result |= CheckOffset(loc, offset, mt.limits);
 1150|    821|  result |= typechecker_.OnSimdStoreLane(opcode, mt.limits, value);
 1151|    821|  return result;
 1152|    821|}
_ZN4wabt15SharedValidator15OnSimdShuffleOpERKNS_8LocationENS_6OpcodeE4v128:
 1156|      2|                                        v128 value) {
 1157|      2|  Result result = CheckInstr(opcode, loc);
 1158|      2|  result |= typechecker_.OnSimdShuffleOp(opcode, value);
 1159|      2|  return result;
 1160|      2|}
_ZN4wabt15SharedValidator7OnStoreERKNS_8LocationENS_6OpcodeENS_3VarEmm:
 1166|    461|                                Address offset) {
 1167|    461|  Result result = CheckInstr(opcode, loc);
 1168|    461|  MemoryType mt;
 1169|    461|  result |= CheckMemoryIndex(memidx, &mt);
 1170|    461|  result |= CheckAlign(loc, alignment, opcode.GetMemorySize());
 1171|    461|  result |= CheckOffset(loc, offset, mt.limits);
 1172|    461|  result |= typechecker_.OnStore(opcode, mt.limits);
 1173|    461|  return result;
 1174|    461|}
_ZN4wabt15SharedValidator11OnTableCopyERKNS_8LocationENS_3VarES4_:
 1178|    118|                                    Var src_var) {
 1179|    118|  Result result = CheckInstr(Opcode::TableCopy, loc);
 1180|    118|  TableType dst_table;
 1181|    118|  TableType src_table;
 1182|    118|  result |= CheckTableIndex(dst_var, &dst_table);
 1183|    118|  result |= CheckTableIndex(src_var, &src_table);
 1184|    118|  result |= typechecker_.OnTableCopy(dst_table.limits, src_table.limits);
 1185|    118|  result |= CheckType(loc, src_table.element, dst_table.element, "table.copy");
 1186|    118|  return result;
 1187|    118|}
_ZN4wabt15SharedValidator11OnTableFillERKNS_8LocationENS_3VarE:
 1189|    110|Result SharedValidator::OnTableFill(const Location& loc, Var table_var) {
 1190|    110|  Result result = CheckInstr(Opcode::TableFill, loc);
 1191|    110|  TableType table_type;
 1192|    110|  result |= CheckTableIndex(table_var, &table_type);
 1193|    110|  result |= typechecker_.OnTableFill(table_type.element, table_type.limits);
 1194|    110|  return result;
 1195|    110|}
_ZN4wabt15SharedValidator10OnTableGetERKNS_8LocationENS_3VarE:
 1197|     83|Result SharedValidator::OnTableGet(const Location& loc, Var table_var) {
 1198|     83|  Result result = CheckInstr(Opcode::TableGet, loc);
 1199|     83|  TableType table_type;
 1200|     83|  result |= CheckTableIndex(table_var, &table_type);
 1201|     83|  result |= typechecker_.OnTableGet(table_type.element, table_type.limits);
 1202|     83|  return result;
 1203|     83|}
_ZN4wabt15SharedValidator11OnTableGrowERKNS_8LocationENS_3VarE:
 1205|      1|Result SharedValidator::OnTableGrow(const Location& loc, Var table_var) {
 1206|      1|  Result result = CheckInstr(Opcode::TableGrow, loc);
 1207|      1|  TableType table_type;
 1208|      1|  result |= CheckTableIndex(table_var, &table_type);
 1209|      1|  result |= typechecker_.OnTableGrow(table_type.element, table_type.limits);
 1210|      1|  return result;
 1211|      1|}
_ZN4wabt15SharedValidator11OnTableInitERKNS_8LocationENS_3VarES4_:
 1215|     30|                                    Var table_var) {
 1216|     30|  Result result = CheckInstr(Opcode::TableInit, loc);
 1217|     30|  TableType table_type;
 1218|     30|  ElemType elem_type;
 1219|     30|  result |= CheckTableIndex(table_var, &table_type);
 1220|     30|  result |= CheckElemSegmentIndex(segment_var, &elem_type);
 1221|     30|  result |= typechecker_.OnTableInit(segment_var.index(), table_type.limits);
 1222|     30|  result |= CheckType(loc, elem_type.element, table_type.element, "table.init");
 1223|     30|  return result;
 1224|     30|}
_ZN4wabt15SharedValidator10OnTableSetERKNS_8LocationENS_3VarE:
 1226|     12|Result SharedValidator::OnTableSet(const Location& loc, Var table_var) {
 1227|     12|  Result result = CheckInstr(Opcode::TableSet, loc);
 1228|     12|  TableType table_type;
 1229|     12|  result |= CheckTableIndex(table_var, &table_type);
 1230|     12|  result |= typechecker_.OnTableSet(table_type.element, table_type.limits);
 1231|     12|  return result;
 1232|     12|}
_ZN4wabt15SharedValidator11OnTableSizeERKNS_8LocationENS_3VarE:
 1234|    238|Result SharedValidator::OnTableSize(const Location& loc, Var table_var) {
 1235|    238|  Result result = CheckInstr(Opcode::TableSize, loc);
 1236|    238|  TableType tt;
 1237|    238|  result |= CheckTableIndex(table_var, &tt);
 1238|    238|  result |= typechecker_.OnTableSize(tt.limits);
 1239|    238|  return result;
 1240|    238|}
_ZN4wabt15SharedValidator9OnTernaryERKNS_8LocationENS_6OpcodeE:
 1242|     13|Result SharedValidator::OnTernary(const Location& loc, Opcode opcode) {
 1243|     13|  Result result = CheckInstr(opcode, loc);
 1244|     13|  result |= typechecker_.OnTernary(opcode);
 1245|     13|  return result;
 1246|     13|}
_ZN4wabt15SharedValidator7OnThrowERKNS_8LocationENS_3VarE:
 1248|      2|Result SharedValidator::OnThrow(const Location& loc, Var tag_var) {
 1249|      2|  Result result = CheckInstr(Opcode::Throw, loc);
 1250|      2|  TagType tag_type;
 1251|      2|  result |= CheckTagIndex(tag_var, &tag_type);
 1252|      2|  result |= typechecker_.OnThrow(tag_type.params);
 1253|      2|  return result;
 1254|      2|}
_ZN4wabt15SharedValidator10OnThrowRefERKNS_8LocationE:
 1256|     34|Result SharedValidator::OnThrowRef(const Location& loc) {
 1257|     34|  Result result = CheckInstr(Opcode::ThrowRef, loc);
 1258|     34|  result |= typechecker_.OnThrowRef();
 1259|     34|  return result;
 1260|     34|}
_ZN4wabt15SharedValidator5OnTryERKNS_8LocationENS_4TypeE:
 1262|     33|Result SharedValidator::OnTry(const Location& loc, Type sig_type) {
 1263|     33|  Result result = CheckInstr(Opcode::Try, loc);
 1264|     33|  TypeVector param_types, result_types;
 1265|     33|  result |= CheckBlockSignature(loc, Opcode::Try, sig_type, &param_types,
 1266|     33|                                &result_types);
 1267|     33|  result |= typechecker_.OnTry(param_types, result_types);
 1268|     33|  return result;
 1269|     33|}
_ZN4wabt15SharedValidator13BeginTryTableERKNS_8LocationENS_4TypeE:
 1271|      2|Result SharedValidator::BeginTryTable(const Location& loc, Type sig_type) {
 1272|      2|  Result result = CheckInstr(Opcode::TryTable, loc);
 1273|      2|  TypeVector param_types, result_types;
 1274|      2|  result |= CheckBlockSignature(loc, Opcode::TryTable, sig_type, &param_types,
 1275|      2|                                &result_types);
 1276|      2|  result |= typechecker_.BeginTryTable(param_types);
 1277|      2|  return result;
 1278|      2|}
_ZN4wabt15SharedValidator7OnUnaryERKNS_8LocationENS_6OpcodeE:
 1305|   107k|Result SharedValidator::OnUnary(const Location& loc, Opcode opcode) {
 1306|   107k|  Result result = CheckInstr(opcode, loc);
 1307|   107k|  result |= typechecker_.OnUnary(opcode);
 1308|   107k|  return result;
 1309|   107k|}
_ZN4wabt15SharedValidator13OnUnreachableERKNS_8LocationE:
 1311|   263k|Result SharedValidator::OnUnreachable(const Location& loc) {
 1312|   263k|  Result result = CheckInstr(Opcode::Unreachable, loc);
 1313|   263k|  result |= typechecker_.OnUnreachable();
 1314|   263k|  return result;
 1315|   263k|}
shared-validator.cc:_ZN4wabtL15is_power_of_twoEj:
  524|  25.4k|static bool is_power_of_two(uint32_t x) {
  525|  25.4k|  return x && ((x & (x - 1)) == 0);
  ------------------
  |  Branch (525:10): [True: 25.4k, False: 0]
  |  Branch (525:15): [True: 25.4k, False: 0]
  ------------------
  526|  25.4k|}
shared-validator.cc:_ZZN4wabt15SharedValidatorC1EPNSt3__16vectorINS_5ErrorENS1_9allocatorIS3_EEEERKNS_15ValidateOptionsEENK3$_0clEPKc:
   32|    319|      [this](const char* msg) { OnTypecheckerError(msg); });
shared-validator.cc:_ZZN4wabt15SharedValidator15CheckLocalIndexENS_3VarEPNS_4TypeEENK3$_0clEjRKNS0_9LocalDeclE:
  381|  39.0k|      [](Index index, const LocalDecl& decl) { return index < decl.end; });
_ZN4wabt15SharedValidator19CheckIndexWithValueINS0_8FuncTypeEEENS_6ResultENS_3VarERKNSt3__16vectorIT_NS5_9allocatorIS7_EEEEPS7_PKc:
  370|  10.6k|                                            const char* desc) {
  371|  10.6k|  Result result = CheckIndex(var, values.size(), desc);
  372|  10.6k|  if (out) {
  ------------------
  |  Branch (372:7): [True: 2.40k, False: 8.23k]
  ------------------
  373|  2.40k|    *out = Succeeded(result) ? values[var.index()] : T{};
  ------------------
  |  Branch (373:12): [True: 2.37k, False: 31]
  ------------------
  374|  2.40k|  }
  375|  10.6k|  return result;
  376|  10.6k|}
_ZN4wabt15SharedValidator19CheckIndexWithValueINS0_10MemoryTypeEEENS_6ResultENS_3VarERKNSt3__16vectorIT_NS5_9allocatorIS7_EEEEPS7_PKc:
  370|  39.7k|                                            const char* desc) {
  371|  39.7k|  Result result = CheckIndex(var, values.size(), desc);
  372|  39.7k|  if (out) {
  ------------------
  |  Branch (372:7): [True: 39.5k, False: 147]
  ------------------
  373|  39.5k|    *out = Succeeded(result) ? values[var.index()] : T{};
  ------------------
  |  Branch (373:12): [True: 39.5k, False: 30]
  ------------------
  374|  39.5k|  }
  375|  39.7k|  return result;
  376|  39.7k|}
_ZN4wabt15SharedValidator19CheckIndexWithValueINS0_9TableTypeEEENS_6ResultENS_3VarERKNSt3__16vectorIT_NS5_9allocatorIS7_EEEEPS7_PKc:
  370|  6.05k|                                            const char* desc) {
  371|  6.05k|  Result result = CheckIndex(var, values.size(), desc);
  372|  6.05k|  if (out) {
  ------------------
  |  Branch (372:7): [True: 3.03k, False: 3.02k]
  ------------------
  373|  3.03k|    *out = Succeeded(result) ? values[var.index()] : T{};
  ------------------
  |  Branch (373:12): [True: 3.02k, False: 13]
  ------------------
  374|  3.03k|  }
  375|  6.05k|  return result;
  376|  6.05k|}
_ZN4wabt15SharedValidator19CheckIndexWithValueINS0_10GlobalTypeEEENS_6ResultENS_3VarERKNSt3__16vectorIT_NS5_9allocatorIS7_EEEEPS7_PKc:
  370|  19.7k|                                            const char* desc) {
  371|  19.7k|  Result result = CheckIndex(var, values.size(), desc);
  372|  19.7k|  if (out) {
  ------------------
  |  Branch (372:7): [True: 18.6k, False: 1.14k]
  ------------------
  373|  18.6k|    *out = Succeeded(result) ? values[var.index()] : T{};
  ------------------
  |  Branch (373:12): [True: 18.6k, False: 10]
  ------------------
  374|  18.6k|  }
  375|  19.7k|  return result;
  376|  19.7k|}
_ZN4wabt15SharedValidator19CheckIndexWithValueINS0_7TagTypeEEENS_6ResultENS_3VarERKNSt3__16vectorIT_NS5_9allocatorIS7_EEEEPS7_PKc:
  370|      6|                                            const char* desc) {
  371|      6|  Result result = CheckIndex(var, values.size(), desc);
  372|      6|  if (out) {
  ------------------
  |  Branch (372:7): [True: 6, False: 0]
  ------------------
  373|      6|    *out = Succeeded(result) ? values[var.index()] : T{};
  ------------------
  |  Branch (373:12): [True: 0, False: 6]
  ------------------
  374|      6|  }
  375|      6|  return result;
  376|      6|}
_ZN4wabt15SharedValidator19CheckIndexWithValueINS0_8ElemTypeEEENS_6ResultENS_3VarERKNSt3__16vectorIT_NS5_9allocatorIS7_EEEEPS7_PKc:
  370|  4.75k|                                            const char* desc) {
  371|  4.75k|  Result result = CheckIndex(var, values.size(), desc);
  372|  4.75k|  if (out) {
  ------------------
  |  Branch (372:7): [True: 30, False: 4.72k]
  ------------------
  373|     30|    *out = Succeeded(result) ? values[var.index()] : T{};
  ------------------
  |  Branch (373:12): [True: 29, False: 1]
  ------------------
  374|     30|  }
  375|  4.75k|  return result;
  376|  4.75k|}

_ZN4wabt11TypeChecker5LabelC2ENS_9LabelTypeERKNSt3__16vectorINS_4TypeENS3_9allocatorIS5_EEEESA_m:
   55|  46.1k|    : label_type(label_type),
   56|  46.1k|      param_types(param_types),
   57|  46.1k|      result_types(result_types),
   58|  46.1k|      type_stack_limit(limit),
   59|  46.1k|      unreachable(false) {}
_ZN4wabt11TypeChecker10PrintErrorEPKcz:
   61|    319|void TypeChecker::PrintError(const char* fmt, ...) {
   62|    319|  if (error_callback_) {
  ------------------
  |  Branch (62:7): [True: 319, False: 0]
  ------------------
   63|    319|    WABT_SNPRINTF_ALLOCA(buffer, length, fmt);
  ------------------
  |  |   36|    319|  va_list args;                                                            \
  |  |   37|    319|  va_list args_copy;                                                       \
  |  |   38|    319|  va_start(args, format);                                                  \
  |  |   39|    319|  va_copy(args_copy, args);                                                \
  |  |   40|    319|  char fixed_buf[WABT_DEFAULT_SNPRINTF_ALLOCA_BUFSIZE];                    \
  |  |   41|    319|  char* buffer = fixed_buf;                                                \
  |  |   42|    319|  size_t len = wabt_vsnprintf(fixed_buf, sizeof(fixed_buf), format, args); \
  |  |  ------------------
  |  |  |  |  288|    319|#define wabt_vsnprintf vsnprintf
  |  |  ------------------
  |  |   43|    319|  va_end(args);                                                            \
  |  |   44|    319|  if (len + 1 > sizeof(fixed_buf)) {                                       \
  |  |  ------------------
  |  |  |  Branch (44:7): [True: 23, False: 296]
  |  |  ------------------
  |  |   45|     23|    buffer = static_cast<char*>(alloca(len + 1));                          \
  |  |   46|     23|    len = wabt_vsnprintf(buffer, len + 1, format, args_copy);              \
  |  |  ------------------
  |  |  |  |  288|     23|#define wabt_vsnprintf vsnprintf
  |  |  ------------------
  |  |   47|     23|  }                                                                        \
  |  |   48|    319|  va_end(args_copy)
  ------------------
   64|    319|    error_callback_(buffer);
   65|    319|  }
   66|    319|}
_ZN4wabt11TypeChecker8GetLabelEjPPNS0_5LabelE:
   68|  1.20M|Result TypeChecker::GetLabel(Index depth, Label** out_label) {
   69|  1.20M|  if (depth >= label_stack_.size()) {
  ------------------
  |  Branch (69:7): [True: 24, False: 1.20M]
  ------------------
   70|     24|    assert(label_stack_.size() > 0);
   71|     24|    PrintError("invalid depth: %" PRIindex " (max %" PRIzd ")", depth,
   72|     24|               label_stack_.size() - 1);
   73|     24|    *out_label = nullptr;
   74|     24|    return Result::Error;
   75|     24|  }
   76|  1.20M|  *out_label = &label_stack_[label_stack_.size() - depth - 1];
   77|  1.20M|  return Result::Ok;
   78|  1.20M|}
_ZN4wabt11TypeChecker15GetRethrowLabelEjPPNS0_5LabelE:
   80|      2|Result TypeChecker::GetRethrowLabel(Index depth, Label** out_label) {
   81|      2|  if (Failed(GetLabel(depth, out_label))) {
  ------------------
  |  Branch (81:7): [True: 0, False: 2]
  ------------------
   82|      0|    return Result::Error;
   83|      0|  }
   84|       |
   85|      2|  if ((*out_label)->label_type == LabelType::Catch) {
  ------------------
  |  Branch (85:7): [True: 0, False: 2]
  ------------------
   86|      0|    return Result::Ok;
   87|      0|  }
   88|       |
   89|      2|  std::string candidates;
   90|     49|  for (Index idx = 0; idx < label_stack_.size(); idx++) {
  ------------------
  |  Branch (90:23): [True: 47, False: 2]
  ------------------
   91|     47|    LabelType type = label_stack_[label_stack_.size() - idx - 1].label_type;
   92|     47|    if (type == LabelType::Catch) {
  ------------------
  |  Branch (92:9): [True: 0, False: 47]
  ------------------
   93|      0|      if (!candidates.empty()) {
  ------------------
  |  Branch (93:11): [True: 0, False: 0]
  ------------------
   94|      0|        candidates.append(", ");
   95|      0|      }
   96|      0|      candidates.append(std::to_string(idx));
   97|      0|    }
   98|     47|  }
   99|       |
  100|      2|  if (candidates.empty()) {
  ------------------
  |  Branch (100:7): [True: 2, False: 0]
  ------------------
  101|      2|    PrintError("rethrow not in try catch block");
  102|      2|  } else {
  103|      0|    PrintError("invalid rethrow depth: %" PRIindex " (catches: %s)", depth,
  104|      0|               candidates.c_str());
  105|      0|  }
  106|      2|  *out_label = nullptr;
  107|      2|  return Result::Error;
  108|      2|}
_ZN4wabt11TypeChecker13GetCatchCountEjPj:
  110|  11.3k|Result TypeChecker::GetCatchCount(Index depth, Index* out_count) {
  111|  11.3k|  Label* unused;
  112|  11.3k|  if (Failed(GetLabel(depth, &unused))) {
  ------------------
  |  Branch (112:7): [True: 0, False: 11.3k]
  ------------------
  113|      0|    return Result::Error;
  114|      0|  }
  115|       |
  116|  11.3k|  Index catch_count = 0;
  117|   164k|  for (Index idx = 0; idx <= depth; idx++) {
  ------------------
  |  Branch (117:23): [True: 152k, False: 11.3k]
  ------------------
  118|   152k|    LabelType type = label_stack_[label_stack_.size() - idx - 1].label_type;
  119|   152k|    if (type == LabelType::Catch) {
  ------------------
  |  Branch (119:9): [True: 0, False: 152k]
  ------------------
  120|      0|      catch_count++;
  121|      0|    }
  122|   152k|  }
  123|  11.3k|  *out_count = catch_count;
  124|       |
  125|  11.3k|  return Result::Ok;
  126|  11.3k|}
_ZN4wabt11TypeChecker8TopLabelEPPNS0_5LabelE:
  128|  1.14M|Result TypeChecker::TopLabel(Label** out_label) {
  129|  1.14M|  return GetLabel(0, out_label);
  130|  1.14M|}
_ZN4wabt11TypeChecker21ResetTypeStackToLabelEPNS0_5LabelE:
  140|   417k|void TypeChecker::ResetTypeStackToLabel(Label* label) {
  141|   417k|  type_stack_.resize(label->type_stack_limit);
  142|   417k|}
_ZN4wabt11TypeChecker14SetUnreachableEv:
  144|   270k|Result TypeChecker::SetUnreachable() {
  145|   270k|  Label* label;
  146|   270k|  CHECK_RESULT(TopLabel(&label));
  ------------------
  |  |   55|   270k|  do {                              \
  |  |   56|   270k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 270k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|   270k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  147|   270k|  label->unreachable = true;
  148|   270k|  ResetTypeStackToLabel(label);
  149|   270k|  return Result::Ok;
  150|   270k|}
_ZN4wabt11TypeChecker9PushLabelENS_9LabelTypeERKNSt3__16vectorINS_4TypeENS2_9allocatorIS4_EEEES9_:
  154|  46.1k|                            const TypeVector& result_types) {
  155|  46.1k|  label_stack_.emplace_back(label_type, param_types, result_types,
  156|  46.1k|                            type_stack_.size());
  157|  46.1k|}
_ZN4wabt11TypeChecker8PopLabelEv:
  159|  39.1k|Result TypeChecker::PopLabel() {
  160|  39.1k|  label_stack_.pop_back();
  161|  39.1k|  return Result::Ok;
  162|  39.1k|}
_ZN4wabt11TypeChecker14CheckLabelTypeEPNS0_5LabelENS_9LabelTypeE:
  164|  19.8k|Result TypeChecker::CheckLabelType(Label* label, LabelType label_type) {
  165|  19.8k|  return label->label_type == label_type ? Result::Ok : Result::Error;
  ------------------
  |  Branch (165:10): [True: 19.8k, False: 1]
  ------------------
  166|  19.8k|}
_ZN4wabt11TypeChecker16Check2LabelTypesEPNS0_5LabelENS_9LabelTypeES3_:
  170|      5|                                     LabelType label_type2) {
  171|      5|  return label->label_type == label_type1 || label->label_type == label_type2
  ------------------
  |  Branch (171:10): [True: 0, False: 5]
  |  Branch (171:46): [True: 0, False: 5]
  ------------------
  172|      5|             ? Result::Ok
  173|      5|             : Result::Error;
  174|      5|}
_ZN4wabt11TypeChecker20GetThisFunctionLabelEPPNS0_5LabelE:
  176|  2.79k|Result TypeChecker::GetThisFunctionLabel(Label** label) {
  177|  2.79k|  return GetLabel(label_stack_.size() - 1, label);
  178|  2.79k|}
_ZN4wabt11TypeChecker8PeekTypeEjPNS_4TypeE:
  180|   421k|Result TypeChecker::PeekType(Index depth, Type* out_type) {
  181|   421k|  Label* label;
  182|   421k|  CHECK_RESULT(TopLabel(&label));
  ------------------
  |  |   55|   421k|  do {                              \
  |  |   56|   421k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 421k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|   421k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  183|       |
  184|   421k|  if (label->type_stack_limit + depth >= type_stack_.size()) {
  ------------------
  |  Branch (184:7): [True: 149k, False: 272k]
  ------------------
  185|   149k|    *out_type = Type::Any;
  186|   149k|    return label->unreachable ? Result::Ok : Result::Error;
  ------------------
  |  Branch (186:12): [True: 149k, False: 326]
  ------------------
  187|   149k|  }
  188|   272k|  *out_type = type_stack_[type_stack_.size() - depth - 1];
  189|   272k|  return Result::Ok;
  190|   421k|}
_ZN4wabt11TypeChecker16PeekAndCheckTypeEjNS_4TypeE:
  192|   417k|Result TypeChecker::PeekAndCheckType(Index depth, Type expected) {
  193|   417k|  Type actual = Type::Any;
  194|   417k|  Result result = PeekType(depth, &actual);
  195|   417k|  return result | CheckType(actual, expected);
  196|   417k|}
_ZN4wabt11TypeChecker9DropTypesEm:
  198|   376k|Result TypeChecker::DropTypes(size_t drop_count) {
  199|   376k|  Label* label;
  200|   376k|  CHECK_RESULT(TopLabel(&label));
  ------------------
  |  |   55|   376k|  do {                              \
  |  |   56|   376k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 376k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|   376k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  201|   376k|  if (label->type_stack_limit + drop_count > type_stack_.size()) {
  ------------------
  |  Branch (201:7): [True: 106k, False: 269k]
  ------------------
  202|   106k|    ResetTypeStackToLabel(label);
  203|   106k|    return label->unreachable ? Result::Ok : Result::Error;
  ------------------
  |  Branch (203:12): [True: 106k, False: 91]
  ------------------
  204|   106k|  }
  205|   269k|  type_stack_.erase(type_stack_.end() - drop_count, type_stack_.end());
  206|   269k|  return Result::Ok;
  207|   376k|}
_ZN4wabt11TypeChecker8PushTypeENS_4TypeE:
  209|   443k|void TypeChecker::PushType(Type type) {
  210|   443k|  if (type != Type::Void) {
  ------------------
  |  Branch (210:7): [True: 441k, False: 1.95k]
  ------------------
  211|   441k|    type_stack_.push_back(type);
  212|   441k|  }
  213|   443k|}
_ZN4wabt11TypeChecker9PushTypesERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEE:
  215|  69.8k|void TypeChecker::PushTypes(const TypeVector& types) {
  216|  69.8k|  for (Type type : types) {
  ------------------
  |  Branch (216:18): [True: 49.4k, False: 69.8k]
  ------------------
  217|  49.4k|    PushType(type);
  218|  49.4k|  }
  219|  69.8k|}
_ZN4wabt11TypeChecker17CheckTypeStackEndEPKc:
  221|  40.2k|Result TypeChecker::CheckTypeStackEnd(const char* desc) {
  222|  40.2k|  Label* label;
  223|  40.2k|  CHECK_RESULT(TopLabel(&label));
  ------------------
  |  |   55|  40.2k|  do {                              \
  |  |   56|  40.2k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 40.2k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  40.2k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  224|  40.2k|  Result result = (type_stack_.size() == label->type_stack_limit)
  ------------------
  |  Branch (224:19): [True: 40.2k, False: 17]
  ------------------
  225|  40.2k|                      ? Result::Ok
  226|  40.2k|                      : Result::Error;
  227|  40.2k|  PrintStackIfFailedV(result, desc, {}, /*is_end=*/true);
  228|  40.2k|  return result;
  229|  40.2k|}
_ZN4wabt11TypeChecker9CheckTypeENS_4TypeES1_:
  231|   421k|Result TypeChecker::CheckType(Type actual, Type expected) {
  232|   421k|  if (expected == Type::Any || actual == Type::Any) {
  ------------------
  |  Branch (232:7): [True: 948, False: 420k]
  |  Branch (232:32): [True: 147k, False: 273k]
  ------------------
  233|   148k|    return Result::Ok;
  234|   148k|  }
  235|       |
  236|   273k|  if (actual != expected) {
  ------------------
  |  Branch (236:7): [True: 316, False: 273k]
  ------------------
  237|    316|    return Result::Error;
  238|    316|  }
  239|   273k|  return Result::Ok;
  240|   273k|}
_ZN4wabt11TypeChecker10CheckTypesERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEES8_:
  243|     81|                               const TypeVector& expected) {
  244|     81|  if (actual.size() != expected.size()) {
  ------------------
  |  Branch (244:7): [True: 7, False: 74]
  ------------------
  245|      7|    return Result::Error;
  246|     74|  } else {
  247|     74|    Result result = Result::Ok;
  248|    231|    for (size_t i = 0; i < actual.size(); i++)
  ------------------
  |  Branch (248:24): [True: 157, False: 74]
  ------------------
  249|    157|      result |= CheckType(actual[i], expected[i]);
  250|     74|    return result;
  251|     74|  }
  252|     81|}
_ZN4wabt11TypeChecker14CheckSignatureERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEEPKc:
  254|  80.8k|Result TypeChecker::CheckSignature(const TypeVector& sig, const char* desc) {
  255|  80.8k|  Result result = Result::Ok;
  256|   135k|  for (size_t i = 0; i < sig.size(); ++i) {
  ------------------
  |  Branch (256:22): [True: 54.7k, False: 80.8k]
  ------------------
  257|  54.7k|    result |= PeekAndCheckType(sig.size() - i - 1, sig[i]);
  258|  54.7k|  }
  259|  80.8k|  PrintStackIfFailedV(result, desc, sig, /*is_end=*/false);
  260|  80.8k|  return result;
  261|  80.8k|}
_ZN4wabt11TypeChecker20CheckReturnSignatureERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEES8_PKc:
  265|     81|                                         const char* desc) {
  266|     81|  Result result = CheckTypes(actual, expected);
  267|     81|  if (Failed(result)) {
  ------------------
  |  Branch (267:7): [True: 9, False: 72]
  ------------------
  268|      9|    PrintError("return signatures have inconsistent types: expected %s, got %s",
  269|      9|               TypesToString(expected).c_str(), TypesToString(actual).c_str());
  270|      9|  }
  271|     81|  return result;
  272|     81|}
_ZN4wabt11TypeChecker20PopAndCheckSignatureERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEEPKc:
  275|  69.9k|                                         const char* desc) {
  276|  69.9k|  Result result = CheckSignature(sig, desc);
  277|  69.9k|  result |= DropTypes(sig.size());
  278|  69.9k|  return result;
  279|  69.9k|}
_ZN4wabt11TypeChecker15PopAndCheckCallERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEES8_PKc:
  283|  2.66k|                                    const char* desc) {
  284|  2.66k|  Result result = CheckSignature(param_types, desc);
  285|  2.66k|  result |= DropTypes(param_types.size());
  286|  2.66k|  PushTypes(result_types);
  287|  2.66k|  return result;
  288|  2.66k|}
_ZN4wabt11TypeChecker16PopAndCheck1TypeENS_4TypeEPKc:
  290|   240k|Result TypeChecker::PopAndCheck1Type(Type expected, const char* desc) {
  291|   240k|  Result result = Result::Ok;
  292|   240k|  result |= PeekAndCheckType(0, expected);
  293|   240k|  PrintStackIfFailed(result, desc, expected);
  294|   240k|  result |= DropTypes(1);
  295|   240k|  return result;
  296|   240k|}
_ZN4wabt11TypeChecker17PopAndCheck2TypesENS_4TypeES1_PKc:
  300|  59.3k|                                      const char* desc) {
  301|  59.3k|  Result result = Result::Ok;
  302|  59.3k|  result |= PeekAndCheckType(0, expected2);
  303|  59.3k|  result |= PeekAndCheckType(1, expected1);
  304|  59.3k|  PrintStackIfFailed(result, desc, expected1, expected2);
  305|  59.3k|  result |= DropTypes(2);
  306|  59.3k|  return result;
  307|  59.3k|}
_ZN4wabt11TypeChecker17PopAndCheck3TypesENS_4TypeES1_S1_PKc:
  312|    714|                                      const char* desc) {
  313|    714|  Result result = Result::Ok;
  314|    714|  result |= PeekAndCheckType(0, expected3);
  315|    714|  result |= PeekAndCheckType(1, expected2);
  316|    714|  result |= PeekAndCheckType(2, expected1);
  317|    714|  PrintStackIfFailed(result, desc, expected1, expected2, expected3);
  318|    714|  result |= DropTypes(3);
  319|    714|  return result;
  320|    714|}
_ZN4wabt11TypeChecker12CheckOpcode1ENS_6OpcodeEPKNS_6LimitsE:
  328|   212k|Result TypeChecker::CheckOpcode1(Opcode opcode, const Limits* limits) {
  329|   212k|  Result result = PopAndCheck1Type(
  330|   212k|      GetMemoryParam(opcode.GetParamType1(), limits), opcode.GetName());
  331|   212k|  PushType(opcode.GetResultType());
  332|   212k|  return result;
  333|   212k|}
_ZN4wabt11TypeChecker12CheckOpcode2ENS_6OpcodeEPKNS_6LimitsE:
  335|  59.3k|Result TypeChecker::CheckOpcode2(Opcode opcode, const Limits* limits) {
  336|  59.3k|  Result result =
  337|  59.3k|      PopAndCheck2Types(GetMemoryParam(opcode.GetParamType1(), limits),
  338|  59.3k|                        opcode.GetParamType2(), opcode.GetName());
  339|  59.3k|  PushType(opcode.GetResultType());
  340|  59.3k|  return result;
  341|  59.3k|}
_ZN4wabt11TypeChecker12CheckOpcode3ENS_6OpcodeEPKNS_6LimitsES4_S4_:
  346|    604|                                 const Limits* limits3) {
  347|    604|  Result result = PopAndCheck3Types(
  348|    604|      GetMemoryParam(opcode.GetParamType1(), limits1),
  349|    604|      GetMemoryParam(opcode.GetParamType2(), limits2),
  350|    604|      GetMemoryParam(opcode.GetParamType3(), limits3), opcode.GetName());
  351|    604|  PushType(opcode.GetResultType());
  352|    604|  return result;
  353|    604|}
_ZN4wabt11TypeChecker19PrintStackIfFailedVENS_6ResultEPKcRKNSt3__16vectorINS_4TypeENS4_9allocatorIS6_EEEEb:
  358|   121k|                                      bool is_end) {
  359|   121k|  if (Succeeded(result)) {
  ------------------
  |  Branch (359:7): [True: 121k, False: 253]
  ------------------
  360|   121k|    return;
  361|   121k|  }
  362|       |
  363|    253|  size_t limit = 0;
  364|    253|  Label* label;
  365|    253|  if (Succeeded(TopLabel(&label))) {
  ------------------
  |  Branch (365:7): [True: 253, False: 0]
  ------------------
  366|    253|    limit = label->type_stack_limit;
  367|    253|  }
  368|       |
  369|    253|  TypeVector actual;
  370|    253|  size_t max_depth = type_stack_.size() - limit;
  371|       |
  372|       |  // In general we want to print as many values of the actual stack as were
  373|       |  // expected. However, if the stack was expected to be empty, we should
  374|       |  // print some amount of the actual stack.
  375|    253|  size_t actual_size;
  376|    253|  if (expected.size() == 0) {
  ------------------
  |  Branch (376:7): [True: 17, False: 236]
  ------------------
  377|       |    // Don't print too many elements if the stack is really deep.
  378|     17|    const size_t kMaxActualStackToPrint = 4;
  379|     17|    actual_size = std::min(kMaxActualStackToPrint, max_depth);
  380|    236|  } else {
  381|    236|    actual_size = std::min(expected.size(), max_depth);
  382|    236|  }
  383|       |
  384|    253|  bool incomplete_actual_stack = actual_size != max_depth;
  385|       |
  386|    640|  for (size_t i = 0; i < actual_size; ++i) {
  ------------------
  |  Branch (386:22): [True: 387, False: 253]
  ------------------
  387|    387|    Type type;
  388|    387|    Result result = PeekType(actual_size - i - 1, &type);
  389|    387|    WABT_USE(result);
  ------------------
  |  |   44|    387|#define WABT_USE(x) static_cast<void>(x)
  ------------------
  390|    387|    assert(Succeeded(result));
  391|    387|    actual.push_back(type);
  392|    387|  }
  393|       |
  394|    253|  std::string message = "type mismatch in ";
  395|    253|  if (is_end) {
  ------------------
  |  Branch (395:7): [True: 17, False: 236]
  ------------------
  396|     17|    message = "type mismatch at end of ";
  397|     17|  }
  398|    253|  message += desc;
  399|    253|  message += ", expected ";
  400|    253|  message += TypesToString(expected);
  401|    253|  message += " but got ";
  402|    253|  message += TypesToString(actual, incomplete_actual_stack ? "... " : nullptr);
  ------------------
  |  Branch (402:36): [True: 57, False: 196]
  ------------------
  403|       |
  404|    253|  PrintError("%s", message.c_str());
  405|    253|}
_ZN4wabt11TypeChecker13BeginFunctionERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEE:
  407|  3.15k|Result TypeChecker::BeginFunction(const TypeVector& sig) {
  408|  3.15k|  type_stack_.clear();
  409|  3.15k|  label_stack_.clear();
  410|  3.15k|  PushLabel(LabelType::Func, TypeVector(), sig);
  411|  3.15k|  return Result::Ok;
  412|  3.15k|}
_ZN4wabt11TypeChecker11OnAtomicRmwENS_6OpcodeERKNS_6LimitsE:
  422|    128|Result TypeChecker::OnAtomicRmw(Opcode opcode, const Limits& limits) {
  423|    128|  return CheckOpcode2(opcode, &limits);
  424|    128|}
_ZN4wabt11TypeChecker13OnAtomicFenceEj:
  434|    257|Result TypeChecker::OnAtomicFence(uint32_t consistency_model) {
  435|    257|  return Result::Ok;
  436|    257|}
_ZN4wabt11TypeChecker14OnAtomicNotifyENS_6OpcodeERKNS_6LimitsE:
  438|      1|Result TypeChecker::OnAtomicNotify(Opcode opcode, const Limits& limits) {
  439|      1|  return CheckOpcode2(opcode, &limits);
  440|      1|}
_ZN4wabt11TypeChecker8OnBinaryENS_6OpcodeE:
  442|  39.6k|Result TypeChecker::OnBinary(Opcode opcode) {
  443|  39.6k|  return CheckOpcode2(opcode);
  444|  39.6k|}
_ZN4wabt11TypeChecker7OnBlockERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEES8_:
  447|  21.8k|                            const TypeVector& result_types) {
  448|  21.8k|  Result result = PopAndCheckSignature(param_types, "block");
  449|  21.8k|  PushLabel(LabelType::Block, param_types, result_types);
  450|  21.8k|  PushTypes(param_types);
  451|  21.8k|  return result;
  452|  21.8k|}
_ZN4wabt11TypeChecker4OnBrEj:
  454|  2.56k|Result TypeChecker::OnBr(Index depth) {
  455|  2.56k|  Result result = Result::Ok;
  456|  2.56k|  Label* label;
  457|  2.56k|  CHECK_RESULT(GetLabel(depth, &label));
  ------------------
  |  |   55|  2.56k|  do {                              \
  |  |   56|  2.56k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.56k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.56k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  458|  2.56k|  result |= CheckSignature(label->br_types(), "br");
  459|  2.56k|  CHECK_RESULT(SetUnreachable());
  ------------------
  |  |   55|  2.56k|  do {                              \
  |  |   56|  2.56k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.56k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.56k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  460|  2.56k|  return result;
  461|  2.56k|}
_ZN4wabt11TypeChecker6OnBrIfEj:
  463|    360|Result TypeChecker::OnBrIf(Index depth) {
  464|    360|  Result result = PopAndCheck1Type(Type::I32, "br_if");
  465|    360|  Label* label;
  466|    360|  CHECK_RESULT(GetLabel(depth, &label));
  ------------------
  |  |   55|    360|  do {                              \
  |  |   56|    360|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 358]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|    360|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  467|    358|  result |= PopAndCheckSignature(label->br_types(), "br_if");
  468|    358|  PushTypes(label->br_types());
  469|    358|  return result;
  470|    360|}
_ZN4wabt11TypeChecker12BeginBrTableEv:
  472|  1.65k|Result TypeChecker::BeginBrTable() {
  473|  1.65k|  br_table_sig_ = nullptr;
  474|  1.65k|  return PopAndCheck1Type(Type::I32, "br_table");
  475|  1.65k|}
_ZN4wabt11TypeChecker15OnBrTableTargetEj:
  477|  5.67k|Result TypeChecker::OnBrTableTarget(Index depth) {
  478|  5.67k|  Result result = Result::Ok;
  479|  5.67k|  Label* label;
  480|  5.67k|  CHECK_RESULT(GetLabel(depth, &label));
  ------------------
  |  |   55|  5.67k|  do {                              \
  |  |   56|  5.67k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 11, False: 5.66k]
  |  |  ------------------
  |  |   57|     11|      return ::wabt::Result::Error; \
  |  |   58|     11|    }                               \
  |  |   59|  5.67k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  481|  5.66k|  TypeVector& label_sig = label->br_types();
  482|  5.66k|  result |= CheckSignature(label_sig, "br_table");
  483|       |
  484|       |  // Make sure this label's signature is consistent with the previous labels'
  485|       |  // signatures.
  486|  5.66k|  if (br_table_sig_ == nullptr) {
  ------------------
  |  Branch (486:7): [True: 1.64k, False: 4.01k]
  ------------------
  487|  1.64k|    br_table_sig_ = &label_sig;
  488|  4.01k|  } else {
  489|  4.01k|    if (br_table_sig_->size() != label_sig.size()) {
  ------------------
  |  Branch (489:9): [True: 0, False: 4.01k]
  ------------------
  490|      0|      result |= Result::Error;
  491|      0|      PrintError("br_table labels have inconsistent types: expected %s, got %s",
  492|      0|                 TypesToString(*br_table_sig_).c_str(),
  493|      0|                 TypesToString(label_sig).c_str());
  494|      0|    }
  495|  4.01k|  }
  496|       |
  497|  5.66k|  return result;
  498|  5.67k|}
_ZN4wabt11TypeChecker10EndBrTableEv:
  500|  1.63k|Result TypeChecker::EndBrTable() {
  501|  1.63k|  return SetUnreachable();
  502|  1.63k|}
_ZN4wabt11TypeChecker6OnCallERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEES8_:
  505|  2.31k|                           const TypeVector& result_types) {
  506|  2.31k|  return PopAndCheckCall(param_types, result_types, "call");
  507|  2.31k|}
_ZN4wabt11TypeChecker14OnCallIndirectERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEES8_RKNS_6LimitsE:
  511|    344|                                   const Limits& table_limits) {
  512|    344|  Result result = PopAndCheck1Type(table_limits.is_64 ? Type::I64 : Type::I32,
  ------------------
  |  Branch (512:36): [True: 0, False: 344]
  ------------------
  513|    344|                                   "call_indirect");
  514|    344|  result |= PopAndCheckCall(param_types, result_types, "call_indirect");
  515|    344|  return result;
  516|    344|}
_ZN4wabt11TypeChecker12OnReturnCallERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEES8_:
  532|     25|                                 const TypeVector& result_types) {
  533|     25|  Result result = PopAndCheckSignature(param_types, "return_call");
  534|     25|  Label* func_label;
  535|     25|  CHECK_RESULT(GetThisFunctionLabel(&func_label));
  ------------------
  |  |   55|     25|  do {                              \
  |  |   56|     25|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 25]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     25|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  536|     25|  result |= CheckReturnSignature(result_types, func_label->result_types,
  537|     25|                                 "return_call");
  538|       |
  539|     25|  CHECK_RESULT(SetUnreachable());
  ------------------
  |  |   55|     25|  do {                              \
  |  |   56|     25|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 25]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     25|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  540|     25|  return result;
  541|     25|}
_ZN4wabt11TypeChecker20OnReturnCallIndirectERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEES8_:
  544|     56|                                         const TypeVector& result_types) {
  545|     56|  Result result = PopAndCheck1Type(Type::I32, "return_call_indirect");
  546|       |
  547|     56|  result |= PopAndCheckSignature(param_types, "return_call_indirect");
  548|     56|  Label* func_label;
  549|     56|  CHECK_RESULT(GetThisFunctionLabel(&func_label));
  ------------------
  |  |   55|     56|  do {                              \
  |  |   56|     56|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 56]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     56|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  550|     56|  result |= CheckReturnSignature(result_types, func_label->result_types,
  551|     56|                                 "return_call_indirect");
  552|       |
  553|     56|  CHECK_RESULT(SetUnreachable());
  ------------------
  |  |   55|     56|  do {                              \
  |  |   56|     56|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 56]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     56|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  554|     56|  return result;
  555|     56|}
_ZN4wabt11TypeChecker9OnCompareENS_6OpcodeE:
  557|  17.8k|Result TypeChecker::OnCompare(Opcode opcode) {
  558|  17.8k|  return CheckOpcode2(opcode);
  559|  17.8k|}
_ZN4wabt11TypeChecker7OnCatchERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEE:
  561|      5|Result TypeChecker::OnCatch(const TypeVector& sig) {
  562|      5|  Result result = Result::Ok;
  563|      5|  Label* label;
  564|      5|  CHECK_RESULT(TopLabel(&label));
  ------------------
  |  |   55|      5|  do {                              \
  |  |   56|      5|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 5]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      5|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  565|      5|  result |= Check2LabelTypes(label, LabelType::Try, LabelType::Catch);
  566|      5|  result |= PopAndCheckSignature(label->result_types, "try block");
  567|      5|  result |= CheckTypeStackEnd("try block");
  568|      5|  ResetTypeStackToLabel(label);
  569|      5|  label->label_type = LabelType::Catch;
  570|      5|  label->unreachable = false;
  571|      5|  PushTypes(sig);
  572|      5|  return result;
  573|      5|}
_ZN4wabt11TypeChecker7OnConstENS_4TypeE:
  575|  66.3k|Result TypeChecker::OnConst(Type type) {
  576|  66.3k|  PushType(type);
  577|  66.3k|  return Result::Ok;
  578|  66.3k|}
_ZN4wabt11TypeChecker9OnConvertENS_6OpcodeE:
  580|  78.0k|Result TypeChecker::OnConvert(Opcode opcode) {
  581|  78.0k|  return CheckOpcode1(opcode);
  582|  78.0k|}
_ZN4wabt11TypeChecker10OnDelegateEj:
  584|      1|Result TypeChecker::OnDelegate(Index depth) {
  585|      1|  Result result = Result::Ok;
  586|      1|  Label* label;
  587|       |  // Delegate starts counting after the current try, as the delegate
  588|       |  // instruction is not actually in the try block.
  589|      1|  CHECK_RESULT(GetLabel(depth + 1, &label));
  ------------------
  |  |   55|      1|  do {                              \
  |  |   56|      1|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      1|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  590|       |
  591|      1|  Label* try_label;
  592|      1|  CHECK_RESULT(TopLabel(&try_label));
  ------------------
  |  |   55|      1|  do {                              \
  |  |   56|      1|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      1|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  593|      1|  result |= CheckLabelType(try_label, LabelType::Try);
  594|      1|  result |= PopAndCheckSignature(try_label->result_types, "try block");
  595|      1|  result |= CheckTypeStackEnd("try block");
  596|      1|  ResetTypeStackToLabel(try_label);
  597|       |
  598|       |  // Since an end instruction does not follow a delegate, we push
  599|       |  // the block results here and pop the label.
  600|      1|  PushTypes(try_label->result_types);
  601|      1|  PopLabel();
  602|      1|  return result;
  603|      1|}
_ZN4wabt11TypeChecker6OnDropEv:
  605|  1.55k|Result TypeChecker::OnDrop() {
  606|  1.55k|  Result result = Result::Ok;
  607|  1.55k|  result |= DropTypes(1);
  608|  1.55k|  PrintStackIfFailed(result, "drop", Type::Any);
  609|  1.55k|  return result;
  610|  1.55k|}
_ZN4wabt11TypeChecker6OnElseEv:
  612|  1.04k|Result TypeChecker::OnElse() {
  613|  1.04k|  Result result = Result::Ok;
  614|  1.04k|  Label* label;
  615|  1.04k|  CHECK_RESULT(TopLabel(&label));
  ------------------
  |  |   55|  1.04k|  do {                              \
  |  |   56|  1.04k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 1.04k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  1.04k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  616|  1.04k|  result |= CheckLabelType(label, LabelType::If);
  617|  1.04k|  result |= PopAndCheckSignature(label->result_types, "`if true` branch");
  618|  1.04k|  result |= CheckTypeStackEnd("`if true` branch");
  619|  1.04k|  ResetTypeStackToLabel(label);
  620|  1.04k|  PushTypes(label->param_types);
  621|  1.04k|  label->label_type = LabelType::Else;
  622|  1.04k|  label->unreachable = false;
  623|  1.04k|  return result;
  624|  1.04k|}
_ZN4wabt11TypeChecker5OnEndEPNS0_5LabelEPKcS4_:
  628|  39.1k|                          const char* end_desc) {
  629|  39.1k|  Result result = Result::Ok;
  630|  39.1k|  result |= PopAndCheckSignature(label->result_types, sig_desc);
  631|  39.1k|  result |= CheckTypeStackEnd(end_desc);
  632|  39.1k|  ResetTypeStackToLabel(label);
  633|  39.1k|  PushTypes(label->result_types);
  634|  39.1k|  PopLabel();
  635|  39.1k|  return result;
  636|  39.1k|}
_ZN4wabt11TypeChecker5OnEndEv:
  638|  20.3k|Result TypeChecker::OnEnd() {
  639|  20.3k|  Result result = Result::Ok;
  640|  20.3k|  static const char* s_label_type_name[] = {
  641|  20.3k|      "function", "initializer expression", "block", "loop",
  642|  20.3k|      "if",       "`if false` branch",      "try",   "try table",
  643|  20.3k|      "try catch"};
  644|  20.3k|  WABT_STATIC_ASSERT(WABT_ARRAY_SIZE(s_label_type_name) == kLabelTypeCount);
  ------------------
  |  |   89|  20.3k|#define WABT_STATIC_ASSERT(x) static_assert((x), #x)
  ------------------
  645|  20.3k|  Label* label;
  646|  20.3k|  CHECK_RESULT(TopLabel(&label));
  ------------------
  |  |   55|  20.3k|  do {                              \
  |  |   56|  20.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 20.3k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  20.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  647|  20.3k|  assert(static_cast<int>(label->label_type) < kLabelTypeCount);
  648|  20.3k|  if (label->label_type == LabelType::If) {
  ------------------
  |  Branch (648:7): [True: 727, False: 19.6k]
  ------------------
  649|       |    // An if without an else will just pass the params through, so the result
  650|       |    // types must be the same as the param types. It has the same behavior as
  651|       |    // an empty else block.
  652|    727|    CHECK_RESULT(OnElse());
  ------------------
  |  |   55|    727|  do {                              \
  |  |   56|    727|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 727]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|    727|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  653|    727|  }
  654|       |
  655|  20.3k|  const char* desc = s_label_type_name[static_cast<int>(label->label_type)];
  656|  20.3k|  result |= OnEnd(label, desc, desc);
  657|  20.3k|  return result;
  658|  20.3k|}
_ZN4wabt11TypeChecker4OnIfERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEES8_:
  661|  1.65k|                         const TypeVector& result_types) {
  662|  1.65k|  Result result = PopAndCheck1Type(Type::I32, "if");
  663|  1.65k|  result |= PopAndCheckSignature(param_types, "if");
  664|  1.65k|  PushLabel(LabelType::If, param_types, result_types);
  665|  1.65k|  PushTypes(param_types);
  666|  1.65k|  return result;
  667|  1.65k|}
_ZN4wabt11TypeChecker11OnGlobalGetENS_4TypeE:
  669|  9.68k|Result TypeChecker::OnGlobalGet(Type type) {
  670|  9.68k|  PushType(type);
  671|  9.68k|  return Result::Ok;
  672|  9.68k|}
_ZN4wabt11TypeChecker11OnGlobalSetENS_4TypeE:
  674|  8.96k|Result TypeChecker::OnGlobalSet(Type type) {
  675|  8.96k|  return PopAndCheck1Type(type, "global.set");
  676|  8.96k|}
_ZN4wabt11TypeChecker6OnLoadENS_6OpcodeERKNS_6LimitsE:
  678|  23.9k|Result TypeChecker::OnLoad(Opcode opcode, const Limits& limits) {
  679|  23.9k|  return CheckOpcode1(opcode, &limits);
  680|  23.9k|}
_ZN4wabt11TypeChecker10OnLocalGetENS_4TypeE:
  682|  16.1k|Result TypeChecker::OnLocalGet(Type type) {
  683|  16.1k|  PushType(type);
  684|  16.1k|  return Result::Ok;
  685|  16.1k|}
_ZN4wabt11TypeChecker10OnLocalSetENS_4TypeE:
  687|  3.98k|Result TypeChecker::OnLocalSet(Type type) {
  688|  3.98k|  return PopAndCheck1Type(type, "local.set");
  689|  3.98k|}
_ZN4wabt11TypeChecker10OnLocalTeeENS_4TypeE:
  691|  2.03k|Result TypeChecker::OnLocalTee(Type type) {
  692|  2.03k|  Result result = Result::Ok;
  693|  2.03k|  result |= PopAndCheck1Type(type, "local.tee");
  694|  2.03k|  PushType(type);
  695|  2.03k|  return result;
  696|  2.03k|}
_ZN4wabt11TypeChecker6OnLoopERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEES8_:
  699|  3.06k|                           const TypeVector& result_types) {
  700|  3.06k|  Result result = PopAndCheckSignature(param_types, "loop");
  701|  3.06k|  PushLabel(LabelType::Loop, param_types, result_types);
  702|  3.06k|  PushTypes(param_types);
  703|  3.06k|  return result;
  704|  3.06k|}
_ZN4wabt11TypeChecker12OnMemoryCopyERKNS_6LimitsES3_:
  707|      4|                                 const Limits& src_limits) {
  708|      4|  Limits size_limits = src_limits;
  709|       |  // The memory64 proposal specifies that the type of the size argument should
  710|       |  // be the mimimum of the two memory types.
  711|      4|  if (src_limits.is_64 && !dst_limits.is_64) {
  ------------------
  |  Branch (711:7): [True: 0, False: 4]
  |  Branch (711:27): [True: 0, False: 0]
  ------------------
  712|      0|    size_limits = dst_limits;
  713|      0|  }
  714|      4|  return CheckOpcode3(Opcode::MemoryCopy, &dst_limits, &src_limits,
  715|      4|                      &size_limits);
  716|      4|}
_ZN4wabt11TypeChecker10OnDataDropEj:
  718|    160|Result TypeChecker::OnDataDrop(uint32_t segment) {
  719|    160|  return Result::Ok;
  720|    160|}
_ZN4wabt11TypeChecker12OnMemoryFillERKNS_6LimitsE:
  722|    439|Result TypeChecker::OnMemoryFill(const Limits& limits) {
  723|    439|  return CheckOpcode3(Opcode::MemoryFill, &limits, nullptr, &limits);
  724|    439|}
_ZN4wabt11TypeChecker12OnMemoryGrowERKNS_6LimitsE:
  726|  9.18k|Result TypeChecker::OnMemoryGrow(const Limits& limits) {
  727|  9.18k|  Result result = PopAndCheck1Type(limits.IndexType(), "memory.grow");
  728|  9.18k|  PushType(limits.IndexType());
  729|  9.18k|  return result;
  730|  9.18k|}
_ZN4wabt11TypeChecker12OnMemorySizeERKNS_6LimitsE:
  736|  4.53k|Result TypeChecker::OnMemorySize(const Limits& limits) {
  737|  4.53k|  PushType(limits.IndexType());
  738|  4.53k|  return Result::Ok;
  739|  4.53k|}
_ZN4wabt11TypeChecker11OnTableCopyERKNS_6LimitsES3_:
  742|    118|                                const Limits& src_limits) {
  743|    118|  Limits size_limits = src_limits;
  744|       |  // The memory64 proposal specifies that the type of the size argument should
  745|       |  // be the mimimum of the two table types.
  746|    118|  if (src_limits.is_64 && !dst_limits.is_64) {
  ------------------
  |  Branch (746:7): [True: 0, False: 118]
  |  Branch (746:27): [True: 0, False: 0]
  ------------------
  747|      0|    size_limits = dst_limits;
  748|      0|  }
  749|    118|  return CheckOpcode3(Opcode::TableCopy, &dst_limits, &src_limits,
  750|    118|                      &size_limits);
  751|    118|}
_ZN4wabt11TypeChecker10OnElemDropEj:
  753|  4.72k|Result TypeChecker::OnElemDrop(uint32_t segment) {
  754|  4.72k|  return Result::Ok;
  755|  4.72k|}
_ZN4wabt11TypeChecker11OnTableInitEjRKNS_6LimitsE:
  757|     30|Result TypeChecker::OnTableInit(uint32_t segment, const Limits& limits) {
  758|     30|  return CheckOpcode3(Opcode::TableInit, &limits);
  759|     30|}
_ZN4wabt11TypeChecker10OnTableGetENS_4TypeERKNS_6LimitsE:
  761|     83|Result TypeChecker::OnTableGet(Type elem_type, const Limits& limits) {
  762|     83|  Result result = CheckOpcode1(Opcode::TableGet, &limits);
  763|     83|  PushType(elem_type);
  764|     83|  return result;
  765|     83|}
_ZN4wabt11TypeChecker10OnTableSetENS_4TypeERKNS_6LimitsE:
  767|     12|Result TypeChecker::OnTableSet(Type elem_type, const Limits& limits) {
  768|     12|  return PopAndCheck2Types(limits.IndexType(), elem_type, "table.set");
  769|     12|}
_ZN4wabt11TypeChecker11OnTableGrowENS_4TypeERKNS_6LimitsE:
  771|      1|Result TypeChecker::OnTableGrow(Type elem_type, const Limits& limits) {
  772|      1|  Result result =
  773|      1|      PopAndCheck2Types(elem_type, limits.IndexType(), "table.grow");
  774|      1|  PushType(limits.IndexType());
  775|      1|  return result;
  776|      1|}
_ZN4wabt11TypeChecker11OnTableSizeERKNS_6LimitsE:
  778|    238|Result TypeChecker::OnTableSize(const Limits& limits) {
  779|    238|  PushType(limits.IndexType());
  780|    238|  return Result::Ok;
  781|    238|}
_ZN4wabt11TypeChecker11OnTableFillENS_4TypeERKNS_6LimitsE:
  783|    110|Result TypeChecker::OnTableFill(Type elem_type, const Limits& limits) {
  784|    110|  return PopAndCheck3Types(limits.IndexType(), elem_type, limits.IndexType(),
  785|    110|                           "table.fill");
  786|    110|}
_ZN4wabt11TypeChecker13OnRefFuncExprEjb:
  788|  7.13k|Result TypeChecker::OnRefFuncExpr(Index func_type, bool force_generic_funcref) {
  789|       |  /*
  790|       |   * In a const expression, treat ref.func as producing a generic funcref.
  791|       |   * This avoids having to implement funcref subtyping (for now) and matches
  792|       |   * the previous behavior where SharedValidator::OnElemSegmentElemExpr_RefFunc
  793|       |   * examined only the validity of the function index.
  794|       |   */
  795|  7.13k|  if (features_.function_references_enabled() && !force_generic_funcref) {
  ------------------
  |  Branch (795:7): [True: 4.11k, False: 3.02k]
  |  Branch (795:50): [True: 145, False: 3.96k]
  ------------------
  796|    145|    PushType(Type(Type::Reference, func_type));
  797|  6.99k|  } else {
  798|  6.99k|    PushType(Type::FuncRef);
  799|  6.99k|  }
  800|  7.13k|  return Result::Ok;
  801|  7.13k|}
_ZN4wabt11TypeChecker13OnRefNullExprENS_4TypeE:
  803|  5.00k|Result TypeChecker::OnRefNullExpr(Type type) {
  804|  5.00k|  PushType(type);
  805|  5.00k|  return Result::Ok;
  806|  5.00k|}
_ZN4wabt11TypeChecker15OnRefIsNullExprEv:
  808|    223|Result TypeChecker::OnRefIsNullExpr() {
  809|    223|  Type type;
  810|    223|  Result result = PeekType(0, &type);
  811|    223|  if (!type.IsRef()) {
  ------------------
  |  Branch (811:7): [True: 193, False: 30]
  ------------------
  812|    193|    type = Type(Type::Reference, kInvalidIndex);
  813|    193|  }
  814|    223|  result |= PopAndCheck1Type(type, "ref.is_null");
  815|    223|  PushType(Type::I32);
  816|    223|  return result;
  817|    223|}
_ZN4wabt11TypeChecker9OnRethrowEj:
  819|      2|Result TypeChecker::OnRethrow(Index depth) {
  820|      2|  Result result = Result::Ok;
  821|      2|  Label* label;
  822|      2|  CHECK_RESULT(GetRethrowLabel(depth, &label));
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 2, False: 0]
  |  |  ------------------
  |  |   57|      2|      return ::wabt::Result::Error; \
  |  |   58|      2|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  823|      0|  CHECK_RESULT(SetUnreachable());
  ------------------
  |  |   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]
  |  |  ------------------
  ------------------
  824|      0|  return result;
  825|      0|}
_ZN4wabt11TypeChecker7OnThrowERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEE:
  827|      2|Result TypeChecker::OnThrow(const TypeVector& sig) {
  828|      2|  Result result = Result::Ok;
  829|      2|  result |= PopAndCheckSignature(sig, "throw");
  830|      2|  CHECK_RESULT(SetUnreachable());
  ------------------
  |  |   55|      2|  do {                              \
  |  |   56|      2|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|      2|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  831|      2|  return result;
  832|      2|}
_ZN4wabt11TypeChecker10OnThrowRefEv:
  834|     34|Result TypeChecker::OnThrowRef() {
  835|     34|  Result result = Result::Ok;
  836|     34|  result |= PopAndCheck1Type(Type::ExnRef, "throw_ref");
  837|     34|  CHECK_RESULT(SetUnreachable());
  ------------------
  |  |   55|     34|  do {                              \
  |  |   56|     34|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 34]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|     34|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  838|     34|  return result;
  839|     34|}
_ZN4wabt11TypeChecker8OnReturnEv:
  841|  2.71k|Result TypeChecker::OnReturn() {
  842|  2.71k|  Result result = Result::Ok;
  843|  2.71k|  Label* func_label;
  844|  2.71k|  CHECK_RESULT(GetThisFunctionLabel(&func_label));
  ------------------
  |  |   55|  2.71k|  do {                              \
  |  |   56|  2.71k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.71k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.71k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  845|  2.71k|  result |= PopAndCheckSignature(func_label->result_types, "return");
  846|  2.71k|  CHECK_RESULT(SetUnreachable());
  ------------------
  |  |   55|  2.71k|  do {                              \
  |  |   56|  2.71k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.71k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.71k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  847|  2.71k|  return result;
  848|  2.71k|}
_ZN4wabt11TypeChecker8OnSelectERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEE:
  850|  1.62k|Result TypeChecker::OnSelect(const TypeVector& expected) {
  851|  1.62k|  Result result = Result::Ok;
  852|  1.62k|  Type type1 = Type::Any;
  853|  1.62k|  Type type2 = Type::Any;
  854|  1.62k|  Type result_type = Type::Any;
  855|  1.62k|  result |= PeekAndCheckType(0, Type::I32);
  856|  1.62k|  result |= PeekType(1, &type1);
  857|  1.62k|  result |= PeekType(2, &type2);
  858|  1.62k|  if (expected.empty()) {
  ------------------
  |  Branch (858:7): [True: 1.58k, False: 36]
  ------------------
  859|  1.58k|    if (type1.IsRef() || type2.IsRef()) {
  ------------------
  |  Branch (859:9): [True: 0, False: 1.58k]
  |  Branch (859:26): [True: 0, False: 1.58k]
  ------------------
  860|      0|      result = Result::Error;
  861|  1.58k|    } else {
  862|  1.58k|      result |= CheckType(type1, type2);
  863|  1.58k|      result_type = type1;
  864|  1.58k|    }
  865|  1.58k|  } else {
  866|     36|    assert(expected.size() == 1);
  867|     36|    result |= CheckType(type1, expected[0]);
  868|     36|    result |= CheckType(type2, expected[0]);
  869|     36|  }
  870|  1.62k|  PrintStackIfFailed(result, "select", result_type, result_type, Type::I32);
  871|  1.62k|  result |= DropTypes(3);
  872|  1.62k|  PushType(result_type);
  873|  1.62k|  return result;
  874|  1.62k|}
_ZN4wabt11TypeChecker7OnStoreENS_6OpcodeERKNS_6LimitsE:
  876|    461|Result TypeChecker::OnStore(Opcode opcode, const Limits& limits) {
  877|    461|  return CheckOpcode2(opcode, &limits);
  878|    461|}
_ZN4wabt11TypeChecker5OnTryERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEES8_:
  881|     33|                          const TypeVector& result_types) {
  882|     33|  Result result = PopAndCheckSignature(param_types, "try");
  883|     33|  PushLabel(LabelType::Try, param_types, result_types);
  884|     33|  PushTypes(param_types);
  885|     33|  return result;
  886|     33|}
_ZN4wabt11TypeChecker13BeginTryTableERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEE:
  888|      2|Result TypeChecker::BeginTryTable(const TypeVector& param_types) {
  889|      2|  Result result = PopAndCheckSignature(param_types, "try_table");
  890|      2|  return result;
  891|      2|}
_ZN4wabt11TypeChecker7OnUnaryENS_6OpcodeE:
  913|   107k|Result TypeChecker::OnUnary(Opcode opcode) {
  914|   107k|  return CheckOpcode1(opcode);
  915|   107k|}
_ZN4wabt11TypeChecker9OnTernaryENS_6OpcodeE:
  917|     13|Result TypeChecker::OnTernary(Opcode opcode) {
  918|     13|  return CheckOpcode3(opcode);
  919|     13|}
_ZN4wabt11TypeChecker12OnSimdLaneOpENS_6OpcodeEm:
  921|  3.11k|Result TypeChecker::OnSimdLaneOp(Opcode opcode, uint64_t lane_idx) {
  922|  3.11k|  Result result = Result::Ok;
  923|  3.11k|  uint32_t lane_count = opcode.GetSimdLaneCount();
  924|  3.11k|  if (lane_idx >= lane_count) {
  ------------------
  |  Branch (924:7): [True: 1, False: 3.11k]
  ------------------
  925|      1|    PrintError("lane index must be less than %d (got %" PRIu64 ")", lane_count,
  926|      1|               lane_idx);
  927|      1|    result = Result::Error;
  928|      1|  }
  929|       |
  930|  3.11k|  switch (opcode) {
  931|    298|    case Opcode::I8X16ExtractLaneS:
  ------------------
  |  Branch (931:5): [True: 298, False: 2.81k]
  ------------------
  932|    470|    case Opcode::I8X16ExtractLaneU:
  ------------------
  |  Branch (932:5): [True: 172, False: 2.94k]
  ------------------
  933|    596|    case Opcode::I16X8ExtractLaneS:
  ------------------
  |  Branch (933:5): [True: 126, False: 2.99k]
  ------------------
  934|    921|    case Opcode::I16X8ExtractLaneU:
  ------------------
  |  Branch (934:5): [True: 325, False: 2.79k]
  ------------------
  935|  1.01k|    case Opcode::I32X4ExtractLane:
  ------------------
  |  Branch (935:5): [True: 95, False: 3.02k]
  ------------------
  936|  1.76k|    case Opcode::F32X4ExtractLane:
  ------------------
  |  Branch (936:5): [True: 750, False: 2.36k]
  ------------------
  937|  2.38k|    case Opcode::I64X2ExtractLane:
  ------------------
  |  Branch (937:5): [True: 622, False: 2.49k]
  ------------------
  938|  2.84k|    case Opcode::F64X2ExtractLane:
  ------------------
  |  Branch (938:5): [True: 457, False: 2.65k]
  ------------------
  939|  2.84k|      result |= CheckOpcode1(opcode);
  940|  2.84k|      break;
  941|     72|    case Opcode::I8X16ReplaceLane:
  ------------------
  |  Branch (941:5): [True: 72, False: 3.04k]
  ------------------
  942|    248|    case Opcode::I16X8ReplaceLane:
  ------------------
  |  Branch (942:5): [True: 176, False: 2.94k]
  ------------------
  943|    255|    case Opcode::I32X4ReplaceLane:
  ------------------
  |  Branch (943:5): [True: 7, False: 3.10k]
  ------------------
  944|    271|    case Opcode::F32X4ReplaceLane:
  ------------------
  |  Branch (944:5): [True: 16, False: 3.10k]
  ------------------
  945|    271|    case Opcode::I64X2ReplaceLane:
  ------------------
  |  Branch (945:5): [True: 0, False: 3.11k]
  ------------------
  946|    271|    case Opcode::F64X2ReplaceLane:
  ------------------
  |  Branch (946:5): [True: 0, False: 3.11k]
  ------------------
  947|    271|      result |= CheckOpcode2(opcode);
  948|    271|      break;
  949|      0|    default:
  ------------------
  |  Branch (949:5): [True: 0, False: 3.11k]
  ------------------
  950|      0|      WABT_UNREACHABLE;
  ------------------
  |  |  112|      0|#define WABT_UNREACHABLE abort()
  ------------------
  951|  3.11k|  }
  952|  3.11k|  return result;
  953|  3.11k|}
_ZN4wabt11TypeChecker14OnSimdLoadLaneENS_6OpcodeERKNS_6LimitsEm:
  957|     87|                                   uint64_t lane_idx) {
  958|     87|  Result result = Result::Ok;
  959|     87|  uint32_t lane_count = opcode.GetSimdLaneCount();
  960|     87|  if (lane_idx >= lane_count) {
  ------------------
  |  Branch (960:7): [True: 0, False: 87]
  ------------------
  961|      0|    PrintError("lane index must be less than %d (got %" PRIu64 ")", lane_count,
  962|      0|               lane_idx);
  963|      0|    result = Result::Error;
  964|      0|  }
  965|     87|  result |= CheckOpcode2(opcode, &limits);
  966|     87|  return result;
  967|     87|}
_ZN4wabt11TypeChecker15OnSimdStoreLaneENS_6OpcodeERKNS_6LimitsEm:
  971|    821|                                    uint64_t lane_idx) {
  972|    821|  Result result = Result::Ok;
  973|    821|  uint32_t lane_count = opcode.GetSimdLaneCount();
  974|    821|  if (lane_idx >= lane_count) {
  ------------------
  |  Branch (974:7): [True: 1, False: 820]
  ------------------
  975|      1|    PrintError("lane index must be less than %d (got %" PRIu64 ")", lane_count,
  976|      1|               lane_idx);
  977|      1|    result = Result::Error;
  978|      1|  }
  979|    821|  result |= CheckOpcode2(opcode, &limits);
  980|    821|  return result;
  981|    821|}
_ZN4wabt11TypeChecker15OnSimdShuffleOpENS_6OpcodeE4v128:
  983|      2|Result TypeChecker::OnSimdShuffleOp(Opcode opcode, v128 lane_idx) {
  984|      2|  Result result = Result::Ok;
  985|      2|  uint8_t simd_data[16];
  986|      2|  memcpy(simd_data, &lane_idx, 16);
  987|     34|  for (int i = 0; i < 16; i++) {
  ------------------
  |  Branch (987:19): [True: 32, False: 2]
  ------------------
  988|     32|    if (simd_data[i] >= 32) {
  ------------------
  |  Branch (988:9): [True: 29, False: 3]
  ------------------
  989|     29|      PrintError("lane index must be less than 32 (got %d)", simd_data[i]);
  990|     29|      result = Result::Error;
  991|     29|    }
  992|     32|  }
  993|       |
  994|      2|  result |= CheckOpcode2(opcode);
  995|      2|  return result;
  996|      2|}
_ZN4wabt11TypeChecker13OnUnreachableEv:
  998|   263k|Result TypeChecker::OnUnreachable() {
  999|   263k|  return SetUnreachable();
 1000|   263k|}
_ZN4wabt11TypeChecker11EndFunctionEv:
 1002|  2.47k|Result TypeChecker::EndFunction() {
 1003|  2.47k|  Result result = Result::Ok;
 1004|  2.47k|  Label* label;
 1005|  2.47k|  CHECK_RESULT(TopLabel(&label));
  ------------------
  |  |   55|  2.47k|  do {                              \
  |  |   56|  2.47k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 2.47k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  2.47k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1006|  2.47k|  result |= CheckLabelType(label, LabelType::Func);
 1007|  2.47k|  result |= OnEnd(label, "implicit return", "function");
 1008|  2.47k|  return result;
 1009|  2.47k|}
_ZN4wabt11TypeChecker13BeginInitExprENS_4TypeE:
 1011|  16.4k|Result TypeChecker::BeginInitExpr(Type type) {
 1012|  16.4k|  type_stack_.clear();
 1013|  16.4k|  label_stack_.clear();
 1014|  16.4k|  PushLabel(LabelType::InitExpr, TypeVector(), {type});
 1015|  16.4k|  return Result::Ok;
 1016|  16.4k|}
_ZN4wabt11TypeChecker11EndInitExprEv:
 1018|  16.3k|Result TypeChecker::EndInitExpr() {
 1019|  16.3k|  Result result = Result::Ok;
 1020|  16.3k|  Label* label;
 1021|  16.3k|  CHECK_RESULT(TopLabel(&label));
  ------------------
  |  |   55|  16.3k|  do {                              \
  |  |   56|  16.3k|    if (Failed(expr)) {             \
  |  |  ------------------
  |  |  |  Branch (56:9): [True: 0, False: 16.3k]
  |  |  ------------------
  |  |   57|      0|      return ::wabt::Result::Error; \
  |  |   58|      0|    }                               \
  |  |   59|  16.3k|  } while (0)
  |  |  ------------------
  |  |  |  Branch (59:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1022|  16.3k|  result |= CheckLabelType(label, LabelType::InitExpr);
 1023|  16.3k|  result |= OnEnd(label, "initializer expression", "initializer expression");
 1024|  16.3k|  return result;
 1025|  16.3k|}
type-checker.cc:_ZN4wabt12_GLOBAL__N_113TypesToStringERKNSt3__16vectorINS_4TypeENS1_9allocatorIS3_EEEEPKc:
   26|    524|                          const char* prefix = nullptr) {
   27|    524|  std::string result = "[";
   28|    524|  if (prefix) {
  ------------------
  |  Branch (28:7): [True: 57, False: 467]
  ------------------
   29|     57|    result += prefix;
   30|     57|  }
   31|       |
   32|  1.80k|  for (size_t i = 0; i < types.size(); ++i) {
  ------------------
  |  Branch (32:22): [True: 1.27k, False: 524]
  ------------------
   33|  1.27k|    Type ty = types[i];
   34|       |    // NOTE: Reference (and GetName) is also used by (e.g.) objdump, which does
   35|       |    // not apply validation. do this here so as to not break that.
   36|  1.27k|    if (ty == Type::Reference && ty.GetReferenceIndex() == kInvalidIndex) {
  ------------------
  |  Branch (36:9): [True: 3, False: 1.27k]
  |  Branch (36:34): [True: 1, False: 2]
  ------------------
   37|      1|      result += "reference";
   38|  1.27k|    } else {
   39|  1.27k|      result += types[i].GetName();
   40|  1.27k|    }
   41|  1.27k|    if (i < types.size() - 1) {
  ------------------
  |  Branch (41:9): [True: 829, False: 447]
  ------------------
   42|    829|      result += ", ";
   43|    829|    }
   44|  1.27k|  }
   45|    524|  result += "]";
   46|    524|  return result;
   47|    524|}
type-checker.cc:_ZN4wabtL14GetMemoryParamENS_4TypeEPKNS_6LimitsE:
  324|   273k|static Type GetMemoryParam(Type param, const Limits* limits) {
  325|   273k|  return limits ? limits->IndexType() : param;
  ------------------
  |  Branch (325:10): [True: 26.7k, False: 246k]
  ------------------
  326|   273k|}

_ZN4wabt11IsValidUtf8EPKcm:
   54|   275k|bool IsValidUtf8(const char* s, size_t s_length) {
   55|   275k|  const uint8_t* p = reinterpret_cast<const uint8_t*>(s);
   56|   275k|  const uint8_t* end = p + s_length;
   57|  1.99M|  while (p < end) {
  ------------------
  |  Branch (57:10): [True: 1.72M, False: 269k]
  ------------------
   58|  1.72M|    uint8_t cu0 = *p;
   59|  1.72M|    int length = s_utf8_length[cu0];
   60|  1.72M|    if (p + length > end) {
  ------------------
  |  Branch (60:9): [True: 154, False: 1.72M]
  ------------------
   61|    154|      return false;
   62|    154|    }
   63|       |
   64|  1.72M|    switch (length) {
  ------------------
  |  Branch (64:13): [True: 0, False: 1.72M]
  ------------------
   65|  1.45k|      case 0:
  ------------------
  |  Branch (65:7): [True: 1.45k, False: 1.72M]
  ------------------
   66|  1.45k|        return false;
   67|       |
   68|  1.71M|      case 1:
  ------------------
  |  Branch (68:7): [True: 1.71M, False: 15.6k]
  ------------------
   69|  1.71M|        p++;
   70|  1.71M|        break;
   71|       |
   72|  1.00k|      case 2:
  ------------------
  |  Branch (72:7): [True: 1.00k, False: 1.72M]
  ------------------
   73|  1.00k|        p++;
   74|  1.00k|        if (!IsCont(*p++)) {
  ------------------
  |  Branch (74:13): [True: 284, False: 719]
  ------------------
   75|    284|          return false;
   76|    284|        }
   77|    719|        break;
   78|       |
   79|  1.61k|      case 3: {
  ------------------
  |  Branch (79:7): [True: 1.61k, False: 1.72M]
  ------------------
   80|  1.61k|        p++;
   81|  1.61k|        uint8_t cu1 = *p++;
   82|  1.61k|        uint8_t cu2 = *p++;
   83|  1.61k|        if (!(IsCont(cu1) && IsCont(cu2)) ||
  ------------------
  |  Branch (83:15): [True: 1.22k, False: 388]
  |  Branch (83:30): [True: 680, False: 546]
  ------------------
   84|  1.61k|            (cu0 == 0xe0 && cu1 < 0xa0) ||  // Overlong encoding.
  ------------------
  |  Branch (84:14): [True: 486, False: 194]
  |  Branch (84:29): [True: 326, False: 160]
  ------------------
   85|  1.61k|            (cu0 == 0xed && cu1 >= 0xa0))   // UTF-16 surrogate halves.
  ------------------
  |  Branch (85:14): [True: 142, False: 212]
  |  Branch (85:29): [True: 0, False: 142]
  ------------------
   86|  1.26k|          return false;
   87|    354|        break;
   88|  1.61k|      }
   89|       |
   90|  11.5k|      case 4: {
  ------------------
  |  Branch (90:7): [True: 11.5k, False: 1.71M]
  ------------------
   91|  11.5k|        p++;
   92|  11.5k|        uint8_t cu1 = *p++;
   93|  11.5k|        uint8_t cu2 = *p++;
   94|  11.5k|        uint8_t cu3 = *p++;
   95|  11.5k|        if (!(IsCont(cu1) && IsCont(cu2) && IsCont(cu3)) ||
  ------------------
  |  Branch (95:15): [True: 10.8k, False: 710]
  |  Branch (95:30): [True: 9.74k, False: 1.07k]
  |  Branch (95:45): [True: 9.73k, False: 3]
  ------------------
   96|  11.5k|            (cu0 == 0xf0 && cu1 < 0x90) ||  // Overlong encoding.
  ------------------
  |  Branch (96:14): [True: 9.57k, False: 160]
  |  Branch (96:29): [True: 871, False: 8.70k]
  ------------------
   97|  11.5k|            (cu0 == 0xf4 && cu1 >= 0x90))   // Code point >= 0x11000.
  ------------------
  |  Branch (97:14): [True: 132, False: 8.73k]
  |  Branch (97:29): [True: 0, False: 132]
  ------------------
   98|  2.66k|          return false;
   99|  8.86k|        break;
  100|  11.5k|      }
  101|  1.72M|    }
  102|  1.72M|  }
  103|   269k|  return true;
  104|   275k|}
utf8.cc:_ZN4wabt12_GLOBAL__N_16IsContEh:
   48|  35.9k|bool IsCont(uint8_t c) {
   49|  35.9k|  return (c & 0xc0) == 0x80;
   50|  35.9k|}

